|
@@ -53,7 +53,8 @@ Support for tablet mode is also included.
|
|
|
.../flags/android/chrome_feature_list.cc | 2 +
|
|
|
.../browser/flags/CachedFeatureFlags.java | 19 +++++++
|
|
|
.../browser/flags/ChromeFeatureList.java | 2 +
|
|
|
- .../chrome/browser/ui/appmenu/AppMenu.java | 19 +++++++
|
|
|
+ .../chrome/browser/ui/appmenu/AppMenu.java | 25 +++++++++
|
|
|
+ .../ui/appmenu/AppMenuHandlerImpl.java | 11 ++++
|
|
|
.../omnibox/LocationBarCoordinator.java | 9 +++-
|
|
|
.../browser/omnibox/UrlBarCoordinator.java | 11 +++-
|
|
|
.../suggestions/AutocompleteCoordinator.java | 16 +++++-
|
|
@@ -76,7 +77,7 @@ Support for tablet mode is also included.
|
|
|
.../accessibility/AccessibilitySettings.java | 16 ++++++
|
|
|
.../AccessibilitySettingsDelegate.java | 6 +++
|
|
|
.../render_widget_host_view_android.cc | 3 ++
|
|
|
- 67 files changed, 706 insertions(+), 52 deletions(-)
|
|
|
+ 68 files changed, 723 insertions(+), 52 deletions(-)
|
|
|
|
|
|
diff --git a/cc/base/features.cc b/cc/base/features.cc
|
|
|
--- a/cc/base/features.cc
|
|
@@ -1328,7 +1329,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContai
|
|
|
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
|
|
|
-@@ -6587,6 +6587,11 @@ const FeatureEntry kFeatureEntries[] = {
|
|
|
+@@ -6591,6 +6591,11 @@ const FeatureEntry kFeatureEntries[] = {
|
|
|
flag_descriptions::kImpulseScrollAnimationsDescription, kOsAll,
|
|
|
FEATURE_VALUE_TYPE(features::kImpulseScrollAnimations)},
|
|
|
|
|
@@ -1496,14 +1497,14 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
|
|
|
#include "base/metrics/field_trial_params.h"
|
|
|
#include "chrome/browser/browser_features.h"
|
|
|
#include "chrome/browser/feature_guide/notifications/feature_notification_guide_service.h"
|
|
|
-@@ -249,6 +250,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
|
|
- &kInstantStart,
|
|
|
+@@ -250,6 +251,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
|
|
&kKitKatSupported,
|
|
|
&kLensCameraAssistedSearch,
|
|
|
-+ &features::kMoveTopToolbarToBottom,
|
|
|
&kLocationBarModelOptimizations,
|
|
|
++ &features::kMoveTopToolbarToBottom,
|
|
|
&kNewWindowAppMenu,
|
|
|
&kNotificationPermissionVariant,
|
|
|
+ &kOfflineIndicatorV2,
|
|
|
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
|
|
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
|
|
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
|
@@ -1571,7 +1572,20 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
|
|
|
import org.chromium.chrome.browser.ui.appmenu.internal.R;
|
|
|
import org.chromium.components.browser_ui.styles.ChromeColors;
|
|
|
import org.chromium.components.browser_ui.widget.chips.ChipView;
|
|
|
-@@ -341,6 +343,14 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
|
|
|
+@@ -258,6 +260,12 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
|
|
|
+ }
|
|
|
+
|
|
|
+ mListView = (ListView) contentView.findViewById(R.id.app_menu_list);
|
|
|
++ if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) {
|
|
|
++ // always scroll to the bottom to show new items
|
|
|
++ mListView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
|
|
|
++ // fill content starting from the bottom of the view
|
|
|
++ mListView.setStackFromBottom(true);
|
|
|
++ }
|
|
|
+
|
|
|
+ int footerHeight = inflateFooter(footerResourceId, contentView, menuWidth);
|
|
|
+ int headerHeight = inflateHeader(headerResourceId, contentView, menuWidth);
|
|
|
+@@ -341,6 +349,14 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
|
|
|
int anchorViewX = tempLocation[0];
|
|
|
int anchorViewY = tempLocation[1];
|
|
|
|
|
@@ -1586,7 +1600,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.
|
|
|
-@@ -531,6 +541,15 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
|
|
|
+@@ -531,6 +547,15 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
|
|
|
}
|
|
|
int availableScreenSpace = Math.max(
|
|
|
anchorViewY, appDimensions.height() - anchorViewY - anchorViewImpactHeight);
|
|
@@ -1602,6 +1616,34 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
|
|
|
|
|
|
availableScreenSpace -= (padding.bottom + footerHeight + headerHeight);
|
|
|
if (mIsByPermanentButton) availableScreenSpace -= padding.top;
|
|
|
+diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java
|
|
|
+--- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java
|
|
|
++++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java
|
|
|
+@@ -19,6 +19,8 @@ import androidx.annotation.VisibleForTesting;
|
|
|
+
|
|
|
+ import org.chromium.base.Callback;
|
|
|
+ import org.chromium.base.metrics.RecordUserAction;
|
|
|
++import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
|
|
++import org.chromium.chrome.browser.flags.CachedFeatureFlags;
|
|
|
+ import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
|
|
|
+ import org.chromium.chrome.browser.lifecycle.ConfigurationChangedObserver;
|
|
|
+ import org.chromium.chrome.browser.lifecycle.StartStopWithNativeObserver;
|
|
|
+@@ -178,6 +180,15 @@ class AppMenuHandlerImpl
|
|
|
+ }),
|
|
|
+ this);
|
|
|
+
|
|
|
++ if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) {
|
|
|
++ // reverses the order of items in the menu
|
|
|
++ ModelList modelListReverted = new ModelList();
|
|
|
++ for (int i = 0; i < modelList.size(); i++) {
|
|
|
++ modelListReverted.add(0, modelList.get(i));
|
|
|
++ }
|
|
|
++ modelList = modelListReverted;
|
|
|
++ }
|
|
|
++
|
|
|
+ ContextThemeWrapper wrapper =
|
|
|
+ new ContextThemeWrapper(mContext, R.style.OverflowMenuThemeOverlay);
|
|
|
+
|
|
|
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
|
|
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
|
|
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
|
@@ -1802,7 +1844,7 @@ 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
|
|
|
-@@ -1386,6 +1386,12 @@ Your Google account may have other forms of browsing history like searches and a
|
|
|
+@@ -1396,6 +1396,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>
|