Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(41)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java

Issue 1836453003: Use a scrollable tab strip on tablets at small widths (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add tests Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
index cbc6054da131b877029170c4adcc3bde8ea2a893..a03e4f8e9c998edc04b740de4ceb252b1bdb7d20 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
@@ -15,14 +15,16 @@ import org.chromium.chrome.browser.compositor.layouts.LayoutRenderHost;
import org.chromium.chrome.browser.compositor.layouts.LayoutUpdateHost;
import org.chromium.chrome.browser.compositor.layouts.components.CompositorButton;
import org.chromium.chrome.browser.compositor.layouts.components.VirtualView;
-import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.compositor.layouts.eventfilter.AreaGestureEventFilter;
import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter;
import org.chromium.chrome.browser.compositor.overlays.SceneOverlay;
import org.chromium.chrome.browser.compositor.scene_layer.SceneOverlayLayer;
import org.chromium.chrome.browser.compositor.scene_layer.TabStripSceneLayer;
+import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
+import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.resources.ResourceManager;
import java.util.List;
@@ -41,15 +43,14 @@ public class StripLayoutHelperManager implements SceneOverlay {
// Model selector buttons constants.
private static final float MODEL_SELECTOR_BUTTON_Y_OFFSET_DP = 10.f;
- private static final float MODEL_SELECTOR_BUTTON_RIGHT_PADDING_DP = 6.f;
- private static final float MODEL_SELECTOR_BUTTON_LEFT_PADDING_DP = 3.f;
+ private static final float MODEL_SELECTOR_BUTTON_END_PADDING_DP = 6.f;
+ private static final float MODEL_SELECTOR_BUTTON_START_PADDING_DP = 3.f;
private static final float MODEL_SELECTOR_BUTTON_WIDTH_DP = 24.f;
private static final float MODEL_SELECTOR_BUTTON_HEIGHT_DP = 24.f;
// External influences
private TabModelSelector mTabModelSelector;
private final LayoutUpdateHost mUpdateHost;
- private final LayoutRenderHost mRenderHost;
// Event Filters
private final AreaGestureEventFilter mEventFilter;
@@ -76,7 +77,6 @@ public class StripLayoutHelperManager implements SceneOverlay {
public StripLayoutHelperManager(Context context, LayoutUpdateHost updateHost,
LayoutRenderHost renderHost, AreaGestureEventFilter eventFilter) {
mUpdateHost = updateHost;
- mRenderHost = renderHost;
mTabStripTreeProvider = new TabStripSceneLayer(context);
mEventFilter = eventFilter;
@@ -116,8 +116,12 @@ public class StripLayoutHelperManager implements SceneOverlay {
ResourceManager resourceManager, float yOffset) {
assert mTabStripTreeProvider != null;
+ Tab selectedTab = mTabModelSelector.getCurrentModel().getTabAt(
+ mTabModelSelector.getCurrentModel().index());
+ int selectedTabId = selectedTab == null ? TabModel.INVALID_TAB_INDEX : selectedTab.getId();
mTabStripTreeProvider.pushAndUpdateStrip(this, layerTitleCache, resourceManager,
- getActiveStripLayoutHelper().getStripLayoutTabsToRender(), yOffset);
+ getActiveStripLayoutHelper().getStripLayoutTabsToRender(), yOffset,
+ selectedTabId);
return mTabStripTreeProvider;
}
@@ -131,8 +135,13 @@ public class StripLayoutHelperManager implements SceneOverlay {
float width, float height, float visibleViewportOffsetY, int orientation) {
mWidth = width;
mOrientation = orientation;
- mModelSelectorButton.setX(
- mWidth - MODEL_SELECTOR_BUTTON_WIDTH_DP - MODEL_SELECTOR_BUTTON_RIGHT_PADDING_DP);
+ if (!LocalizationUtils.isLayoutRtl()) {
+ mModelSelectorButton.setX(
+ mWidth - MODEL_SELECTOR_BUTTON_WIDTH_DP - MODEL_SELECTOR_BUTTON_END_PADDING_DP);
+ } else {
+ mModelSelectorButton.setX(MODEL_SELECTOR_BUTTON_END_PADDING_DP);
+ }
+
mNormalHelper.onSizeChanged(mWidth, mHeight);
mIncognitoHelper.onSizeChanged(mWidth, mHeight);
@@ -160,6 +169,20 @@ public class StripLayoutHelperManager implements SceneOverlay {
}
/**
+ * @return The opacity to use for the fade on the left side of the tab strip.
+ */
+ public float getLeftFadeOpacity() {
+ return getActiveStripLayoutHelper().getLeftFadeOpacity();
+ }
+
+ /**
+ * @return The opacity to use for the fade on the right side of the tab strip.
+ */
+ public float getRightFadeOpacity() {
+ return getActiveStripLayoutHelper().getRightFadeOpacity();
+ }
+
+ /**
* @return The brightness of background tabs in the tabstrip.
*/
public float getBackgroundTabBrightness() {
@@ -185,16 +208,14 @@ public class StripLayoutHelperManager implements SceneOverlay {
* represent, and various objects associated with it.
* @param modelSelector The {@link TabModelSelector} to visually represent.
* @param tabCreatorManager The {@link TabCreatorManager}, used to create new tabs.
- * @param tabContentManager The {@link TabContentManager}, used to provide display content for
- * tabs.
*/
public void setTabModelSelector(TabModelSelector modelSelector,
- TabCreatorManager tabCreatorManager, TabContentManager tabContentManager) {
+ TabCreatorManager tabCreatorManager) {
if (mTabModelSelector == modelSelector) return;
mTabModelSelector = modelSelector;
- mNormalHelper.setTabModel(mTabModelSelector.getModel(false), tabContentManager,
+ mNormalHelper.setTabModel(mTabModelSelector.getModel(false),
tabCreatorManager.getTabCreator(false));
- mIncognitoHelper.setTabModel(mTabModelSelector.getModel(true), tabContentManager,
+ mIncognitoHelper.setTabModel(mTabModelSelector.getModel(true),
tabCreatorManager.getTabCreator(true));
tabModelSwitched(mTabModelSelector.isIncognitoSelected());
}
@@ -256,12 +277,13 @@ public class StripLayoutHelperManager implements SceneOverlay {
boolean isVisible = mTabModelSelector.getModel(true).getCount() != 0;
mModelSelectorButton.setVisible(isVisible);
- float rightMargin = isVisible
- ? MODEL_SELECTOR_BUTTON_WIDTH_DP + MODEL_SELECTOR_BUTTON_RIGHT_PADDING_DP
- + MODEL_SELECTOR_BUTTON_LEFT_PADDING_DP
+ float endMargin = isVisible
+ ? MODEL_SELECTOR_BUTTON_WIDTH_DP + MODEL_SELECTOR_BUTTON_END_PADDING_DP
+ + MODEL_SELECTOR_BUTTON_START_PADDING_DP
: 0.0f;
- mNormalHelper.setRightMargin(rightMargin);
- mIncognitoHelper.setRightMargin(rightMargin);
+
+ mNormalHelper.setEndMargin(endMargin);
+ mIncognitoHelper.setEndMargin(endMargin);
}
}

Powered by Google App Engine
This is Rietveld 408576698