diff --git a/build/patches/Customize-selection-popup.patch b/build/patches/Customize-selection-popup.patch index c74c67ae..814ef1e7 100644 --- a/build/patches/Customize-selection-popup.patch +++ b/build/patches/Customize-selection-popup.patch @@ -9,13 +9,14 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- .../browser/ChromeActionModeHandler.java | 4 +- .../chrome/browser/ChromeTabbedActivity.java | 15 +- + ...ActivityTabWebContentsDelegateAndroid.java | 10 +- .../compositor/layouts/LayoutManagerImpl.java | 8 ++ .../chrome/browser/ui/RootUiCoordinator.java | 8 +- .../Customize-selection-popup.grdp | 34 +++++ .../res/xml/accessibility_preferences.xml | 24 ++++ .../selection/SelectActionMenuHelper.java | 131 ++++++++++++------ .../selection/SmartSelectionClient.java | 4 + - 8 files changed, 178 insertions(+), 50 deletions(-) + 9 files changed, 187 insertions(+), 51 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Customize-selection-popup.grdp diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java @@ -57,6 +58,31 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct Toast.makeText( ChromeTabbedActivity.this, R.string.open_in_new_tab_toast, +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java b/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java +@@ -191,12 +191,20 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat + // Skip opening a new Tab if it doesn't make sense. + if (mTab.isClosing()) return false; + ++ int tabLaunchType = TabLaunchType.FROM_LONGPRESS_FOREGROUND; ++ boolean selectionPopupTabsForeground = ++ ContextUtils.getAppSharedPreferences().getBoolean( ++ "selection_popup_tabs_foreground", false); ++ if (selectionPopupTabsForeground) { ++ tabLaunchType = TabLaunchType.FROM_LONGPRESS_BACKGROUND_IN_GROUP; ++ } ++ + // Creating new Tabs asynchronously requires starting a new Activity to create the Tab, + // so the Tab returned will always be null. There's no way to know synchronously + // whether the Tab is created, so assume it's always successful. + boolean success = + tabCreator.createTabWithWebContents( +- mTab, webContents, TabLaunchType.FROM_LONGPRESS_FOREGROUND, url); ++ mTab, webContents, tabLaunchType, url); + + if (success) { + if (disposition == WindowOpenDisposition.NEW_FOREGROUND_TAB) { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java