Move navigation bar to bottom:
#867 add setting to disable swipe up #950 fixed the size of ntp
This commit is contained in:
@@ -13,8 +13,8 @@ Need: bromite-build-utils.patch
|
||||
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
cc/base/features.cc | 4 +
|
||||
cc/base/features.h | 1 +
|
||||
cc/base/features.cc | 8 ++
|
||||
cc/base/features.h | 2 +
|
||||
cc/input/browser_controls_offset_manager.cc | 6 ++
|
||||
cc/trees/layer_tree_host_impl.cc | 3 +
|
||||
.../start_surface/StartSurfaceMediator.java | 4 +
|
||||
@@ -27,25 +27,25 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../tab_management/TabListCoordinator.java | 95 ++++++++++++++++++-
|
||||
.../tab_management/TabListRecyclerView.java | 19 +++-
|
||||
.../tab_management/TabSwitcherMediator.java | 27 +++++-
|
||||
.../settings/AccessibilitySettings.java | 16 ++++
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 51 ++++++++++
|
||||
.../settings/AccessibilitySettings.java | 26 +++++
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 69 ++++++++++++++
|
||||
.../chrome/browser/app/ChromeActivity.java | 13 +++
|
||||
.../compositor/CompositorViewHolder.java | 8 ++
|
||||
.../layouts/LayoutManagerChrome.java | 17 +++-
|
||||
.../layouts/LayoutManagerChrome.java | 18 +++-
|
||||
.../layouts/LayoutManagerChromeTablet.java | 4 +-
|
||||
.../layouts/ToolbarSwipeLayout.java | 14 ++-
|
||||
.../overlays/strip/StripLayoutHelper.java | 2 +-
|
||||
.../strip/StripLayoutHelperManager.java | 38 +++++++-
|
||||
.../scene_layer/StaticTabSceneLayer.java | 7 +-
|
||||
.../scene_layer/TabListSceneLayer.java | 8 ++
|
||||
.../scene_layer/TabStripSceneLayer.java | 22 ++++-
|
||||
.../scene_layer/TabStripSceneLayer.java | 19 +++-
|
||||
.../browser/findinpage/FindToolbarTablet.java | 10 +-
|
||||
.../fullscreen/BrowserControlsManager.java | 12 +++
|
||||
.../messages/MessageContainerCoordinator.java | 16 +++-
|
||||
.../modaldialog/ChromeTabModalPresenter.java | 2 +-
|
||||
.../chrome/browser/ntp/NewTabPage.java | 14 ++-
|
||||
.../chrome/browser/ntp/NewTabPageLayout.java | 8 ++
|
||||
.../chrome/browser/ntp/RecentTabsPage.java | 21 +++-
|
||||
.../chrome/browser/ntp/RecentTabsPage.java | 29 +++++-
|
||||
.../browser/searchwidget/SearchActivity.java | 12 ++-
|
||||
.../browser/settings/SettingsActivity.java | 5 +
|
||||
.../StatusIndicatorCoordinator.java | 9 ++
|
||||
@@ -58,8 +58,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../BrowserControlsMarginSupplier.java | 5 +
|
||||
.../BrowserControlsStateProvider.java | 6 ++
|
||||
.../browser/feed/FeedListContentManager.java | 6 +-
|
||||
.../flags/android/chrome_feature_list.cc | 2 +
|
||||
.../browser/flags/ChromeFeatureList.java | 5 +
|
||||
.../flags/android/chrome_feature_list.cc | 3 +
|
||||
.../browser/flags/ChromeFeatureList.java | 10 ++
|
||||
chrome/browser/prefs/browser_prefs.cc | 2 +-
|
||||
.../chrome/browser/ui/appmenu/AppMenu.java | 40 +++++++-
|
||||
.../ui/appmenu/AppMenuHandlerImpl.java | 10 ++
|
||||
@@ -79,27 +79,31 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../bottom/BottomControlsProperties.java | 6 +-
|
||||
.../bottom/BottomControlsViewBinder.java | 2 +
|
||||
.../bottom/ScrollingBottomViewSceneLayer.java | 19 +++-
|
||||
.../toolbar/top/ToolbarControlContainer.java | 10 ++
|
||||
.../toolbar/top/ToolbarControlContainer.java | 9 ++
|
||||
.../top/TopToolbarOverlayCoordinator.java | 6 ++
|
||||
.../top/TopToolbarOverlayProperties.java | 8 +-
|
||||
.../toolbar/top/TopToolbarSceneLayer.java | 10 +-
|
||||
.../res/xml/accessibility_preferences.xml | 4 +
|
||||
.../AccessibilitySettingsDelegate.java | 6 ++
|
||||
.../res/xml/accessibility_preferences.xml | 8 ++
|
||||
.../AccessibilitySettingsDelegate.java | 7 ++
|
||||
.../render_widget_host_view_android.cc | 3 +
|
||||
.../Move-navigation-bar-to-bottom.inc | 12 +++
|
||||
74 files changed, 909 insertions(+), 88 deletions(-)
|
||||
.../Move-navigation-bar-to-bottom.inc | 17 ++++
|
||||
74 files changed, 962 insertions(+), 89 deletions(-)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc
|
||||
|
||||
diff --git a/cc/base/features.cc b/cc/base/features.cc
|
||||
--- a/cc/base/features.cc
|
||||
+++ b/cc/base/features.cc
|
||||
@@ -36,6 +36,10 @@ BASE_FEATURE(kSynchronizedScrolling,
|
||||
@@ -36,6 +36,14 @@ BASE_FEATURE(kSynchronizedScrolling,
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
#endif
|
||||
|
||||
+BASE_FEATURE(kMoveTopToolbarToBottom,
|
||||
+ "MoveTopToolbarToBottom",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+
|
||||
+BASE_FEATURE(kDisableToolbarSwipeUp,
|
||||
+ "DisableToolbarSwipeUp",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+
|
||||
BASE_FEATURE(kRemoveMobileViewportDoubleTap,
|
||||
"RemoveMobileViewportDoubleTap",
|
||||
@@ -107,11 +111,12 @@ diff --git a/cc/base/features.cc b/cc/base/features.cc
|
||||
diff --git a/cc/base/features.h b/cc/base/features.h
|
||||
--- a/cc/base/features.h
|
||||
+++ b/cc/base/features.h
|
||||
@@ -15,6 +15,7 @@ namespace features {
|
||||
@@ -15,6 +15,8 @@ namespace features {
|
||||
CC_BASE_EXPORT BASE_DECLARE_FEATURE(kAnimatedImageResume);
|
||||
CC_BASE_EXPORT extern bool IsImpulseScrollAnimationEnabled();
|
||||
CC_BASE_EXPORT BASE_DECLARE_FEATURE(kSynchronizedScrolling);
|
||||
+CC_BASE_EXPORT BASE_DECLARE_FEATURE(kMoveTopToolbarToBottom);
|
||||
+CC_BASE_EXPORT BASE_DECLARE_FEATURE(kDisableToolbarSwipeUp);
|
||||
|
||||
// When enabled, the double tap to zoom will be disabled when the viewport
|
||||
// meta tag is properly set for mobile using content=width=device-width
|
||||
@@ -154,7 +159,7 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
|
||||
diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
|
||||
--- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
|
||||
+++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
|
||||
@@ -109,6 +109,8 @@ import org.chromium.url.GURL;
|
||||
@@ -110,6 +110,8 @@ import org.chromium.url.GURL;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -163,7 +168,7 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/
|
||||
/** The mediator implements the logic to interact with the surfaces and caller. */
|
||||
class StartSurfaceMediator
|
||||
implements TabSwitcher.TabSwitcherViewObserver,
|
||||
@@ -1049,6 +1051,8 @@ class StartSurfaceMediator
|
||||
@@ -1050,6 +1052,8 @@ class StartSurfaceMediator
|
||||
}
|
||||
|
||||
private void setTopMargin(int topMargin) {
|
||||
@@ -720,17 +725,19 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
@@ -50,6 +50,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -50,6 +50,11 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
private BooleanPreferenceDelegate mForceTabletUIDelegate;
|
||||
static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
|
||||
|
||||
+ static final String PREF_MOVE_TOOLBAR_TO_BOTTOM = "move_toolbar_bottom";
|
||||
+ static final String PREF_DISABLE_TOOLBAR_SWIPE_UP = "disable_toolbar_swipeup";
|
||||
+ private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate;
|
||||
+ private BooleanPreferenceDelegate mDisableToolbarSwipeUpDelegate;
|
||||
+
|
||||
private TextScalePreference mTextScalePref;
|
||||
private PageZoomPreference mPageZoomDefaultZoomPref;
|
||||
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
||||
@@ -85,6 +88,10 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -85,6 +90,10 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
mFontSizePrefs = FontSizePrefs.getInstance(delegate.getBrowserContextHandle());
|
||||
}
|
||||
|
||||
@@ -741,7 +748,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
@@ -153,6 +160,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -153,6 +162,18 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
forceTabletUiPref.setChecked(mForceTabletUIDelegate.isEnabled());
|
||||
forceTabletUiPref.setOnPreferenceChangeListener(this);
|
||||
|
||||
@@ -750,17 +757,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
+ mMoveTopToolbarToBottomDelegate = mDelegate.getMoveTopToolbarToBottomDelegate();
|
||||
+ mMoveToolbarToBottomPref.setChecked(mMoveTopToolbarToBottomDelegate.isEnabled());
|
||||
+ mMoveToolbarToBottomPref.setOnPreferenceChangeListener(this);
|
||||
+
|
||||
+ ChromeSwitchPreference mDisableToolbarSwipeUpPref =
|
||||
+ (ChromeSwitchPreference) findPreference(PREF_DISABLE_TOOLBAR_SWIPE_UP);
|
||||
+ mDisableToolbarSwipeUpDelegate = mDelegate.getDisableToolbarSwipeUpDelegate();
|
||||
+ mDisableToolbarSwipeUpPref.setChecked(mDisableToolbarSwipeUpDelegate.isEnabled());
|
||||
+ mDisableToolbarSwipeUpPref.setOnPreferenceChangeListener(this);
|
||||
+
|
||||
Preference captions = findPreference(PREF_CAPTIONS);
|
||||
captions.setOnPreferenceClickListener(
|
||||
preference -> {
|
||||
@@ -235,6 +248,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -236,6 +257,11 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
mDelegate.getBrowserContextHandle(), (Integer) newValue);
|
||||
} else if (PREF_PAGE_ZOOM_ALWAYS_SHOW.equals(preference.getKey())) {
|
||||
PageZoomUtils.setShouldAlwaysShowZoomMenuItem((Boolean) newValue);
|
||||
+ } else if (PREF_MOVE_TOOLBAR_TO_BOTTOM.equals(preference.getKey())) {
|
||||
+ mMoveTopToolbarToBottomDelegate.setEnabled((Boolean) newValue);
|
||||
+ mDelegate.requestRestart(getActivity());
|
||||
+ } else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) {
|
||||
+ mDisableToolbarSwipeUpDelegate.setEnabled((Boolean) newValue);
|
||||
} else if (PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT.equals(preference.getKey())) {
|
||||
// TODO(mschillaci): Implement the override behavior for OS level.
|
||||
}
|
||||
@@ -794,7 +809,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
private final Profile mProfile;
|
||||
|
||||
/**
|
||||
@@ -67,6 +80,44 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
@@ -67,6 +80,62 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
mProfile = profile;
|
||||
}
|
||||
|
||||
@@ -811,12 +826,30 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static class DisableToolbarSwipeUpDelegate implements BooleanPreferenceDelegate {
|
||||
+ @Override
|
||||
+ public boolean isEnabled() {
|
||||
+ return ChromeFeatureList.sDisableToolbarSwipeUp.isEnabled();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setEnabled(boolean value) {
|
||||
+ CromiteNativeUtils.setFlagEnabled(ChromeFeatureList.DISABLE_TOOLBAR_SWIPE_UP,
|
||||
+ "disable-toolbar-swipe-up", value);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate() {
|
||||
+ return new MoveTopToolbarToBottomDelegate();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public BooleanPreferenceDelegate getDisableToolbarSwipeUpDelegate() {
|
||||
+ return new DisableToolbarSwipeUpDelegate();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void requestRestart(Activity activity) {
|
||||
+ Snackbar mSnackbar = Snackbar.make(activity.getString(R.string.ui_relaunch_notice),
|
||||
+ new SnackbarManager.SnackbarController() {
|
||||
@@ -852,10 +885,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
||||
/**
|
||||
* A {@link AsyncInitializationActivity} that builds and manages a {@link CompositorViewHolder}
|
||||
* and associated classes.
|
||||
@@ -849,6 +852,16 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
int toolbarLayoutId = getToolbarLayoutId();
|
||||
if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
|
||||
controlContainer.initWithToolbar(toolbarLayoutId);
|
||||
@@ -851,6 +854,16 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
controlContainer.initWithToolbar(toolbarLayoutId,
|
||||
DeviceFormFactor.isForceTabletUI()
|
||||
? R.dimen.control_container_height_tabletui : 0);
|
||||
+ ImageView shadowImage = findViewById(R.id.toolbar_hairline);
|
||||
+ if (shadowImage != null) {
|
||||
+ // Invert the shadown if the top toolbar is at the bottom
|
||||
@@ -937,17 +970,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -605,6 +611,9 @@ public class LayoutManagerChrome extends LayoutManagerImpl
|
||||
@@ -605,6 +611,10 @@ public class LayoutManagerChrome extends LayoutManagerImpl
|
||||
&& mScrollDirection == ScrollDirection.DOWN) {
|
||||
RecordUserAction.record("MobileToolbarSwipeOpenStackView");
|
||||
showLayout(LayoutType.TAB_SWITCHER, true);
|
||||
+ } else if (mSupportSwipeUp && isTabSwitcherReady()
|
||||
+ && mScrollDirection == ScrollDirection.UP) {
|
||||
+ && mScrollDirection == ScrollDirection.UP
|
||||
+ && !ChromeFeatureList.sDisableToolbarSwipeUp.isEnabled()) {
|
||||
+ showLayout(LayoutType.TAB_SWITCHER, true);
|
||||
} else if (mScrollDirection == ScrollDirection.LEFT
|
||||
|| mScrollDirection == ScrollDirection.RIGHT) {
|
||||
startShowing(mToolbarSwipeLayout, true);
|
||||
@@ -655,6 +664,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl
|
||||
@@ -655,6 +665,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl
|
||||
direction = ScrollDirection.RIGHT;
|
||||
} else if (swipeAngle < 270 + SWIPE_RANGE_DEG && swipeAngle > 270 - SWIPE_RANGE_DEG) {
|
||||
direction = ScrollDirection.DOWN;
|
||||
@@ -956,7 +990,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
|
||||
}
|
||||
|
||||
return direction;
|
||||
@@ -669,7 +680,7 @@ public class LayoutManagerChrome extends LayoutManagerImpl
|
||||
@@ -669,7 +681,7 @@ public class LayoutManagerChrome extends LayoutManagerImpl
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1027,7 +1061,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
|
||||
@@ -583,7 +583,7 @@ public class StripLayoutHelper
|
||||
@@ -584,7 +584,7 @@ public class StripLayoutHelper
|
||||
boolean isRtl = LocalizationUtils.isLayoutRtl();
|
||||
boolean useUnadjustedScrollOffset = isRtl != isLeft;
|
||||
float offset =
|
||||
@@ -1047,7 +1081,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
|
||||
import org.chromium.chrome.browser.compositor.LayerTitleCache;
|
||||
@@ -81,6 +82,8 @@ import org.chromium.ui.interpolators.Interpolators;
|
||||
@@ -82,6 +83,8 @@ import org.chromium.ui.interpolators.Interpolators;
|
||||
import org.chromium.ui.resources.ResourceManager;
|
||||
import org.chromium.ui.util.ColorUtils;
|
||||
import org.chromium.url.GURL;
|
||||
@@ -1056,7 +1090,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -205,12 +208,16 @@ public class StripLayoutHelperManager
|
||||
@@ -206,12 +209,16 @@ public class StripLayoutHelperManager
|
||||
// Drag-Drop
|
||||
@Nullable private TabDragSource mTabDragSource;
|
||||
|
||||
@@ -1073,7 +1107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
if (mModelSelectorButton.onDown(x, y, fromMouse)) {
|
||||
return;
|
||||
}
|
||||
@@ -233,6 +240,7 @@ public class StripLayoutHelperManager
|
||||
@@ -234,6 +241,7 @@ public class StripLayoutHelperManager
|
||||
if (DragDropGlobalState.hasValue()) {
|
||||
return;
|
||||
}
|
||||
@@ -1081,7 +1115,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
mModelSelectorButton.drag(x, y);
|
||||
getActiveStripLayoutHelper().drag(time(), x, y, dx);
|
||||
}
|
||||
@@ -242,6 +250,7 @@ public class StripLayoutHelperManager
|
||||
@@ -243,6 +251,7 @@ public class StripLayoutHelperManager
|
||||
if (DragDropGlobalState.hasValue()) {
|
||||
return;
|
||||
}
|
||||
@@ -1089,7 +1123,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
long time = time();
|
||||
if (mModelSelectorButton.click(x, y)) {
|
||||
mModelSelectorButton.handleClick(time);
|
||||
@@ -255,6 +264,7 @@ public class StripLayoutHelperManager
|
||||
@@ -256,6 +265,7 @@ public class StripLayoutHelperManager
|
||||
if (DragDropGlobalState.hasValue()) {
|
||||
return;
|
||||
}
|
||||
@@ -1097,7 +1131,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
getActiveStripLayoutHelper().fling(time(), x, y, velocityX, velocityY);
|
||||
}
|
||||
|
||||
@@ -263,6 +273,7 @@ public class StripLayoutHelperManager
|
||||
@@ -264,6 +274,7 @@ public class StripLayoutHelperManager
|
||||
if (DragDropGlobalState.hasValue()) {
|
||||
return;
|
||||
}
|
||||
@@ -1105,7 +1139,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
getActiveStripLayoutHelper().onLongPress(time(), x, y);
|
||||
}
|
||||
|
||||
@@ -364,7 +375,8 @@ public class StripLayoutHelperManager
|
||||
@@ -365,7 +376,8 @@ public class StripLayoutHelperManager
|
||||
@NonNull WindowAndroid windowAndroid,
|
||||
// TODO(crbug.com/1498252): Avoid passing the ToolbarManager instance. Potentially
|
||||
// implement an interface to manage strip transition states.
|
||||
@@ -1115,7 +1149,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
mUpdateHost = updateHost;
|
||||
mLayerTitleCacheSupplier = layerTitleCacheSupplier;
|
||||
mDensity = context.getResources().getDisplayMetrics().density;
|
||||
@@ -492,6 +504,8 @@ public class StripLayoutHelperManager
|
||||
@@ -496,6 +508,8 @@ public class StripLayoutHelperManager
|
||||
mTabDragSource,
|
||||
toolbarContainerView,
|
||||
windowAndroid);
|
||||
@@ -1124,7 +1158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
|
||||
tabHoverCardViewStub.setOnInflateListener(
|
||||
(viewStub, view) -> {
|
||||
@@ -655,6 +669,10 @@ public class StripLayoutHelperManager
|
||||
@@ -659,6 +673,10 @@ public class StripLayoutHelperManager
|
||||
// value.
|
||||
yOffset -= getHeight();
|
||||
}
|
||||
@@ -1135,7 +1169,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
mTabStripTreeProvider.pushAndUpdateStrip(
|
||||
this,
|
||||
mLayerTitleCacheSupplier.get(),
|
||||
@@ -667,7 +685,9 @@ public class StripLayoutHelperManager
|
||||
@@ -671,7 +689,9 @@ public class StripLayoutHelperManager
|
||||
getStripTransitionScrimColor(),
|
||||
scrimOpacity,
|
||||
mLeftPadding,
|
||||
@@ -1146,7 +1180,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
return mTabStripTreeProvider;
|
||||
}
|
||||
|
||||
@@ -725,11 +745,21 @@ public class StripLayoutHelperManager
|
||||
@@ -729,11 +749,21 @@ public class StripLayoutHelperManager
|
||||
mLeftPadding,
|
||||
mRightPadding);
|
||||
|
||||
@@ -1232,7 +1266,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen
|
||||
|
||||
/**
|
||||
* The Java component of what is basically a CC Layer that manages drawing the Tab Strip (which is
|
||||
@@ -89,9 +92,24 @@ public class TabStripSceneLayer extends SceneOverlayLayer {
|
||||
@@ -89,9 +92,21 @@ public class TabStripSceneLayer extends SceneOverlayLayer {
|
||||
int scrimColor,
|
||||
float scrimOpacity,
|
||||
float leftPaddingDp,
|
||||
@@ -1244,11 +1278,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen
|
||||
- final boolean visible = yOffset > -layoutHelper.getHeight();
|
||||
+ boolean visible = yOffset > -layoutHelper.getHeight();
|
||||
+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
|
||||
+ // check if force tablet mode is active
|
||||
+ // is active if(isTablet != isNonMultiDisplayContextOnTablet)
|
||||
+ if (DeviceFormFactor.isTablet() ==
|
||||
+ DeviceFormFactor.isNonMultiDisplayContextOnTablet(ContextUtils.getApplicationContext())) {
|
||||
+ // the list of open tabs (in tablet mode not forced) is moved down, above the top
|
||||
+ if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(ContextUtils.getApplicationContext())) {
|
||||
+ // the list of open tabs is moved down, above the top
|
||||
+ // toolbar which is also below.
|
||||
+ // values are in pixel.
|
||||
+ yOffset = (((int)viewportHeight - topControlsHeight) / mDpToPx) - yOffset;
|
||||
@@ -1433,7 +1464,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
|
||||
insertSiteSectionView();
|
||||
+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
|
||||
+ FrameLayout.LayoutParams params =
|
||||
+ new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
|
||||
+ new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
|
||||
+ params.gravity = Gravity.BOTTOM;
|
||||
+ setLayoutParams(params);
|
||||
+ }
|
||||
@@ -1478,7 +1509,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP
|
||||
mBrowserControlsStateProvider = browserControlsStateProvider;
|
||||
mBrowserControlsStateProvider.addObserver(this);
|
||||
onBottomControlsHeightChanged(
|
||||
@@ -300,7 +305,7 @@ public class RecentTabsPage
|
||||
@@ -111,7 +116,13 @@ public class RecentTabsPage
|
||||
|
||||
mTabStripHeightSupplier = tabStripHeightSupplier;
|
||||
mView.setPadding(0, mTabStripHeightSupplier.get(), 0, 0);
|
||||
- if (ToolbarFeatures.isDynamicTopChromeEnabled()) {
|
||||
+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
|
||||
+ mView.setPadding(
|
||||
+ mView.getPaddingLeft(),
|
||||
+ 0,
|
||||
+ mView.getPaddingRight(),
|
||||
+ mView.getPaddingBottom());
|
||||
+ } else if (ToolbarFeatures.isDynamicTopChromeEnabled()) {
|
||||
mTabStripHeightChangeCallback =
|
||||
newHeight ->
|
||||
mView.setPadding(
|
||||
@@ -300,7 +311,7 @@ public class RecentTabsPage
|
||||
|
||||
private void updateMargins() {
|
||||
final View recentTabsRoot = mView.findViewById(R.id.recent_tabs_root);
|
||||
@@ -1487,7 +1533,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP
|
||||
final int contentOffset = mBrowserControlsStateProvider.getContentOffset();
|
||||
ViewGroup.MarginLayoutParams layoutParams =
|
||||
(ViewGroup.MarginLayoutParams) recentTabsRoot.getLayoutParams();
|
||||
@@ -316,9 +321,17 @@ public class RecentTabsPage
|
||||
@@ -316,9 +327,17 @@ public class RecentTabsPage
|
||||
|
||||
// If the content offset is different from the margin, we use translationY to position the
|
||||
// view in line with the content offset.
|
||||
@@ -1945,40 +1991,46 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
|
||||
#include "chrome/browser/browser_features.h"
|
||||
#include "chrome/browser/flags/android/chrome_session_state.h"
|
||||
#include "chrome/browser/flags/jni_headers/ChromeFeatureMap_jni.h"
|
||||
@@ -232,6 +233,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
@@ -233,6 +234,8 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
&kMultiInstanceApplicationStatusCleanup,
|
||||
&kNavBarColorMatchesTabBackground,
|
||||
&kNewTabSearchEngineUrlAndroid,
|
||||
+ &features::kMoveTopToolbarToBottom,
|
||||
+ &features::kDisableToolbarSwipeUp,
|
||||
&kNotificationPermissionVariant,
|
||||
&kNotificationPermissionBottomSheet,
|
||||
&kOpenDownloadDialog,
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
@@ -337,6 +337,8 @@ public abstract class ChromeFeatureList {
|
||||
@@ -337,6 +337,10 @@ public abstract class ChromeFeatureList {
|
||||
"NavBarColorMatchesTabBackground";
|
||||
public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid";
|
||||
public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe";
|
||||
+ public static final String DISABLE_TOOLBAR_SWIPE_UP =
|
||||
+ "DisableToolbarSwipeUp";
|
||||
+ public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM =
|
||||
+ "MoveTopToolbarToBottom";
|
||||
public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant";
|
||||
public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET =
|
||||
"NotificationPermissionBottomSheet";
|
||||
@@ -619,6 +621,8 @@ public abstract class ChromeFeatureList {
|
||||
@@ -619,6 +623,10 @@ public abstract class ChromeFeatureList {
|
||||
newCachedFlag(QUERY_TILES_IN_ZPS_ON_NTP, false);
|
||||
public static final CachedFlag sOmniboxMatchToolbarAndStatusBarColor =
|
||||
newCachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false);
|
||||
+ public static final CachedFlag sDisableToolbarSwipeUp =
|
||||
+ newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false);
|
||||
+ public static final CachedFlag sMoveTopToolbarToBottom =
|
||||
+ newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
|
||||
public static final CachedFlag sOmniboxModernizeVisualUpdate =
|
||||
newCachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, true);
|
||||
public static final CachedFlag sOptimizationGuidePushNotifications =
|
||||
@@ -744,6 +748,7 @@ public abstract class ChromeFeatureList {
|
||||
@@ -744,6 +752,8 @@ public abstract class ChromeFeatureList {
|
||||
sOmniboxMatchToolbarAndStatusBarColor,
|
||||
sOmniboxModernizeVisualUpdate,
|
||||
sOptimizationGuidePushNotifications,
|
||||
+ sMoveTopToolbarToBottom,
|
||||
+ sDisableToolbarSwipeUp,
|
||||
sPaintPreviewDemo,
|
||||
sQueryTiles,
|
||||
sRedirectExplicitCTAIntentsToExistingActivity,
|
||||
@@ -2472,15 +2524,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -1645,6 +1645,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -1639,6 +1639,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_FORCE_TABLET_UI_TITLE" desc="Title of the preference that allows the user to update force tablet UI settings.">
|
||||
Force Tablet Mode
|
||||
</message>
|
||||
+ <message name="IDS_MOVE_TOOLBAR_BOTTOM_TITLE" desc="Title of the preference that allows the user to move toolbar on bottom.">
|
||||
+ Move toolbar to bottom
|
||||
+ </message>
|
||||
+ <message name="IDS_MOVE_TOOLBAR_BOTTOM_SUMMARY" desc="Summary of the preference that allows the user to move toolbar on bottom.">
|
||||
+ Move toolbar to bottom
|
||||
+ <message name="IDS_DISABLE_TOOLBAR_SWIPE_UP" desc="Summary of the preference that allows the user to disable toolbar swipeup.">
|
||||
+ Disable toolbar swipe up
|
||||
+ </message>
|
||||
|
||||
<!-- Safety check -->
|
||||
@@ -2733,7 +2785,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
|
||||
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
||||
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
||||
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
||||
@@ -60,6 +60,10 @@ import java.lang.annotation.Retention;
|
||||
@@ -61,6 +61,10 @@ import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.function.BooleanSupplier;
|
||||
|
||||
@@ -2744,16 +2796,15 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
|
||||
/** Layout for the browser controls (omnibox, menu, tab strip, etc..). */
|
||||
public class ToolbarControlContainer extends OptimizedFrameLayout implements ControlContainer {
|
||||
private boolean mIncognito;
|
||||
@@ -115,6 +119,12 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con
|
||||
@Override
|
||||
public void initWithToolbar(int toolbarLayoutId) {
|
||||
try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) {
|
||||
@@ -141,6 +145,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con
|
||||
if (view != null)
|
||||
((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height;
|
||||
}
|
||||
+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
|
||||
+ // the top toolbar is docked at the bottom
|
||||
+ CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams)getLayoutParams();
|
||||
+ layoutParams.gravity = Gravity.START | Gravity.BOTTOM;
|
||||
+ }
|
||||
+
|
||||
mToolbarContainer =
|
||||
(ToolbarViewResourceFrameLayout) findViewById(R.id.toolbar_container);
|
||||
ViewStub toolbarStub = findViewById(R.id.toolbar_stub);
|
||||
@@ -2847,14 +2898,18 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
|
||||
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||
@@ -59,4 +59,8 @@ found in the LICENSE file.
|
||||
@@ -59,4 +59,12 @@ found in the LICENSE file.
|
||||
android:key="image_descriptions"
|
||||
android:title="@string/image_descriptions_settings_title" />
|
||||
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="move_toolbar_bottom"
|
||||
+ android:summary="@string/move_toolbar_bottom_summary"
|
||||
+ android:title="@string/move_toolbar_bottom_title" />
|
||||
+
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="disable_toolbar_swipeup"
|
||||
+ android:title="@string/disable_toolbar_swipe_up" />
|
||||
+
|
||||
</PreferenceScreen>
|
||||
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
@@ -2868,13 +2923,14 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
||||
import org.chromium.content_public.browser.BrowserContextHandle;
|
||||
|
||||
/**
|
||||
@@ -32,6 +34,10 @@ public interface AccessibilitySettingsDelegate {
|
||||
@@ -32,6 +34,11 @@ public interface AccessibilitySettingsDelegate {
|
||||
void setValue(int value);
|
||||
}
|
||||
|
||||
+ void requestRestart(Activity activity);
|
||||
+
|
||||
+ BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate();
|
||||
+ BooleanPreferenceDelegate getDisableToolbarSwipeUpDelegate();
|
||||
+
|
||||
/** @return The BrowserContextHandle that should be used to read and update settings. */
|
||||
BrowserContextHandle getBrowserContextHandle();
|
||||
@@ -2903,7 +2959,7 @@ diff --git a/cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc
|
||||
@@ -0,0 +1,12 @@
|
||||
@@ -0,0 +1,17 @@
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+
|
||||
+#ifdef FLAG_SECTION
|
||||
@@ -2913,6 +2969,11 @@ new file mode 100644
|
||||
+ "Move the top toolbar to the bottom.", kOsAndroid,
|
||||
+ FEATURE_VALUE_TYPE(features::kMoveTopToolbarToBottom)},
|
||||
+
|
||||
+ {"disable-toolbar-swipe-up",
|
||||
+ "Disable toolbar swipe up",
|
||||
+ "Disable toolbar swipe up.", kOsAndroid,
|
||||
+ FEATURE_VALUE_TYPE(features::kDisableToolbarSwipeUp)},
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+#endif
|
||||
|
||||
Reference in New Issue
Block a user