diff --git a/android/java/apk_for_test.flags b/android/java/apk_for_test.flags index 4c04bb51c8d3..53b31c91ef29 100644 --- a/android/java/apk_for_test.flags +++ b/android/java/apk_for_test.flags @@ -894,6 +894,7 @@ -keep class org.chromium.chrome.browser.tabbed_mode.TabbedNavigationBarColorController { *** mContext; + *** mTabModelSelector; } -keep class org.chromium.chrome.browser.tabbed_mode.BraveTabbedNavigationBarColorControllerBase diff --git a/android/java/org/chromium/chrome/browser/tabbed_mode/BraveTabbedNavigationBarColorControllerBase.java b/android/java/org/chromium/chrome/browser/tabbed_mode/BraveTabbedNavigationBarColorControllerBase.java index b7f024825bd9..8dc5b4a71082 100644 --- a/android/java/org/chromium/chrome/browser/tabbed_mode/BraveTabbedNavigationBarColorControllerBase.java +++ b/android/java/org/chromium/chrome/browser/tabbed_mode/BraveTabbedNavigationBarColorControllerBase.java @@ -9,10 +9,12 @@ import android.os.Build; import androidx.annotation.ColorInt; +import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import org.chromium.base.BraveReflectionUtil; import org.chromium.chrome.R; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarConfiguration; import org.chromium.chrome.browser.toolbar.menu_button.BraveMenuButtonCoordinator; @@ -23,7 +25,9 @@ class BraveTabbedNavigationBarColorControllerBase { * This variable will be used instead of `TabGroupModelFilter#mContext`, that will be deleted in * bytecode. */ - protected Context mContext; + protected @Nullable Context mContext; + + protected @Nullable TabModelSelector mTabModelSelector; // Calls from the upstream's private function // `TabbedNavigationBarColorController#getNavigationBarColor` @@ -33,8 +37,13 @@ public int getNavigationBarColor(boolean forceDarkNavigationBar) { // Adjust navigation bar color to match the bottom toolbar color when it is visible. if (BottomToolbarConfiguration.isBottomToolbarEnabled() && BraveMenuButtonCoordinator.isMenuFromBottom() - && mContext != null) { - return mContext.getColor(R.color.default_bg_color_baseline); + && mContext != null + && mTabModelSelector != null) { + if (mTabModelSelector.isIncognitoSelected()) { + return mContext.getColor(R.color.toolbar_background_primary_dark); + } else { + return mContext.getColor(R.color.default_bg_color_baseline); + } } // Otherwise just call upstream's method. diff --git a/android/java/res/values/brave_colors.xml b/android/java/res/values/brave_colors.xml index 82da4e98fa97..f98fc17ff225 100644 --- a/android/java/res/values/brave_colors.xml +++ b/android/java/res/values/brave_colors.xml @@ -100,6 +100,7 @@ #0061aa #3f39e8 #ffffff + #160041 @android:color/transparent @@ -143,6 +144,7 @@ #4C54D2 + @color/primitive_private_window_5 @color/incognito_modern_primary_color #13052A #4B415D diff --git a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java index 4884fb4c1012..a57159a8d80c 100644 --- a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java +++ b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java @@ -2108,6 +2108,10 @@ public void testFieldsExist() throws Exception { fieldExists( "org/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController", // presubmit: ignore-long-line "mContext")); + Assert.assertFalse( + fieldExists( + "org/chromium/chrome/browser/tabbed_mode/TabbedNavigationBarColorController", // presubmit: ignore-long-line + "mTabModelSelector")); } @Test diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveTabbedNavigationBarColorControllerBaseClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveTabbedNavigationBarColorControllerBaseClassAdapter.java index 8c17d64bbcfc..1cfdba653383 100644 --- a/build/android/bytecode/java/org/brave/bytecode/BraveTabbedNavigationBarColorControllerBaseClassAdapter.java +++ b/build/android/bytecode/java/org/brave/bytecode/BraveTabbedNavigationBarColorControllerBaseClassAdapter.java @@ -22,6 +22,8 @@ public BraveTabbedNavigationBarColorControllerBaseClassAdapter(ClassVisitor visi deleteField(sTabbedNavigationBarColorControllerClassName, "mContext"); + deleteField(sTabbedNavigationBarColorControllerClassName, "mTabModelSelector"); + changeMethodOwner( sTabbedNavigationBarColorControllerClassName, "getNavigationBarColor",