From 32259c25acde935034094b93886a5530828a7228 Mon Sep 17 00:00:00 2001 From: t-p-white Date: Mon, 11 Mar 2024 11:32:54 +0000 Subject: [PATCH] Bug 1884187 - Fix Fenix night mode bug after opening a custom tab --- .../fenix/customtabs/CustomTabsIntegration.kt | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsIntegration.kt b/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsIntegration.kt index bcbde9566..3e5425a31 100644 --- a/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsIntegration.kt +++ b/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsIntegration.kt @@ -5,6 +5,9 @@ package org.mozilla.fenix.customtabs 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 mozilla.components.browser.state.store.BrowserStore 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 org.mozilla.fenix.R import org.mozilla.fenix.components.toolbar.ToolbarMenu +import org.mozilla.fenix.ext.settings +import org.mozilla.fenix.utils.Settings @Suppress("LongParameterList") class CustomTabsIntegration( @@ -58,20 +63,31 @@ class CustomTabsIntegration( } private val feature = CustomTabsToolbarFeature( - store, - toolbar, - sessionId, - useCases, + store = store, + toolbar = toolbar, + sessionId = sessionId, + useCases = useCases, menuBuilder = customTabToolbarMenu.menuBuilder, menuItemIndex = START_OF_MENU_ITEMS_INDEX, window = activity.window, shareListener = { onItemTapped.invoke(ToolbarMenu.Item.Share) }, closeListener = { activity.finishAndRemoveTask() }, updateTheme = !isPrivate, + appNightMode = activity.settings().getAppNightMode(), forceActionButtonTinting = isPrivate, 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 stop() = feature.stop() override fun onBackPressed() = feature.onBackPressed()