set the color of the navbar, fix selection with drag touch (#2449)

Co-authored-by: Carmelo Messina <uazo@users.noreply.github.com>
This commit is contained in:
uazo
2022-11-18 19:57:25 +01:00
committed by GitHub
co-authored by Carmelo Messina
parent a34a56760f
commit 9ee77a4e1d
@@ -50,6 +50,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../StatusIndicatorSceneLayer.java | 7 ++-
.../browser/toolbar/ToolbarManager.java | 37 +++++++++++--
.../chrome/browser/ui/BottomContainer.java | 19 +++++++
.../ui/system/StatusBarColorController.java | 9 ++++
chrome/browser/about_flags.cc | 5 ++
.../scene_layer/tab_strip_scene_layer.cc | 16 ++++--
.../BrowserControlsMarginSupplier.java | 6 +++
@@ -60,7 +61,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../flags/android/chrome_feature_list.cc | 2 +
.../browser/flags/CachedFeatureFlags.java | 19 +++++++
.../browser/flags/ChromeFeatureList.java | 4 ++
.../chrome/browser/ui/appmenu/AppMenu.java | 25 +++++++++
.../chrome/browser/ui/appmenu/AppMenu.java | 30 +++++++++++
.../ui/appmenu/AppMenuHandlerImpl.java | 11 ++++
.../omnibox/LocationBarCoordinator.java | 9 +++-
.../browser/omnibox/UrlBarCoordinator.java | 11 +++-
@@ -85,7 +86,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../accessibility/AccessibilitySettings.java | 16 ++++++
.../AccessibilitySettingsDelegate.java | 6 +++
.../render_widget_host_view_android.cc | 3 ++
73 files changed, 768 insertions(+), 56 deletions(-)
74 files changed, 782 insertions(+), 56 deletions(-)
diff --git a/cc/base/features.cc b/cc/base/features.cc
--- a/cc/base/features.cc
@@ -1493,6 +1494,32 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContai
float offsetFromControls = mBrowserControlsStateProvider.getBottomControlOffset()
- mBrowserControlsStateProvider.getBottomControlsHeight();
offsetFromControls -= mViewportInsetSupplier.get();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java
@@ -13,6 +13,9 @@ import android.view.Window;
import androidx.annotation.ColorInt;
import androidx.annotation.Nullable;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.flags.CachedFeatureFlags;
+
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.CallbackController;
import org.chromium.base.supplier.ObservableSupplier;
@@ -347,6 +350,12 @@ public class StatusBarColorController
boolean needsDarkStatusBarIcons = !ColorUtils.shouldUseLightForegroundOnBackground(color);
ApiCompatibilityUtils.setStatusBarIconColor(root, needsDarkStatusBarIcons);
ApiCompatibilityUtils.setStatusBarColor(mWindow, color);
+ if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM) &&
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ UiUtils.setNavigationBarIconColor(mWindow.getDecorView().getRootView(),
+ needsDarkStatusBarIcons);
+ mWindow.setNavigationBarColor(color);
+ }
}
/**
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1758,7 +1785,19 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
int footerHeight = inflateFooter(footerResourceId, contentView, menuWidth);
int headerHeight = inflateHeader(headerResourceId, contentView, menuWidth);
@@ -349,6 +357,14 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
@@ -302,6 +310,11 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
if (popupHeight + popupPosition[1] > visibleDisplayFrame.bottom) {
mPopup.setHeight(visibleDisplayFrame.height());
}
+ if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) {
+ // due to some unknown behaviour, the popup must be resized to
+ // allow selection without leaving touch
+ mPopup.setHeight(popupHeight-1);
+ }
try {
mPopup.showAtLocation(anchorView.getRootView(), Gravity.NO_GRAVITY, popupPosition[0],
@@ -349,6 +362,14 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
int anchorViewX = tempLocation[0];
int anchorViewY = tempLocation[1];
@@ -1773,7 +1812,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
int[] offsets = new int[2];
// If we have a hardware menu button, locate the app menu closer to the estimated
// hardware menu button location.
@@ -539,6 +555,15 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
@@ -539,6 +560,15 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
}
int availableScreenSpace = Math.max(
anchorViewY, appDimensions.height() - anchorViewY - anchorViewImpactHeight);