Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java |
index 4153ba6175d9364c985e0e56cf785236942194fc..4805e989c4687a124813b2c00baf2ceab0f32150 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java |
@@ -8,10 +8,12 @@ import android.content.Context; |
import android.os.Build; |
import org.chromium.base.annotations.JNINamespace; |
+import org.chromium.chrome.R; |
import org.chromium.chrome.browser.compositor.LayerTitleCache; |
import org.chromium.chrome.browser.compositor.layouts.components.CompositorButton; |
import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelperManager; |
import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutTab; |
+import org.chromium.ui.base.LocalizationUtils; |
import org.chromium.ui.resources.ResourceManager; |
/** |
@@ -58,7 +60,7 @@ public class TabStripSceneLayer extends SceneOverlayLayer { |
*/ |
public void pushAndUpdateStrip(StripLayoutHelperManager layoutHelper, |
LayerTitleCache layerTitleCache, ResourceManager resourceManager, |
- StripLayoutTab[] stripLayoutTabsToRender, float yOffset) { |
+ StripLayoutTab[] stripLayoutTabsToRender, float yOffset, int selectedTabId) { |
if (mNativePtr == 0) return; |
final boolean visible = yOffset > -layoutHelper.getHeight(); |
@@ -67,7 +69,8 @@ public class TabStripSceneLayer extends SceneOverlayLayer { |
// When strip tabs are completely off screen, we don't need to update it. |
if (visible) { |
pushButtonsAndBackground(layoutHelper, resourceManager, yOffset); |
- pushStripTabs(layoutHelper, layerTitleCache, resourceManager, stripLayoutTabsToRender); |
+ pushStripTabs(layoutHelper, layerTitleCache, resourceManager, stripLayoutTabsToRender, |
+ selectedTabId); |
} |
nativeFinishBuildingFrame(mNativePtr); |
} |
@@ -108,17 +111,29 @@ public class TabStripSceneLayer extends SceneOverlayLayer { |
modelSelectorButton.getX() * mDpToPx, modelSelectorButton.getY() * mDpToPx, |
modelSelectorButton.getWidth() * mDpToPx, modelSelectorButton.getHeight() * mDpToPx, |
modelSelectorButton.isIncognito(), modelSelectorButtonVisible, resourceManager); |
+ |
+ int leftFadeDrawable = modelSelectorButtonVisible && LocalizationUtils.isLayoutRtl() |
+ ? R.drawable.tab_strip_fade_for_model_selector : R.drawable.tab_strip_fade; |
+ int rightFadeDrawable = modelSelectorButtonVisible && !LocalizationUtils.isLayoutRtl() |
+ ? R.drawable.tab_strip_fade_for_model_selector : R.drawable.tab_strip_fade; |
+ |
+ nativeUpdateTabStripLeftFade(mNativePtr, leftFadeDrawable, |
+ layoutHelper.getLeftFadeOpacity(), resourceManager); |
+ |
+ nativeUpdateTabStripRightFade(mNativePtr, rightFadeDrawable, |
+ layoutHelper.getRightFadeOpacity(), resourceManager); |
} |
private void pushStripTabs(StripLayoutHelperManager layoutHelper, |
LayerTitleCache layerTitleCache, ResourceManager resourceManager, |
- StripLayoutTab[] stripTabs) { |
+ StripLayoutTab[] stripTabs, int selectedTabId) { |
final int tabsCount = stripTabs != null ? stripTabs.length : 0; |
for (int i = 0; i < tabsCount; i++) { |
final StripLayoutTab st = stripTabs[i]; |
+ boolean isSelected = st.getId() == selectedTabId; |
nativePutStripTabLayer(mNativePtr, st.getId(), st.getCloseButton().getResourceId(), |
- st.getResourceId(i == tabsCount - 1), i == tabsCount - 1, st.getClosePressed(), |
+ st.getResourceId(isSelected), isSelected, st.getClosePressed(), |
layoutHelper.getWidth() * mDpToPx, st.getDrawX() * mDpToPx, |
st.getDrawY() * mDpToPx, st.getWidth() * mDpToPx, st.getHeight() * mDpToPx, |
st.getContentOffsetX() * mDpToPx, st.getCloseButton().getOpacity(), |
@@ -145,6 +160,10 @@ public class TabStripSceneLayer extends SceneOverlayLayer { |
private native void nativeUpdateModelSelectorButton(long nativeTabStripSceneLayer, |
int resourceId, float x, float y, float width, float height, boolean incognito, |
boolean visible, ResourceManager resourceManager); |
+ private native void nativeUpdateTabStripLeftFade(long nativeTabStripSceneLayer, |
+ int resourceId, float opacity, ResourceManager resourceManager); |
+ private native void nativeUpdateTabStripRightFade(long nativeTabStripSceneLayer, |
+ int resourceId, float opacity, ResourceManager resourceManager); |
private native void nativePutStripTabLayer(long nativeTabStripSceneLayer, int id, |
int closeResourceId, int handleResourceId, boolean foreground, boolean closePressed, |
float toolbarWidth, float x, float y, float width, float height, float contentOffsetX, |