Bug 1884187 - Fix Fenix night mode bug after opening a custom tab

fenix/125.0
t-p-white 2 months ago committed by mergify[bot]
parent 0450b126f1
commit 32259c25ac

@ -5,6 +5,9 @@
package org.mozilla.fenix.customtabs package org.mozilla.fenix.customtabs
import android.app.Activity import android.app.Activity
import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM
import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_NO
import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES
import androidx.appcompat.content.res.AppCompatResources.getDrawable import androidx.appcompat.content.res.AppCompatResources.getDrawable
import mozilla.components.browser.state.store.BrowserStore import mozilla.components.browser.state.store.BrowserStore
import mozilla.components.browser.toolbar.BrowserToolbar import mozilla.components.browser.toolbar.BrowserToolbar
@ -15,6 +18,8 @@ import mozilla.components.support.base.feature.LifecycleAwareFeature
import mozilla.components.support.base.feature.UserInteractionHandler import mozilla.components.support.base.feature.UserInteractionHandler
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.components.toolbar.ToolbarMenu import org.mozilla.fenix.components.toolbar.ToolbarMenu
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.utils.Settings
@Suppress("LongParameterList") @Suppress("LongParameterList")
class CustomTabsIntegration( class CustomTabsIntegration(
@ -58,20 +63,31 @@ class CustomTabsIntegration(
} }
private val feature = CustomTabsToolbarFeature( private val feature = CustomTabsToolbarFeature(
store, store = store,
toolbar, toolbar = toolbar,
sessionId, sessionId = sessionId,
useCases, useCases = useCases,
menuBuilder = customTabToolbarMenu.menuBuilder, menuBuilder = customTabToolbarMenu.menuBuilder,
menuItemIndex = START_OF_MENU_ITEMS_INDEX, menuItemIndex = START_OF_MENU_ITEMS_INDEX,
window = activity.window, window = activity.window,
shareListener = { onItemTapped.invoke(ToolbarMenu.Item.Share) }, shareListener = { onItemTapped.invoke(ToolbarMenu.Item.Share) },
closeListener = { activity.finishAndRemoveTask() }, closeListener = { activity.finishAndRemoveTask() },
updateTheme = !isPrivate, updateTheme = !isPrivate,
appNightMode = activity.settings().getAppNightMode(),
forceActionButtonTinting = isPrivate, forceActionButtonTinting = isPrivate,
isNavBarEnabled = isNavBarEnabled, isNavBarEnabled = isNavBarEnabled,
) )
private fun Settings.getAppNightMode() = if (shouldFollowDeviceTheme) {
MODE_NIGHT_FOLLOW_SYSTEM
} else {
if (shouldUseLightTheme) {
MODE_NIGHT_NO
} else {
MODE_NIGHT_YES
}
}
override fun start() = feature.start() override fun start() = feature.start()
override fun stop() = feature.stop() override fun stop() = feature.stop()
override fun onBackPressed() = feature.onBackPressed() override fun onBackPressed() = feature.onBackPressed()

Loading…
Cancel
Save