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); |
} |
} |