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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.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: Tiny bit of clean up 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/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,

Powered by Google App Engine
This is Rietveld 408576698