diff --git a/build/patches/Add-option-to-force-tablet-UI.patch b/build/patches/Add-option-to-force-tablet-UI.patch index 4359b6b3..97698708 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -1,25 +1,181 @@ -From: Wengling Chen -Date: Mon, 1 Feb 2021 19:18:55 +0200 +From: uazo +Date: Sun, 5 May 2024 09:34:39 +0000 Subject: Add option to force tablet UI -License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html +License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../settings/AccessibilitySettings.java | 12 ++++++++++++ - .../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++++++ - .../browser/tasks/ReturnToChromeUtil.java | 4 +++- - .../chrome/browser/ui/RootUiCoordinator.java | 5 ++++- + .../start_surface/StartSurfaceMediator.java | 5 +++- + .../tasks/SingleTabSwitcherOnNtpMediator.java | 3 +- + .../layout/custom_tabs_control_container.xml | 2 +- + .../java/res/layout/recent_tabs_page.xml | 2 +- + .../java/res/values-sw600dp/dimens.xml | 6 ++-- + chrome/android/java/res/values/dimens.xml | 5 ++-- + .../chrome/browser/ChromeTabbedActivity.java | 4 ++- + .../chrome/browser/WarmupManager.java | 5 +++- + .../settings/AccessibilitySettings.java | 13 +++++++++ + .../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++ + .../chrome/browser/app/ChromeActivity.java | 4 ++- + .../overlays/strip/StripLayoutHelper.java | 10 +++++-- + .../strip/StripLayoutHelperManager.java | 6 +++- + .../browser/tasks/ReturnToChromeUtil.java | 4 ++- + .../chrome/browser/ui/RootUiCoordinator.java | 5 +++- chrome/browser/preferences/BUILD.gn | 1 + .../preferences/ChromePreferenceKeys.java | 1 + - .../preferences/ChromeSharedPreferences.java | 8 ++++++++ + .../preferences/ChromeSharedPreferences.java | 8 ++++++ .../LegacyChromePreferenceKeys.java | 1 + .../omnibox/LocationBarCoordinator.java | 2 +- - .../strings/android_chrome_strings.grd | 7 +++++++ - components/BUILD.gn | 6 +++--- - .../res/xml/accessibility_preferences.xml | 5 +++++ - .../AccessibilitySettingsDelegate.java | 11 +++++++++++ - .../chromium/ui/base/DeviceFormFactor.java | 6 ++++++ - 14 files changed, 82 insertions(+), 6 deletions(-) + .../strings/android_chrome_strings.grd | 7 +++++ + .../java/res/layout/control_container.xml | 12 ++++---- + .../java/res/layout/toolbar_tablet.xml | 2 +- + .../java/res/values-sw600dp/dimens.xml | 3 +- + .../toolbar/java/res/values/dimens.xml | 3 +- + .../browser/toolbar/ControlContainer.java | 2 +- + .../toolbar/top/ToolbarControlContainer.java | 28 ++++++++++++++++++- + .../browser/toolbar/top/ToolbarLayout.java | 5 +++- + components/BUILD.gn | 6 ++-- + .../res/xml/accessibility_preferences.xml | 5 ++++ + .../AccessibilitySettingsDelegate.java | 11 ++++++++ + .../chromium/ui/base/DeviceFormFactor.java | 9 ++++++ + 32 files changed, 165 insertions(+), 34 deletions(-) +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 +@@ -102,6 +102,7 @@ import org.chromium.components.browser_ui.widget.gesture.BackPressHandler; + import org.chromium.components.embedder_support.util.UrlUtilities; + import org.chromium.components.prefs.PrefService; + import org.chromium.content_public.browser.LoadUrlParams; ++import org.chromium.ui.base.DeviceFormFactor; + import org.chromium.ui.modelutil.PropertyModel; + import org.chromium.ui.text.EmptyTextWatcher; + import org.chromium.ui.util.ColorUtils; +@@ -1208,7 +1209,9 @@ class StartSurfaceMediator + int getTopToolbarPlaceholderHeight() { + // If logo is visible in Start surface instead of in the toolbar, we don't need to show the + // top margin of the fake search box. +- return getPixelSize(R.dimen.control_container_height) ++ return DeviceFormFactor.isForceTabletUI() ++ ? getPixelSize(R.dimen.control_container_height_tabletui) ++ : getPixelSize(R.dimen.control_container_height_cromite) + + (isLogoVisible() + ? 0 + : getPixelSize(R.dimen.start_surface_fake_search_box_top_margin)); +diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/SingleTabSwitcherOnNtpMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/SingleTabSwitcherOnNtpMediator.java +--- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/SingleTabSwitcherOnNtpMediator.java ++++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/tasks/SingleTabSwitcherOnNtpMediator.java +@@ -41,6 +41,7 @@ import org.chromium.components.browser_ui.widget.displaystyle.HorizontalDisplayS + import org.chromium.components.browser_ui.widget.displaystyle.UiConfig; + import org.chromium.components.browser_ui.widget.displaystyle.UiConfig.DisplayStyle; + import org.chromium.components.embedder_support.util.UrlUtilities; ++import org.chromium.ui.base.DeviceFormFactor; + import org.chromium.ui.modelutil.PropertyModel; + import org.chromium.url.GURL; + +@@ -91,7 +92,7 @@ public class SingleTabSwitcherOnNtpMediator implements ConfigurationChangedObser + mSingleTabCardClickedCallback = singleTabCardClickedCallback; + mIsSurfacePolishEnabled = tabContentManager != null; + mUiConfig = uiConfig; +- mIsTablet = isTablet; ++ mIsTablet = isTablet && !DeviceFormFactor.isForceTabletUI(); + mModuleDelegate = moduleDelegate; + + mMarginNarrowWindowOnTablet = +diff --git a/chrome/android/java/res/layout/custom_tabs_control_container.xml b/chrome/android/java/res/layout/custom_tabs_control_container.xml +--- a/chrome/android/java/res/layout/custom_tabs_control_container.xml ++++ b/chrome/android/java/res/layout/custom_tabs_control_container.xml +@@ -32,7 +32,7 @@ found in the LICENSE file. + android:id="@+id/find_toolbar_stub" + android:inflatedId="@+id/find_toolbar" + android:visibility="gone" +- android:layout_marginTop="@dimen/tab_strip_height" ++ android:layout_marginTop="@dimen/tab_strip_height_cromite" + android:layout_width="match_parent" + android:layout_height="@dimen/custom_tabs_control_container_height" + android:layout="@layout/find_toolbar" /> +diff --git a/chrome/android/java/res/layout/recent_tabs_page.xml b/chrome/android/java/res/layout/recent_tabs_page.xml +--- a/chrome/android/java/res/layout/recent_tabs_page.xml ++++ b/chrome/android/java/res/layout/recent_tabs_page.xml +@@ -11,7 +11,7 @@ found in the LICENSE file. + android:id="@+id/history_navigation" + android:layout_width="match_parent" + android:layout_height="match_parent" +- android:paddingTop="@dimen/tab_strip_height" > ++ android:paddingTop="@dimen/tab_strip_height_cromite" > + + 14sp + + +- 96dp ++ 96dp ++ 96dp + 64dp + +- +- 96dp +- + + 60dp + 48dp +diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml +--- a/chrome/android/java/res/values/dimens.xml ++++ b/chrome/android/java/res/values/dimens.xml +@@ -121,11 +121,12 @@ found in the LICENSE file. + 16dp + + +- 56dp ++ 56dp ++ 96dp + 56dp + + +- 56dp ++ 56dp + + + 375dp +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +@@ -2247,7 +2247,9 @@ public class ChromeTabbedActivity extends ChromeActivity { -@@ -214,6 +224,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat +@@ -214,6 +224,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat mFontSizePrefs.setUserFontScaleFactor((Float) newValue); } else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue); + } else if (PREF_FORCE_TABLET_UI.equals(preference.getKey())) { + mForceTabletUIDelegate.setEnabled((Boolean) newValue); ++ mDelegate.requestRestart(getActivity()); } else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) { mPrefService.setBoolean(Pref.READER_FOR_ACCESSIBILITY, (Boolean) newValue); } else if (PREF_PAGE_ZOOM_DEFAULT_ZOOM.equals(preference.getKey())) { @@ -92,6 +249,70 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s private final Profile mProfile; /** +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +@@ -847,7 +847,9 @@ public abstract class ChromeActivity + // Inflate the correct toolbar layout for the device. + int toolbarLayoutId = getToolbarLayoutId(); + if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { +- controlContainer.initWithToolbar(toolbarLayoutId); ++ controlContainer.initWithToolbar(toolbarLayoutId, ++ DeviceFormFactor.isForceTabletUI() ++ ? R.dimen.control_container_height_tabletui : 0); + } + } + onInitialLayoutInflationComplete(); +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 +@@ -66,6 +66,7 @@ import org.chromium.chrome.browser.tasks.tab_management.TabUiThemeUtil; + import org.chromium.components.browser_ui.styles.ChromeColors; + import org.chromium.components.browser_ui.styles.SemanticColorUtils; + import org.chromium.components.tab_groups.TabGroupColorId; ++import org.chromium.ui.base.DeviceFormFactor; + import org.chromium.ui.base.LocalizationUtils; + import org.chromium.ui.base.WindowAndroid; + import org.chromium.ui.interpolators.Interpolators; +@@ -3806,8 +3807,13 @@ public class StripLayoutHelper + mTabMenu.setAnchorView(tabView); + // 3. Set the vertical offset to align the tab menu with bottom of the tab strip + int tabHeight = mManagerHost.getHeight(); +- int verticalOffset = +- -(tabHeight - (int) mContext.getResources().getDimension(R.dimen.tab_strip_height)); ++ int tab_strip_height = ++ (int) mContext.getResources().getDimension(R.dimen.tab_strip_height_cromite); ++ if (DeviceFormFactor.isForceTabletUI()) { ++ tab_strip_height = ++ (int) mContext.getResources().getDimension(R.dimen.tab_strip_height_tabletui); ++ } ++ int verticalOffset = -(tabHeight - tab_strip_height); + mTabMenu.setVerticalOffset(verticalOffset); + + // 4. Set the horizontal offset to align the tab menu with the right side of the tab +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java +@@ -72,6 +72,7 @@ import org.chromium.chrome.browser.ui.system.StatusBarColorController; + import org.chromium.components.browser_ui.styles.SemanticColorUtils; + import org.chromium.components.browser_ui.widget.scrim.ScrimProperties; + import org.chromium.content_public.browser.LoadUrlParams; ++import org.chromium.ui.base.DeviceFormFactor; + import org.chromium.ui.base.LocalizationUtils; + import org.chromium.ui.base.PageTransition; + import org.chromium.ui.base.WindowAndroid; +@@ -444,7 +445,10 @@ public class StripLayoutHelperManager + mModelSelectorButton.setClickSlop(MODEL_SELECTOR_BUTTON_CLICK_SLOP_DP); + + Resources res = context.getResources(); +- mHeight = res.getDimension(R.dimen.tab_strip_height) / mDensity; ++ int tab_strip_height = (int) res.getDimension(R.dimen.tab_strip_height_cromite); ++ if (DeviceFormFactor.isForceTabletUI()) ++ tab_strip_height = (int) res.getDimension(R.dimen.tab_strip_height_tabletui); ++ mHeight = tab_strip_height / mDensity; + mModelSelectorButton.setAccessibilityDescription( + res.getString(R.string.accessibility_tabstrip_btn_incognito_toggle_standard), + res.getString(R.string.accessibility_tabstrip_btn_incognito_toggle_incognito)); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java @@ -201,7 +422,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 -@@ -1604,6 +1604,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1598,6 +1598,13 @@ Your Google account may have other forms of browsing history like searches and a Hide your IP address @@ -215,6 +436,178 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Safety check +diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/control_container.xml b/chrome/browser/ui/android/toolbar/java/res/layout/control_container.xml +--- a/chrome/browser/ui/android/toolbar/java/res/layout/control_container.xml ++++ b/chrome/browser/ui/android/toolbar/java/res/layout/control_container.xml +@@ -9,7 +9,7 @@ found in the LICENSE file. + android:id="@+id/control_container" + android:layout_width="match_parent" + android:layout_height="wrap_content" +- android:minHeight="@dimen/control_container_height" > ++ android:minHeight="@dimen/control_container_height_cromite" > + + + + + +@@ -36,7 +36,7 @@ found in the LICENSE file. + android:id="@+id/find_toolbar_stub" + android:inflatedId="@+id/find_toolbar" + android:visibility="gone" +- android:layout_marginTop="@dimen/tab_strip_height" ++ android:layout_marginTop="@dimen/tab_strip_height_cromite" + android:layout_width="match_parent" + android:layout_height="@dimen/toolbar_height_no_shadow" + android:layout="@layout/find_toolbar" /> +@@ -55,14 +55,14 @@ found in the LICENSE file. + android:id="@+id/target_view_stub" + android:inflatedId="@+id/toolbar_drag_drop_target_view" + android:layout_width="match_parent" +- android:layout_marginTop="@dimen/tab_strip_height" ++ android:layout_marginTop="@dimen/tab_strip_height_cromite" + android:layout_height="@dimen/toolbar_height_no_shadow" + android:layout="@layout/drag_drop_target_view" /> + + +diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml +--- a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml ++++ b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml +@@ -15,7 +15,7 @@ found in the LICENSE file. + android:id="@+id/toolbar" + android:layout_width="match_parent" + android:layout_height="@dimen/toolbar_height_no_shadow" +- android:layout_marginTop="@dimen/tab_strip_height" ++ android:layout_marginTop="@dimen/tab_strip_height_tabletui" + android:background="@macro/default_bg_color" + > + +diff --git a/chrome/browser/ui/android/toolbar/java/res/values-sw600dp/dimens.xml b/chrome/browser/ui/android/toolbar/java/res/values-sw600dp/dimens.xml +--- a/chrome/browser/ui/android/toolbar/java/res/values-sw600dp/dimens.xml ++++ b/chrome/browser/ui/android/toolbar/java/res/values-sw600dp/dimens.xml +@@ -7,5 +7,6 @@ found in the LICENSE file. + + + +- 40dp ++ 40dp ++ 40dp + +diff --git a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml b/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml +--- a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml ++++ b/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml +@@ -10,7 +10,8 @@ found in the LICENSE file. + 10dp + + +- 0dp ++ 0dp ++ 40dp + +