From: Wengling Chen Date: Mon, 1 Feb 2021 19:18:55 +0200 Subject: Add option to force tablet UI --- .../android/java/res/xml/accessibility_preferences.xml | 5 +++++ .../accessibility/settings/AccessibilitySettings.java | 10 ++++++++++ .../browser/preferences/ChromePreferenceKeys.java | 1 + .../preferences/LegacyChromePreferenceKeys.java | 1 + .../chrome/browser/omnibox/LocationBarCoordinator.java | 2 +- .../ui/android/strings/android_chrome_strings.grd | 6 ++++++ .../browser/toolbar/top/ToolbarControlContainer.java | 2 +- components/BUILD.gn | 4 ++-- ui/android/BUILD.gn | 2 ++ .../src/org/chromium/ui/base/DeviceFormFactor.java | 5 +++++ 10 files changed, 34 insertions(+), 4 deletions(-) diff --git a/chrome/android/java/res/xml/accessibility_preferences.xml b/chrome/android/java/res/xml/accessibility_preferences.xml --- a/chrome/android/java/res/xml/accessibility_preferences.xml +++ b/chrome/android/java/res/xml/accessibility_preferences.xml @@ -29,6 +29,11 @@ android:key="captions" android:title="@string/accessibility_captions_title"/> + + Turn off + + Open chromium in Tablet Mode + + + Force Tablet Mode + 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 @@ -109,7 +109,7 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con // On tablet, draw a fake tab strip and toolbar until the compositor is // ready to draw the real tab strip. (On phone, the toolbar is made entirely // of Android views, which are already initialized.) - setBackgroundResource(R.drawable.toolbar_background); +// setBackgroundResource(R.drawable.toolbar_background); } } diff --git a/components/BUILD.gn b/components/BUILD.gn --- a/components/BUILD.gn +++ b/components/BUILD.gn @@ -542,7 +542,7 @@ test("components_unittests") { # On LaCrOS, tests use ash - chrome as a window manager, thus the dependency. # On other platforms, no components should depend on Chrome. - if (!is_chromeos_lacros) { + if (!is_chromeos_lacros && !is_android) { assert_no_deps = [ "//chrome/*" ] } @@ -789,7 +789,7 @@ if (!is_ios) { # On LaCrOS, tests use ash - chrome as a window manager, thus the dependency. # On other platforms, no components should depend on Chrome. - if (!is_chromeos_lacros) { + if (!is_chromeos_lacros && !is_android) { assert_no_deps = [ "//chrome/*" ] } } diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn --- a/ui/android/BUILD.gn +++ b/ui/android/BUILD.gn @@ -370,6 +370,8 @@ android_library("ui_no_recycler_view_java") { ":ui_java_resources", ":ui_utils_java", "//base:base_java", + # dependency for ui_no_recycler_view_java + "//chrome/browser/preferences:java", "//components/url_formatter/android:url_formatter_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_appcompat_appcompat_java", diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java --- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java +++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java @@ -11,6 +11,8 @@ import androidx.annotation.UiThread; import org.chromium.base.ContextUtils; import org.chromium.base.ThreadUtils; import org.chromium.base.annotations.CalledByNative; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.ui.R; import org.chromium.ui.display.DisplayAndroid; import org.chromium.ui.display.DisplayUtil; @@ -60,6 +62,9 @@ public class DeviceFormFactor { * E.g. http://developer.samsung.com/samsung-dex/testing */ public static boolean isNonMultiDisplayContextOnTablet(Context context) { + if (SharedPreferencesManager.getInstance().readBoolean( + ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)) + return true; return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET; } -- 2.17.1