From 488c73859bd4adf39b334cc121f38b108dd4b0b5 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Thu, 15 May 2025 10:43:13 +0200 Subject: [PATCH] Android Toolbar Scroll Ablation setting: fix a strange behaviour of postDelayed that prevents the navigation bar from being hidden (#1895) --- ...roid-Toolbar-Scroll-Ablation-setting.patch | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch b/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch index 56e5cf51..8f2668ce 100644 --- a/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch +++ b/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch @@ -7,13 +7,35 @@ Adds a setting for blocking the toolbar hiding need: Add-cromite-flags-support.patch License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- + ...rowserStateBrowserControlsVisibilityDelegate.java | 4 +++- .../Toolbar-Scroll-Ablation-flag.grdp | 9 +++++++++ .../java/res/xml/accessibility_preferences.xml | 6 ++++++ .../about_flags_cc/Toolbar-Scroll-Ablation-flag.inc | 12 ++++++++++++ - 3 files changed, 27 insertions(+) + 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Toolbar-Scroll-Ablation-flag.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Toolbar-Scroll-Ablation-flag.inc +diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java +--- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java ++++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java +@@ -39,6 +39,7 @@ public class BrowserStateBrowserControlsVisibilityDelegate + private final Supplier mPersistentFullscreenMode; + + private long mCurrentShowingStartTime; ++ private int temporaryToken; + + /** + * Constructs a BrowserControlsVisibilityDelegate designed to deal with overrides driven by +@@ -64,7 +65,8 @@ public class BrowserStateBrowserControlsVisibilityDelegate + long currentShowingTime = SystemClock.uptimeMillis() - mCurrentShowingStartTime; + if (currentShowingTime >= MINIMUM_SHOW_DURATION_MS) return; + +- final int temporaryToken = mTokenHolder.acquireToken(); ++ mTokenHolder.releaseToken(temporaryToken); ++ temporaryToken = mTokenHolder.acquireToken(); + mHandler.postDelayed( + () -> mTokenHolder.releaseToken(temporaryToken), + MINIMUM_SHOW_DURATION_MS - currentShowingTime); diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Toolbar-Scroll-Ablation-flag.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Toolbar-Scroll-Ablation-flag.grdp new file mode 100644 --- /dev/null