From 7813b87d2fadd10fa73c6056f148ab3603d01e02 Mon Sep 17 00:00:00 2001 From: AlexeyBarabash Date: Fri, 6 Feb 2026 02:50:13 +0200 Subject: [PATCH] [cr146][Android] Make MonotonicObservableSupplier inherit Supplier<@Nullable T> Chromium change: https://source.chromium.org/chromium/chromium/src/+/a5aa1f364aa75ce92d3d05c64c7d929303c8dc5f Android: Make MonotonicObservableSupplier inherit Supplier<@Nullable T> And fix all warnings that come with it. Bug: 467389696 Cq-Include-Trybots: luci.chrome.try:android-internal-dbg,android-internal-binary-size Change-Id: I86becbc2f3c149941e3401fd726d7062a261bd7a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7533558 --- .../tasks/tab_management/BraveTabSwitcherPaneBase.java | 2 +- .../fullscreen/BraveFullscreenHtmlApiHandlerCompat.java | 4 ++-- .../fullscreen/BraveFullscreenHtmlApiHandlerLegacy.java | 4 ++-- .../settings/BraveFragmentDependencyProvider.java | 5 ++--- .../browser/ui/system/BraveStatusBarColorController.java | 3 ++- .../org/chromium/chrome/browser/BytecodeTest.java | 9 +++++---- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/BraveTabSwitcherPaneBase.java b/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/BraveTabSwitcherPaneBase.java index 6267518ac42..e2d6b85a63b 100644 --- a/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/BraveTabSwitcherPaneBase.java +++ b/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/BraveTabSwitcherPaneBase.java @@ -48,7 +48,7 @@ public abstract class BraveTabSwitcherPaneBase extends TabSwitcherPaneBase { @Override public @NonNull HubLayoutAnimatorProvider createHideHubLayoutAnimatorProvider( @NonNull HubContainerView hubContainerView) { - if (getTabSwitcherPaneCoordinatorSupplier().get() == null && getCurrentTab() != null) { + if (getTabSwitcherPaneCoordinator() == null && getCurrentTab() != null) { // Force call TabSwitcherPaneBase.createTabSwitcherPaneCoordinator // to ensure TabSwitcherPaneBase.mTabSwitcherPaneCoordinatorSupplier is set super.createTabSwitcherPaneCoordinator(); diff --git a/android/java/org/chromium/chrome/browser/fullscreen/BraveFullscreenHtmlApiHandlerCompat.java b/android/java/org/chromium/chrome/browser/fullscreen/BraveFullscreenHtmlApiHandlerCompat.java index 5873f033e4e..e5f66a04f0a 100644 --- a/android/java/org/chromium/chrome/browser/fullscreen/BraveFullscreenHtmlApiHandlerCompat.java +++ b/android/java/org/chromium/chrome/browser/fullscreen/BraveFullscreenHtmlApiHandlerCompat.java @@ -7,7 +7,7 @@ package org.chromium.chrome.browser.fullscreen; import android.app.Activity; -import org.chromium.base.supplier.MonotonicObservableSupplier; +import org.chromium.base.supplier.NonNullObservableSupplier; import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher; public class BraveFullscreenHtmlApiHandlerCompat extends FullscreenHtmlApiHandlerCompat { @@ -23,7 +23,7 @@ public class BraveFullscreenHtmlApiHandlerCompat extends FullscreenHtmlApiHandle */ public BraveFullscreenHtmlApiHandlerCompat( Activity activity, - MonotonicObservableSupplier areControlsHidden, + NonNullObservableSupplier areControlsHidden, boolean exitFullscreenOnStop, MultiWindowModeStateDispatcher multiWindowDispatcher) { super(activity, areControlsHidden, exitFullscreenOnStop, multiWindowDispatcher); diff --git a/android/java/org/chromium/chrome/browser/fullscreen/BraveFullscreenHtmlApiHandlerLegacy.java b/android/java/org/chromium/chrome/browser/fullscreen/BraveFullscreenHtmlApiHandlerLegacy.java index 4ea4c9eda7e..dd4416c7ec3 100644 --- a/android/java/org/chromium/chrome/browser/fullscreen/BraveFullscreenHtmlApiHandlerLegacy.java +++ b/android/java/org/chromium/chrome/browser/fullscreen/BraveFullscreenHtmlApiHandlerLegacy.java @@ -7,7 +7,7 @@ package org.chromium.chrome.browser.fullscreen; import android.app.Activity; -import org.chromium.base.supplier.MonotonicObservableSupplier; +import org.chromium.base.supplier.NonNullObservableSupplier; import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher; public class BraveFullscreenHtmlApiHandlerLegacy extends FullscreenHtmlApiHandlerLegacy { @@ -23,7 +23,7 @@ public class BraveFullscreenHtmlApiHandlerLegacy extends FullscreenHtmlApiHandle */ public BraveFullscreenHtmlApiHandlerLegacy( Activity activity, - MonotonicObservableSupplier areControlsHidden, + NonNullObservableSupplier areControlsHidden, boolean exitFullscreenOnStop, MultiWindowModeStateDispatcher multiWindowDispatcher) { super(activity, areControlsHidden, exitFullscreenOnStop, multiWindowDispatcher); diff --git a/android/java/org/chromium/chrome/browser/settings/BraveFragmentDependencyProvider.java b/android/java/org/chromium/chrome/browser/settings/BraveFragmentDependencyProvider.java index 9d30c0755d0..b36cdec6a8f 100644 --- a/android/java/org/chromium/chrome/browser/settings/BraveFragmentDependencyProvider.java +++ b/android/java/org/chromium/chrome/browser/settings/BraveFragmentDependencyProvider.java @@ -13,6 +13,7 @@ import androidx.fragment.app.FragmentManager; import org.chromium.base.supplier.MonotonicObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.NullMarked; +import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.password_entry_edit.CredentialEditUiFactory; import org.chromium.chrome.browser.password_entry_edit.CredentialEntryFragmentViewBase; import org.chromium.chrome.browser.profiles.Profile; @@ -21,8 +22,6 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.ui.modaldialog.ModalDialogManager; -import java.util.function.Supplier; - @NullMarked public class BraveFragmentDependencyProvider extends FragmentDependencyProvider { private final Profile mProfile; @@ -33,7 +32,7 @@ public class BraveFragmentDependencyProvider extends FragmentDependencyProvider OneshotSupplier snackbarManagerSupplier, OneshotSupplier bottomSheetControllerSupplier, MonotonicObservableSupplier modalDialogManagerSupplier, - Supplier searchCoordinator) { + @Nullable SettingsSearchCoordinator searchCoordinator) { super( context, profile, diff --git a/android/java/org/chromium/chrome/browser/ui/system/BraveStatusBarColorController.java b/android/java/org/chromium/chrome/browser/ui/system/BraveStatusBarColorController.java index 5ced2c0d820..8d935ff5359 100644 --- a/android/java/org/chromium/chrome/browser/ui/system/BraveStatusBarColorController.java +++ b/android/java/org/chromium/chrome/browser/ui/system/BraveStatusBarColorController.java @@ -11,6 +11,7 @@ import android.graphics.Color; import androidx.annotation.ColorInt; import org.chromium.base.supplier.MonotonicObservableSupplier; +import org.chromium.base.supplier.NonNullObservableSupplier; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.ActivityTabProvider; @@ -37,7 +38,7 @@ public class BraveStatusBarColorController extends StatusBarColorController { TopUiThemeColorProvider topUiThemeColorProvider, EdgeToEdgeSystemBarColorHelper edgeToEdgeSystemBarColorHelper, @Nullable DesktopWindowStateManager desktopWindowStateManager, - MonotonicObservableSupplier overviewColorSupplier) { + NonNullObservableSupplier overviewColorSupplier) { super( activity, isTablet, diff --git a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java index e15ace586f0..0fc1b26e6ba 100644 --- a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java +++ b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java @@ -121,6 +121,7 @@ import org.chromium.chrome.browser.password_manager.PasswordManagerHelper; import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManager; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileKeyedMap; +import org.chromium.chrome.browser.settings.search.SettingsSearchCoordinator; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegateImpl; import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesLayout; @@ -2038,7 +2039,7 @@ public class BytecodeTest { OneshotSupplier.class, OneshotSupplier.class, MonotonicObservableSupplier.class, - Supplier.class)); + SettingsSearchCoordinator.class)); Assert.assertTrue( constructorsMatch( "org/chromium/chrome/browser/firstrun/FreIntentCreator", @@ -2145,7 +2146,7 @@ public class BytecodeTest { TopUiThemeColorProvider.class, EdgeToEdgeSystemBarColorHelper.class, DesktopWindowStateManager.class, - MonotonicObservableSupplier.class)); + NonNullObservableSupplier.class)); Assert.assertTrue( constructorsMatch( "org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment", // presubmit: ignore-long-line @@ -2189,7 +2190,7 @@ public class BytecodeTest { "org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandlerCompat", "org/chromium/chrome/browser/fullscreen/BraveFullscreenHtmlApiHandlerCompat", // presubmit: ignore-long-line Activity.class, - MonotonicObservableSupplier.class, + NonNullObservableSupplier.class, boolean.class, MultiWindowModeStateDispatcher.class)); Assert.assertTrue( @@ -2197,7 +2198,7 @@ public class BytecodeTest { "org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandlerLegacy", "org/chromium/chrome/browser/fullscreen/BraveFullscreenHtmlApiHandlerLegacy", // presubmit: ignore-long-line Activity.class, - MonotonicObservableSupplier.class, + NonNullObservableSupplier.class, boolean.class, MultiWindowModeStateDispatcher.class)); Assert.assertTrue(