1
0
Fork 0

For #2723 - Fixes theme manager

master
Jeff Boek 2019-05-30 15:49:58 -07:00
parent 18cd9e58f9
commit a7d5cdcb9d
23 changed files with 168 additions and 163 deletions

View File

@ -10,40 +10,44 @@ interface BrowsingModeManager {
enum class Mode { enum class Mode {
Normal, Private Normal, Private
} }
}
var temporaryModeStorage: BrowsingModeManager.Mode? = null
class DefaultBrowsingModeManager(private val homeActivity: HomeActivity) : BrowsingModeManager {
val isPrivate: Boolean val isPrivate: Boolean
get() = mode == BrowsingModeManager.Mode.Private var mode: Mode
var mode: BrowsingModeManager.Mode
get() = temporaryModeStorage!!
set(value) {
temporaryModeStorage = value
setPreference()
updateTheme(value)
}
private fun updateTheme(mode: BrowsingModeManager.Mode) {
homeActivity.themeManager.apply {
val newTheme = when (mode) {
BrowsingModeManager.Mode.Normal -> ThemeManager.Theme.Normal
BrowsingModeManager.Mode.Private -> ThemeManager.Theme.Private
}
setTheme(newTheme)
}
}
private fun setPreference() {
Settings.getInstance(homeActivity).setPrivateMode(isPrivate)
}
init {
if (temporaryModeStorage == null) {
mode = when (Settings.getInstance(homeActivity).usePrivateMode) {
true -> BrowsingModeManager.Mode.Private
false -> BrowsingModeManager.Mode.Normal
}
}
}
} }
interface BrowserModeStorage {
fun setMode(mode: BrowsingModeManager.Mode)
fun currentMode(): BrowsingModeManager.Mode
}
fun Settings.createBrowserModeStorage(): BrowserModeStorage = object : BrowserModeStorage {
override fun currentMode(): BrowsingModeManager.Mode {
return if (this@createBrowserModeStorage.usePrivateMode) {
BrowsingModeManager.Mode.Private
} else {
BrowsingModeManager.Mode.Normal
}
}
override fun setMode(mode: BrowsingModeManager.Mode) {
this@createBrowserModeStorage.setPrivateMode(mode == BrowsingModeManager.Mode.Private)
}
}
class DefaultBrowsingModeManager(private val storage: BrowserModeStorage) : BrowsingModeManager {
override val isPrivate: Boolean
get() = mode == BrowsingModeManager.Mode.Private
override var mode: BrowsingModeManager.Mode
get() = storage.currentMode()
set(value) = storage.setMode(value)
}
class CustomTabBrowsingModeManager : BrowsingModeManager {
override val isPrivate = false
override var mode: BrowsingModeManager.Mode
get() = BrowsingModeManager.Mode.Normal
set(_) { return }
}

View File

@ -45,30 +45,25 @@ open class HomeActivity : AppCompatActivity() {
open val isCustomTab = false open val isCustomTab = false
private var sessionObserver: SessionManager.Observer? = null private var sessionObserver: SessionManager.Observer? = null
val themeManager = DefaultThemeManager().also { lateinit var themeManager: ThemeManager
it.onThemeChange = { theme ->
setTheme(theme)
recreate()
}
}
private val navHost by lazy { private val navHost by lazy {
supportFragmentManager.findFragmentById(R.id.container) as NavHostFragment supportFragmentManager.findFragmentById(R.id.container) as NavHostFragment
} }
lateinit var browsingModeManager: DefaultBrowsingModeManager lateinit var browsingModeManager: BrowsingModeManager
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
browsingModeManager = createBrowsingModeManager()
themeManager = createThemeManager(when (browsingModeManager.isPrivate) {
true -> ThemeManager.Theme.Private
false -> ThemeManager.Theme.Normal
})
themeManager.temporaryThemeManagerStorage =
when (Settings.getInstance(this).usePrivateMode) {
true -> ThemeManager.Theme.Private
false -> ThemeManager.Theme.Normal
}
setTheme(themeManager.currentTheme) setTheme(themeManager.currentTheme)
DefaultThemeManager.applyStatusBarTheme(window, themeManager, this) ThemeManager.applyStatusBarTheme(window, themeManager, this)
browsingModeManager = DefaultBrowsingModeManager(this)
setContentView(R.layout.activity_home) setContentView(R.layout.activity_home)
@ -95,7 +90,6 @@ open class HomeActivity : AppCompatActivity() {
} }
override fun onDestroy() { override fun onDestroy() {
themeManager.onThemeChange = null
sessionObserver?.let { components.core.sessionManager.unregister(it) } sessionObserver?.let { components.core.sessionManager.unregister(it) }
super.onDestroy() super.onDestroy()
} }
@ -263,6 +257,16 @@ open class HomeActivity : AppCompatActivity() {
} }
} }
private fun createBrowsingModeManager(): BrowsingModeManager {
return if (isCustomTab) CustomTabBrowsingModeManager()
else DefaultBrowsingModeManager(Settings.getInstance(this).createBrowserModeStorage())
}
private fun createThemeManager(currentTheme: ThemeManager.Theme): ThemeManager {
return if (isCustomTab) CustomTabThemeManager()
else DefaultThemeManager(currentTheme)
}
private fun subscribeToSessions(): SessionManager.Observer { private fun subscribeToSessions(): SessionManager.Observer {
return object : SessionManager.Observer { return object : SessionManager.Observer {

View File

@ -15,44 +15,13 @@ import androidx.core.content.ContextCompat
interface ThemeManager { interface ThemeManager {
enum class Theme { enum class Theme {
Normal, Private Normal, Private;
fun isPrivate(): Boolean = this == Private
} }
val currentTheme: Theme val currentTheme: Theme
fun setTheme(theme: Theme) fun setTheme(theme: Theme)
}
fun Activity.setTheme(theme: ThemeManager.Theme) {
val themeCode = when (theme) {
ThemeManager.Theme.Normal -> R.style.NormalTheme
ThemeManager.Theme.Private -> R.style.PrivateTheme
}
setTheme(themeCode)
}
fun ThemeManager.Theme.isPrivate(): Boolean = this == ThemeManager.Theme.Private
class DefaultThemeManager : ThemeManager {
var temporaryThemeManagerStorage = ThemeManager.Theme.Normal
var onThemeChange: ((ThemeManager.Theme) -> Unit)? = null
override val currentTheme: ThemeManager.Theme
get() = temporaryThemeManagerStorage
val currentThemeResource: Int = when (currentTheme) {
ThemeManager.Theme.Normal -> R.style.NormalTheme
ThemeManager.Theme.Private -> R.style.PrivateTheme
}
override fun setTheme(theme: ThemeManager.Theme) {
if (temporaryThemeManagerStorage != theme) {
temporaryThemeManagerStorage = theme
onThemeChange?.invoke(currentTheme)
}
}
companion object { companion object {
fun resolveAttribute(attribute: Int, context: Context): Int { fun resolveAttribute(attribute: Int, context: Context): Int {
@ -134,3 +103,33 @@ class DefaultThemeManager : ThemeManager {
} }
} }
} }
val ThemeManager.currentThemeResource: Int
get() = when (currentTheme) {
ThemeManager.Theme.Normal -> R.style.NormalTheme
ThemeManager.Theme.Private -> R.style.PrivateTheme
}
fun Activity.setTheme(theme: ThemeManager.Theme) {
val themeCode = when (theme) {
ThemeManager.Theme.Normal -> R.style.NormalTheme
ThemeManager.Theme.Private -> R.style.PrivateTheme
}
setTheme(themeCode)
}
class DefaultThemeManager(private var _currentTheme: ThemeManager.Theme) : ThemeManager {
override val currentTheme: ThemeManager.Theme
get() = _currentTheme
override fun setTheme(theme: ThemeManager.Theme) {
if (theme == _currentTheme) return
_currentTheme = theme
}
}
class CustomTabThemeManager : ThemeManager {
override val currentTheme = ThemeManager.Theme.Normal
override fun setTheme(theme: ThemeManager.Theme) { /* noop */ }
}

View File

@ -44,7 +44,6 @@ import mozilla.components.feature.readerview.ReaderViewFeature
import mozilla.components.feature.session.FullScreenFeature import mozilla.components.feature.session.FullScreenFeature
import mozilla.components.feature.session.SessionFeature import mozilla.components.feature.session.SessionFeature
import mozilla.components.feature.session.SessionUseCases import mozilla.components.feature.session.SessionUseCases
import mozilla.components.feature.session.SwipeRefreshFeature
import mozilla.components.feature.session.ThumbnailsFeature import mozilla.components.feature.session.ThumbnailsFeature
import mozilla.components.feature.sitepermissions.SitePermissions import mozilla.components.feature.sitepermissions.SitePermissions
import mozilla.components.feature.sitepermissions.SitePermissionsFeature import mozilla.components.feature.sitepermissions.SitePermissionsFeature
@ -55,11 +54,11 @@ import mozilla.components.support.ktx.android.view.enterToImmersiveMode
import mozilla.components.support.ktx.android.view.exitImmersiveModeIfNeeded import mozilla.components.support.ktx.android.view.exitImmersiveModeIfNeeded
import mozilla.components.support.ktx.kotlin.toUri import mozilla.components.support.ktx.kotlin.toUri
import org.mozilla.fenix.BrowsingModeManager import org.mozilla.fenix.BrowsingModeManager
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.FenixViewModelProvider import org.mozilla.fenix.FenixViewModelProvider
import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.IntentReceiverActivity import org.mozilla.fenix.IntentReceiverActivity
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.collections.CreateCollectionViewModel import org.mozilla.fenix.collections.CreateCollectionViewModel
import org.mozilla.fenix.collections.SaveCollectionStep import org.mozilla.fenix.collections.SaveCollectionStep
import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.FenixSnackbar
@ -205,7 +204,7 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope {
) )
val activity = activity as HomeActivity val activity = activity as HomeActivity
DefaultThemeManager.applyStatusBarTheme(activity.window, activity.themeManager, activity) ThemeManager.applyStatusBarTheme(activity.window, activity.themeManager, activity)
return view return view
} }
@ -290,7 +289,7 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope {
view = view view = view
) )
val accentHighContrastColor = DefaultThemeManager.resolveAttribute(R.attr.accentHighContrast, requireContext()) val accentHighContrastColor = ThemeManager.resolveAttribute(R.attr.accentHighContrast, requireContext())
sitePermissionsFeature.set( sitePermissionsFeature.set(
feature = SitePermissionsFeature( feature = SitePermissionsFeature(
@ -327,7 +326,7 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope {
} else { } else {
activity?.exitImmersiveModeIfNeeded() activity?.exitImmersiveModeIfNeeded()
(activity as HomeActivity).let { activity: HomeActivity -> (activity as HomeActivity).let { activity: HomeActivity ->
DefaultThemeManager.applyStatusBarTheme( ThemeManager.applyStatusBarTheme(
activity.window, activity.window,
activity.themeManager, activity.themeManager,
activity activity
@ -351,7 +350,7 @@ class BrowserFragment : Fragment(), BackHandler, CoroutineScope {
view = view view = view
) )
val primaryTextColor = DefaultThemeManager.resolveAttribute(R.attr.primaryText, requireContext()) val primaryTextColor = ThemeManager.resolveAttribute(R.attr.primaryText, requireContext())
view.swipeRefresh.setColorSchemeColors(primaryTextColor) view.swipeRefresh.setColorSchemeColors(primaryTextColor)
swipeRefreshFeature.set( swipeRefreshFeature.set(
feature = SwipeRefreshFeature( feature = SwipeRefreshFeature(

View File

@ -11,9 +11,9 @@ import mozilla.components.browser.menu.item.BrowserMenuHighlightableItem
import mozilla.components.browser.menu.item.BrowserMenuImageText import mozilla.components.browser.menu.item.BrowserMenuImageText
import mozilla.components.browser.menu.item.BrowserMenuItemToolbar import mozilla.components.browser.menu.item.BrowserMenuItemToolbar
import mozilla.components.browser.menu.item.BrowserMenuSwitch import mozilla.components.browser.menu.item.BrowserMenuSwitch
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.ext.asActivity import org.mozilla.fenix.ext.asActivity
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
@ -30,14 +30,14 @@ class DefaultToolbarMenu(
val back = BrowserMenuItemToolbar.TwoStateButton( val back = BrowserMenuItemToolbar.TwoStateButton(
primaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_back, primaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_back,
primaryContentDescription = context.getString(R.string.browser_menu_back), primaryContentDescription = context.getString(R.string.browser_menu_back),
primaryImageTintResource = DefaultThemeManager.resolveAttribute( primaryImageTintResource = ThemeManager.resolveAttribute(
R.attr.primaryText, R.attr.primaryText,
context context
), ),
isInPrimaryState = { isInPrimaryState = {
context.components.core.sessionManager.selectedSession?.canGoBack ?: true context.components.core.sessionManager.selectedSession?.canGoBack ?: true
}, },
secondaryImageTintResource = DefaultThemeManager.resolveAttribute( secondaryImageTintResource = ThemeManager.resolveAttribute(
R.attr.neutral, R.attr.neutral,
context context
), ),
@ -49,14 +49,14 @@ class DefaultToolbarMenu(
val forward = BrowserMenuItemToolbar.TwoStateButton( val forward = BrowserMenuItemToolbar.TwoStateButton(
primaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_forward, primaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_forward,
primaryContentDescription = context.getString(R.string.browser_menu_forward), primaryContentDescription = context.getString(R.string.browser_menu_forward),
primaryImageTintResource = DefaultThemeManager.resolveAttribute( primaryImageTintResource = ThemeManager.resolveAttribute(
R.attr.primaryText, R.attr.primaryText,
context context
), ),
isInPrimaryState = { isInPrimaryState = {
context.components.core.sessionManager.selectedSession?.canGoForward ?: true context.components.core.sessionManager.selectedSession?.canGoForward ?: true
}, },
secondaryImageTintResource = DefaultThemeManager.resolveAttribute( secondaryImageTintResource = ThemeManager.resolveAttribute(
R.attr.neutral, R.attr.neutral,
context context
), ),
@ -68,7 +68,7 @@ class DefaultToolbarMenu(
val refresh = BrowserMenuItemToolbar.TwoStateButton( val refresh = BrowserMenuItemToolbar.TwoStateButton(
primaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_refresh, primaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_refresh,
primaryContentDescription = context.getString(R.string.browser_menu_refresh), primaryContentDescription = context.getString(R.string.browser_menu_refresh),
primaryImageTintResource = DefaultThemeManager.resolveAttribute( primaryImageTintResource = ThemeManager.resolveAttribute(
R.attr.primaryText, R.attr.primaryText,
context context
), ),
@ -78,7 +78,7 @@ class DefaultToolbarMenu(
}, },
secondaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_stop, secondaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_stop,
secondaryContentDescription = context.getString(R.string.browser_menu_stop), secondaryContentDescription = context.getString(R.string.browser_menu_stop),
secondaryImageTintResource = DefaultThemeManager.resolveAttribute( secondaryImageTintResource = ThemeManager.resolveAttribute(
R.attr.primaryText, R.attr.primaryText,
context context
), ),
@ -99,7 +99,7 @@ class DefaultToolbarMenu(
BrowserMenuImageText( BrowserMenuImageText(
context.getString(R.string.browser_menu_help), context.getString(R.string.browser_menu_help),
R.drawable.ic_help, R.drawable.ic_help,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context) ThemeManager.resolveAttribute(R.attr.primaryText, context)
) { ) {
onItemTapped.invoke(ToolbarMenu.Item.Help) onItemTapped.invoke(ToolbarMenu.Item.Help)
}, },
@ -109,10 +109,10 @@ class DefaultToolbarMenu(
imageResource = R.drawable.ic_settings, imageResource = R.drawable.ic_settings,
iconTintColorResource = if (hasAccountProblem) iconTintColorResource = if (hasAccountProblem)
R.color.sync_error_text_color else R.color.sync_error_text_color else
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context), ThemeManager.resolveAttribute(R.attr.primaryText, context),
textColorResource = if (hasAccountProblem) textColorResource = if (hasAccountProblem)
R.color.sync_error_text_color else R.color.sync_error_text_color else
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context), ThemeManager.resolveAttribute(R.attr.primaryText, context),
highlight = if (hasAccountProblem) { highlight = if (hasAccountProblem) {
BrowserMenuHighlightableItem.Highlight( BrowserMenuHighlightableItem.Highlight(
imageResource = R.drawable.ic_alert, imageResource = R.drawable.ic_alert,
@ -126,7 +126,7 @@ class DefaultToolbarMenu(
BrowserMenuImageText( BrowserMenuImageText(
context.getString(R.string.browser_menu_your_library), context.getString(R.string.browser_menu_your_library),
R.drawable.ic_library, R.drawable.ic_library,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context) ThemeManager.resolveAttribute(R.attr.primaryText, context)
) { ) {
onItemTapped.invoke(ToolbarMenu.Item.Library) onItemTapped.invoke(ToolbarMenu.Item.Library)
}, },
@ -139,7 +139,7 @@ class DefaultToolbarMenu(
BrowserMenuImageText( BrowserMenuImageText(
context.getString(R.string.browser_menu_find_in_page), context.getString(R.string.browser_menu_find_in_page),
R.drawable.mozac_ic_search, R.drawable.mozac_ic_search,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context) ThemeManager.resolveAttribute(R.attr.primaryText, context)
) { ) {
onItemTapped.invoke(ToolbarMenu.Item.FindInPage) onItemTapped.invoke(ToolbarMenu.Item.FindInPage)
}, },
@ -147,7 +147,7 @@ class DefaultToolbarMenu(
BrowserMenuImageText( BrowserMenuImageText(
context.getString(R.string.browser_menu_private_tab), context.getString(R.string.browser_menu_private_tab),
R.drawable.ic_private_browsing, R.drawable.ic_private_browsing,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context) ThemeManager.resolveAttribute(R.attr.primaryText, context)
) { ) {
onItemTapped.invoke(ToolbarMenu.Item.NewPrivateTab) onItemTapped.invoke(ToolbarMenu.Item.NewPrivateTab)
}, },
@ -155,7 +155,7 @@ class DefaultToolbarMenu(
BrowserMenuImageText( BrowserMenuImageText(
context.getString(R.string.browser_menu_new_tab), context.getString(R.string.browser_menu_new_tab),
R.drawable.ic_new, R.drawable.ic_new,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context) ThemeManager.resolveAttribute(R.attr.primaryText, context)
) { ) {
onItemTapped.invoke(ToolbarMenu.Item.NewTab) onItemTapped.invoke(ToolbarMenu.Item.NewTab)
}, },
@ -163,7 +163,7 @@ class DefaultToolbarMenu(
BrowserMenuImageText( BrowserMenuImageText(
context.getString(R.string.browser_menu_share), context.getString(R.string.browser_menu_share),
R.drawable.mozac_ic_share, R.drawable.mozac_ic_share,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context) ThemeManager.resolveAttribute(R.attr.primaryText, context)
) { ) {
onItemTapped.invoke(ToolbarMenu.Item.Share) onItemTapped.invoke(ToolbarMenu.Item.Share)
}, },
@ -171,7 +171,7 @@ class DefaultToolbarMenu(
BrowserMenuImageText( BrowserMenuImageText(
context.getString(R.string.browser_menu_report_issue), context.getString(R.string.browser_menu_report_issue),
R.drawable.ic_report_issues, R.drawable.ic_report_issues,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context) ThemeManager.resolveAttribute(R.attr.primaryText, context)
) { ) {
onItemTapped.invoke(ToolbarMenu.Item.ReportIssue) onItemTapped.invoke(ToolbarMenu.Item.ReportIssue)
} }
@ -182,7 +182,7 @@ class DefaultToolbarMenu(
BrowserMenuImageText( BrowserMenuImageText(
context.getString(R.string.browser_menu_save_to_collection), context.getString(R.string.browser_menu_save_to_collection),
R.drawable.ic_tab_collection, R.drawable.ic_tab_collection,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context) ThemeManager.resolveAttribute(R.attr.primaryText, context)
) { ) {
onItemTapped.invoke(ToolbarMenu.Item.SaveToCollection) onItemTapped.invoke(ToolbarMenu.Item.SaveToCollection)
} }

View File

@ -10,8 +10,8 @@ import androidx.core.content.ContextCompat
import kotlinx.android.synthetic.main.component_search.* import kotlinx.android.synthetic.main.component_search.*
import mozilla.components.browser.search.SearchEngine import mozilla.components.browser.search.SearchEngine
import mozilla.components.browser.toolbar.BrowserToolbar import mozilla.components.browser.toolbar.BrowserToolbar
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.mvi.ViewState import org.mozilla.fenix.mvi.ViewState
import org.mozilla.fenix.mvi.Change import org.mozilla.fenix.mvi.Change
import org.mozilla.fenix.mvi.Action import org.mozilla.fenix.mvi.Action
@ -60,11 +60,11 @@ class ToolbarComponent(
) )
getView().textColor = ContextCompat.getColor( getView().textColor = ContextCompat.getColor(
container.context, container.context,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, container.context) ThemeManager.resolveAttribute(R.attr.primaryText, container.context)
) )
getView().hintColor = ContextCompat.getColor( getView().hintColor = ContextCompat.getColor(
container.context, container.context,
DefaultThemeManager.resolveAttribute(R.attr.secondaryText, container.context) ThemeManager.resolveAttribute(R.attr.secondaryText, container.context)
) )
} }
} }

View File

@ -20,8 +20,8 @@ import mozilla.components.feature.toolbar.ToolbarPresenter
import mozilla.components.lib.publicsuffixlist.PublicSuffixList import mozilla.components.lib.publicsuffixlist.PublicSuffixList
import mozilla.components.support.base.feature.LifecycleAwareFeature import mozilla.components.support.base.feature.LifecycleAwareFeature
import mozilla.components.support.ktx.android.view.hideKeyboard import mozilla.components.support.ktx.android.view.hideKeyboard
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.utils.Settings
@ -91,7 +91,7 @@ class ToolbarIntegration(
sessionId, sessionId,
ToolbarFeature.UrlRenderConfiguration( ToolbarFeature.UrlRenderConfiguration(
PublicSuffixList(context), PublicSuffixList(context),
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context), renderStyle = renderStyle ThemeManager.resolveAttribute(R.attr.primaryText, context), renderStyle = renderStyle
) )
) )
private var menuPresenter = MenuPresenter(toolbar, context.components.core.sessionManager, sessionId) private var menuPresenter = MenuPresenter(toolbar, context.components.core.sessionManager, sessionId)

View File

@ -12,10 +12,9 @@ import mozilla.components.browser.menu.item.BrowserMenuItemToolbar
import mozilla.components.browser.menu.item.SimpleBrowserMenuItem import mozilla.components.browser.menu.item.SimpleBrowserMenuItem
import mozilla.components.browser.session.Session import mozilla.components.browser.session.Session
import mozilla.components.browser.session.SessionManager import mozilla.components.browser.session.SessionManager
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.components.toolbar.ToolbarMenu import org.mozilla.fenix.components.toolbar.ToolbarMenu
import org.mozilla.fenix.ext.components
class CustomTabToolbarMenu( class CustomTabToolbarMenu(
private val context: Context, private val context: Context,
@ -32,14 +31,14 @@ class CustomTabToolbarMenu(
val back = BrowserMenuItemToolbar.TwoStateButton( val back = BrowserMenuItemToolbar.TwoStateButton(
primaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_back, primaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_back,
primaryContentDescription = context.getString(R.string.browser_menu_back), primaryContentDescription = context.getString(R.string.browser_menu_back),
primaryImageTintResource = DefaultThemeManager.resolveAttribute( primaryImageTintResource = ThemeManager.resolveAttribute(
R.attr.primaryText, R.attr.primaryText,
context context
), ),
isInPrimaryState = { isInPrimaryState = {
session?.canGoBack ?: true session?.canGoBack ?: true
}, },
secondaryImageTintResource = DefaultThemeManager.resolveAttribute( secondaryImageTintResource = ThemeManager.resolveAttribute(
R.attr.neutral, R.attr.neutral,
context context
), ),
@ -51,14 +50,14 @@ class CustomTabToolbarMenu(
val forward = BrowserMenuItemToolbar.TwoStateButton( val forward = BrowserMenuItemToolbar.TwoStateButton(
primaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_forward, primaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_forward,
primaryContentDescription = context.getString(R.string.browser_menu_forward), primaryContentDescription = context.getString(R.string.browser_menu_forward),
primaryImageTintResource = DefaultThemeManager.resolveAttribute( primaryImageTintResource = ThemeManager.resolveAttribute(
R.attr.primaryText, R.attr.primaryText,
context context
), ),
isInPrimaryState = { isInPrimaryState = {
session?.canGoForward ?: true session?.canGoForward ?: true
}, },
secondaryImageTintResource = DefaultThemeManager.resolveAttribute( secondaryImageTintResource = ThemeManager.resolveAttribute(
R.attr.neutral, R.attr.neutral,
context context
), ),
@ -70,7 +69,7 @@ class CustomTabToolbarMenu(
val refresh = BrowserMenuItemToolbar.TwoStateButton( val refresh = BrowserMenuItemToolbar.TwoStateButton(
primaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_refresh, primaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_refresh,
primaryContentDescription = context.getString(R.string.browser_menu_refresh), primaryContentDescription = context.getString(R.string.browser_menu_refresh),
primaryImageTintResource = DefaultThemeManager.resolveAttribute( primaryImageTintResource = ThemeManager.resolveAttribute(
R.attr.primaryText, R.attr.primaryText,
context context
), ),
@ -80,7 +79,7 @@ class CustomTabToolbarMenu(
}, },
secondaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_stop, secondaryImageResource = mozilla.components.ui.icons.R.drawable.mozac_ic_stop,
secondaryContentDescription = context.getString(R.string.browser_menu_stop), secondaryContentDescription = context.getString(R.string.browser_menu_stop),
secondaryImageTintResource = DefaultThemeManager.resolveAttribute( secondaryImageTintResource = ThemeManager.resolveAttribute(
R.attr.primaryText, R.attr.primaryText,
context context
), ),
@ -105,11 +104,11 @@ class CustomTabToolbarMenu(
BrowserMenuImageText( BrowserMenuImageText(
context.getString(R.string.browser_menu_share), context.getString(R.string.browser_menu_share),
R.drawable.mozac_ic_share, R.drawable.mozac_ic_share,
textColorResource = DefaultThemeManager.resolveAttribute( textColorResource = ThemeManager.resolveAttribute(
R.attr.primaryText, R.attr.primaryText,
context context
), ),
iconTintColorResource = DefaultThemeManager.resolveAttribute( iconTintColorResource = ThemeManager.resolveAttribute(
R.attr.primaryText, R.attr.primaryText,
context context
) )
@ -122,7 +121,7 @@ class CustomTabToolbarMenu(
val appName = context.getString(R.string.app_name) val appName = context.getString(R.string.app_name)
context.getString(R.string.browser_menu_open_in_fenix, appName) context.getString(R.string.browser_menu_open_in_fenix, appName)
}(), }(),
textColorResource = DefaultThemeManager.resolveAttribute( textColorResource = ThemeManager.resolveAttribute(
R.attr.primaryText, R.attr.primaryText,
context context
) )
@ -138,7 +137,7 @@ class CustomTabToolbarMenu(
context.getString(R.string.browser_menu_powered_by, appName).toUpperCase() context.getString(R.string.browser_menu_powered_by, appName).toUpperCase()
}(), }(),
ToolbarMenu.CAPTION_TEXT_SIZE, ToolbarMenu.CAPTION_TEXT_SIZE,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context) ThemeManager.resolveAttribute(R.attr.primaryText, context)
) )
) )
} }

View File

@ -6,7 +6,7 @@ package org.mozilla.fenix.ext
import android.content.Context import android.content.Context
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import org.mozilla.fenix.DefaultThemeManager import org.mozilla.fenix.ThemeManager
fun Int.getColorIntFromAttr(context: Context): Int = DefaultThemeManager.resolveAttribute(this, context) fun Int.getColorIntFromAttr(context: Context): Int = ThemeManager.resolveAttribute(this, context)
fun Int.getColorFromAttr(context: Context): Int = ContextCompat.getColor(context, this.getColorIntFromAttr(context)) fun Int.getColorFromAttr(context: Context): Int = ContextCompat.getColor(context, this.getColorIntFromAttr(context))

View File

@ -43,10 +43,10 @@ import org.jetbrains.anko.constraint.layout.ConstraintSetBuilder.Side.TOP
import org.jetbrains.anko.constraint.layout.applyConstraintSet import org.jetbrains.anko.constraint.layout.applyConstraintSet
import org.mozilla.fenix.BrowserDirection import org.mozilla.fenix.BrowserDirection
import org.mozilla.fenix.BrowsingModeManager import org.mozilla.fenix.BrowsingModeManager
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.FenixViewModelProvider import org.mozilla.fenix.FenixViewModelProvider
import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.collections.CreateCollectionViewModel import org.mozilla.fenix.collections.CreateCollectionViewModel
import org.mozilla.fenix.collections.SaveCollectionStep import org.mozilla.fenix.collections.SaveCollectionStep
import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.Event
@ -155,7 +155,7 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
ActionBusFactory.get(this).logMergedObservables() ActionBusFactory.get(this).logMergedObservables()
val activity = activity as HomeActivity val activity = activity as HomeActivity
DefaultThemeManager.applyStatusBarTheme(activity.window, activity.themeManager, activity) ThemeManager.applyStatusBarTheme(activity.window, activity.themeManager, activity)
return view return view
} }

View File

@ -8,8 +8,8 @@ import android.content.Context
import mozilla.components.browser.menu.BrowserMenuBuilder import mozilla.components.browser.menu.BrowserMenuBuilder
import mozilla.components.browser.menu.item.BrowserMenuDivider import mozilla.components.browser.menu.item.BrowserMenuDivider
import mozilla.components.browser.menu.item.BrowserMenuImageText import mozilla.components.browser.menu.item.BrowserMenuImageText
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
class HomeMenu( class HomeMenu(
private val context: Context, private val context: Context,
@ -28,7 +28,7 @@ class HomeMenu(
BrowserMenuImageText( BrowserMenuImageText(
context.getString(R.string.browser_menu_settings), context.getString(R.string.browser_menu_settings),
R.drawable.ic_settings, R.drawable.ic_settings,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context) ThemeManager.resolveAttribute(R.attr.primaryText, context)
) { ) {
onItemTapped.invoke(HomeMenu.Item.Settings) onItemTapped.invoke(HomeMenu.Item.Settings)
}, },
@ -36,7 +36,7 @@ class HomeMenu(
BrowserMenuImageText( BrowserMenuImageText(
context.getString(R.string.browser_menu_your_library), context.getString(R.string.browser_menu_your_library),
R.drawable.ic_library, R.drawable.ic_library,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context) ThemeManager.resolveAttribute(R.attr.primaryText, context)
) { ) {
onItemTapped.invoke(HomeMenu.Item.Library) onItemTapped.invoke(HomeMenu.Item.Library)
}, },
@ -45,7 +45,7 @@ class HomeMenu(
BrowserMenuImageText( BrowserMenuImageText(
context.getString(R.string.browser_menu_help), context.getString(R.string.browser_menu_help),
R.drawable.ic_help, R.drawable.ic_help,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context) ThemeManager.resolveAttribute(R.attr.primaryText, context)
) { ) {
onItemTapped.invoke(HomeMenu.Item.Help) onItemTapped.invoke(HomeMenu.Item.Help)
}) })

View File

@ -13,9 +13,9 @@ import androidx.core.content.ContextCompat
import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import kotlinx.android.extensions.LayoutContainer import kotlinx.android.extensions.LayoutContainer
import kotlinx.android.synthetic.main.session_bottom_sheet.view.* import kotlinx.android.synthetic.main.session_bottom_sheet.view.*
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.utils.ItsNotBrokenSnack import org.mozilla.fenix.utils.ItsNotBrokenSnack
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.ext.getColorFromAttr import org.mozilla.fenix.ext.getColorFromAttr
class SessionBottomSheetFragment : BottomSheetDialogFragment(), LayoutContainer { class SessionBottomSheetFragment : BottomSheetDialogFragment(), LayoutContainer {
@ -47,7 +47,7 @@ class SessionBottomSheetFragment : BottomSheetDialogFragment(), LayoutContainer
drawable?.setColorFilter( drawable?.setColorFilter(
ContextCompat.getColor( ContextCompat.getColor(
context!!, context!!,
DefaultThemeManager.resolveAttribute(R.attr.accent, context!!) ThemeManager.resolveAttribute(R.attr.accent, context!!)
), PorterDuff.Mode.SRC_IN ), PorterDuff.Mode.SRC_IN
) )
setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null) setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null)
@ -69,7 +69,7 @@ class SessionBottomSheetFragment : BottomSheetDialogFragment(), LayoutContainer
drawable?.setColorFilter( drawable?.setColorFilter(
ContextCompat.getColor( ContextCompat.getColor(
context!!, context!!,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, context!!) ThemeManager.resolveAttribute(R.attr.primaryText, context!!)
), PorterDuff.Mode.SRC_IN ), PorterDuff.Mode.SRC_IN
) )
setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null) setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null)

View File

@ -19,8 +19,8 @@ import kotlinx.coroutines.Job
import mozilla.components.browser.menu.BrowserMenu import mozilla.components.browser.menu.BrowserMenu
import mozilla.components.browser.menu.BrowserMenuBuilder import mozilla.components.browser.menu.BrowserMenuBuilder
import mozilla.components.browser.menu.item.SimpleBrowserMenuItem import mozilla.components.browser.menu.item.SimpleBrowserMenuItem
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.ext.increaseTapArea import org.mozilla.fenix.ext.increaseTapArea
import org.mozilla.fenix.ext.urlToTrimmedHost import org.mozilla.fenix.ext.urlToTrimmedHost
import org.mozilla.fenix.home.sessioncontrol.CollectionAction import org.mozilla.fenix.home.sessioncontrol.CollectionAction
@ -175,7 +175,7 @@ class CollectionItemMenu(
listOf( listOf(
SimpleBrowserMenuItem( SimpleBrowserMenuItem(
context.getString(R.string.collection_delete), context.getString(R.string.collection_delete),
textColorResource = DefaultThemeManager.resolveAttribute(R.attr.destructive, context) textColorResource = ThemeManager.resolveAttribute(R.attr.destructive, context)
) { ) {
onItemTapped.invoke(Item.DeleteCollection) onItemTapped.invoke(Item.DeleteCollection)
}, },

View File

@ -23,8 +23,8 @@ import mozilla.components.browser.icons.IconRequest
import mozilla.components.browser.menu.BrowserMenu import mozilla.components.browser.menu.BrowserMenu
import mozilla.components.concept.storage.BookmarkNode import mozilla.components.concept.storage.BookmarkNode
import mozilla.components.concept.storage.BookmarkNodeType import mozilla.components.concept.storage.BookmarkNodeType
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.increaseTapArea import org.mozilla.fenix.ext.increaseTapArea
import kotlin.coroutines.CoroutineContext import kotlin.coroutines.CoroutineContext
@ -195,9 +195,9 @@ class BookmarkAdapter(val emptyView: View, val actionEmitter: Observer<BookmarkA
private fun setColorsAndIcons(selected: Boolean, item: BookmarkNode) { private fun setColorsAndIcons(selected: Boolean, item: BookmarkNode) {
val backgroundTint = val backgroundTint =
if (selected) { if (selected) {
DefaultThemeManager.resolveAttribute(R.attr.accentHighContrast, containerView!!.context) ThemeManager.resolveAttribute(R.attr.accentHighContrast, containerView!!.context)
} else { } else {
DefaultThemeManager.resolveAttribute(R.attr.neutral, containerView!!.context) ThemeManager.resolveAttribute(R.attr.neutral, containerView!!.context)
} }
val backgroundTintList = ContextCompat.getColorStateList(containerView.context, backgroundTint) val backgroundTintList = ContextCompat.getColorStateList(containerView.context, backgroundTint)
@ -277,9 +277,9 @@ class BookmarkAdapter(val emptyView: View, val actionEmitter: Observer<BookmarkA
setMenu(item, containerView!!) setMenu(item, containerView!!)
val backgroundTint = if (selected) { val backgroundTint = if (selected) {
DefaultThemeManager.resolveAttribute(R.attr.accentHighContrast, containerView.context) ThemeManager.resolveAttribute(R.attr.accentHighContrast, containerView.context)
} else { } else {
DefaultThemeManager.resolveAttribute(R.attr.neutral, containerView.context) ThemeManager.resolveAttribute(R.attr.neutral, containerView.context)
} }
val backgroundTintList = ContextCompat.getColorStateList(containerView.context, backgroundTint) val backgroundTintList = ContextCompat.getColorStateList(containerView.context, backgroundTint)

View File

@ -9,8 +9,8 @@ import mozilla.components.browser.menu.BrowserMenuBuilder
import mozilla.components.browser.menu.item.SimpleBrowserMenuItem import mozilla.components.browser.menu.item.SimpleBrowserMenuItem
import mozilla.components.concept.storage.BookmarkNode import mozilla.components.concept.storage.BookmarkNode
import mozilla.components.concept.storage.BookmarkNodeType import mozilla.components.concept.storage.BookmarkNodeType
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
class BookmarkItemMenu( class BookmarkItemMenu(
private val context: Context, private val context: Context,
@ -59,7 +59,7 @@ class BookmarkItemMenu(
} else null, } else null,
SimpleBrowserMenuItem( SimpleBrowserMenuItem(
context.getString(R.string.bookmark_menu_delete_button), context.getString(R.string.bookmark_menu_delete_button),
textColorResource = DefaultThemeManager.resolveAttribute(R.attr.destructive, context) textColorResource = ThemeManager.resolveAttribute(R.attr.destructive, context)
) { ) {
onItemTapped.invoke(BookmarkItemMenu.Item.Delete) onItemTapped.invoke(BookmarkItemMenu.Item.Delete)
} }

View File

@ -7,8 +7,8 @@ package org.mozilla.fenix.library.history
import android.content.Context import android.content.Context
import mozilla.components.browser.menu.BrowserMenuBuilder import mozilla.components.browser.menu.BrowserMenuBuilder
import mozilla.components.browser.menu.item.SimpleBrowserMenuItem import mozilla.components.browser.menu.item.SimpleBrowserMenuItem
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
class HistoryItemMenu( class HistoryItemMenu(
private val context: Context, private val context: Context,
@ -24,7 +24,7 @@ class HistoryItemMenu(
listOf( listOf(
SimpleBrowserMenuItem( SimpleBrowserMenuItem(
context.getString(R.string.history_delete_item), context.getString(R.string.history_delete_item),
textColorResource = DefaultThemeManager.resolveAttribute(R.attr.destructive, context) textColorResource = ThemeManager.resolveAttribute(R.attr.destructive, context)
) { ) {
onItemTapped.invoke(Item.Delete) onItemTapped.invoke(Item.Delete)
} }

View File

@ -16,8 +16,8 @@ import kotlinx.coroutines.Job
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import mozilla.components.browser.icons.IconRequest import mozilla.components.browser.icons.IconRequest
import mozilla.components.browser.menu.BrowserMenu import mozilla.components.browser.menu.BrowserMenu
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.library.history.HistoryAction import org.mozilla.fenix.library.history.HistoryAction
import org.mozilla.fenix.library.history.HistoryItem import org.mozilla.fenix.library.history.HistoryItem
@ -93,9 +93,9 @@ class HistoryListItemViewHolder(
if (mode is HistoryState.Mode.Editing) { if (mode is HistoryState.Mode.Editing) {
val backgroundTint = val backgroundTint =
if (selected) { if (selected) {
DefaultThemeManager.resolveAttribute(R.attr.accentHighContrast, itemView.context) ThemeManager.resolveAttribute(R.attr.accentHighContrast, itemView.context)
} else { } else {
DefaultThemeManager.resolveAttribute(R.attr.neutral, itemView.context) ThemeManager.resolveAttribute(R.attr.neutral, itemView.context)
} }
val backgroundTintList = ContextCompat.getColorStateList(itemView.context, backgroundTint) val backgroundTintList = ContextCompat.getColorStateList(itemView.context, backgroundTint)
favicon.backgroundTintList = backgroundTintList favicon.backgroundTintList = backgroundTintList
@ -106,7 +106,7 @@ class HistoryListItemViewHolder(
favicon.setImageResource(0) favicon.setImageResource(0)
} }
} else { } else {
val backgroundTint = DefaultThemeManager.resolveAttribute(R.attr.neutral, itemView.context) val backgroundTint = ThemeManager.resolveAttribute(R.attr.neutral, itemView.context)
val backgroundTintList = ContextCompat.getColorStateList(itemView.context, backgroundTint) val backgroundTintList = ContextCompat.getColorStateList(itemView.context, backgroundTint)
favicon.backgroundTintList = backgroundTintList favicon.backgroundTintList = backgroundTintList
updateFavIcon(item.url) updateFavIcon(item.url)

View File

@ -21,8 +21,8 @@ import mozilla.components.feature.awesomebar.provider.SessionSuggestionProvider
import mozilla.components.feature.search.SearchUseCases import mozilla.components.feature.search.SearchUseCases
import mozilla.components.feature.session.SessionUseCases import mozilla.components.feature.session.SessionUseCases
import mozilla.components.support.ktx.android.graphics.drawable.toBitmap import mozilla.components.support.ktx.android.graphics.drawable.toBitmap
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.mvi.UIView import org.mozilla.fenix.mvi.UIView
import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.utils.Settings
@ -95,7 +95,7 @@ class AwesomeBarUIView(
draw?.setColorFilter( draw?.setColorFilter(
ContextCompat.getColor( ContextCompat.getColor(
this, this,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, this) ThemeManager.resolveAttribute(R.attr.primaryText, this)
), PorterDuff.Mode.SRC_IN ), PorterDuff.Mode.SRC_IN
) )
clipboardSuggestionProvider = ClipboardSuggestionProvider( clipboardSuggestionProvider = ClipboardSuggestionProvider(
@ -131,7 +131,7 @@ class AwesomeBarUIView(
searchDrawable?.setColorFilter( searchDrawable?.setColorFilter(
ContextCompat.getColor( ContextCompat.getColor(
this, this,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, this) ThemeManager.resolveAttribute(R.attr.primaryText, this)
), PorterDuff.Mode.SRC_IN ), PorterDuff.Mode.SRC_IN
) )
defaultSearchSuggestionProvider = defaultSearchSuggestionProvider =
@ -187,7 +187,7 @@ class AwesomeBarUIView(
draw?.setColorFilter( draw?.setColorFilter(
ContextCompat.getColor( ContextCompat.getColor(
this, this,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, this) ThemeManager.resolveAttribute(R.attr.primaryText, this)
), PorterDuff.Mode.SRC_IN ), PorterDuff.Mode.SRC_IN
) )

View File

@ -10,8 +10,8 @@ import androidx.navigation.Navigation
import io.reactivex.Observer import io.reactivex.Observer
import kotlinx.android.synthetic.main.fragment_search.* import kotlinx.android.synthetic.main.fragment_search.*
import mozilla.components.browser.search.SearchEngine import mozilla.components.browser.search.SearchEngine
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.search.SearchFragmentDirections import org.mozilla.fenix.search.SearchFragmentDirections
class ShortcutEngineManager( class ShortcutEngineManager(
@ -70,7 +70,7 @@ class ShortcutEngineManager(
awesomeBarUIView.search_shortcuts_button.compoundDrawables[0]?.setTint( awesomeBarUIView.search_shortcuts_button.compoundDrawables[0]?.setTint(
ContextCompat.getColor( ContextCompat.getColor(
this, this,
DefaultThemeManager.resolveAttribute(R.attr.foundation, this) ThemeManager.resolveAttribute(R.attr.foundation, this)
) )
) )
@ -85,7 +85,7 @@ class ShortcutEngineManager(
awesomeBarUIView.search_shortcuts_button.compoundDrawables[0]?.setTint( awesomeBarUIView.search_shortcuts_button.compoundDrawables[0]?.setTint(
ContextCompat.getColor( ContextCompat.getColor(
this, this,
DefaultThemeManager.resolveAttribute(R.attr.primaryText, this) ThemeManager.resolveAttribute(R.attr.primaryText, this)
) )
) )

View File

@ -12,8 +12,8 @@ import androidx.core.content.ContextCompat
import androidx.core.text.HtmlCompat import androidx.core.text.HtmlCompat
import mozilla.components.feature.sitepermissions.SitePermissions import mozilla.components.feature.sitepermissions.SitePermissions
import mozilla.components.feature.sitepermissions.SitePermissionsRules import mozilla.components.feature.sitepermissions.SitePermissionsRules
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
internal fun SitePermissionsRules.Action.toString(context: Context): String { internal fun SitePermissionsRules.Action.toString(context: Context): String {
return when (this) { return when (this) {
@ -103,7 +103,7 @@ fun PhoneFeature.getPreferenceKey(context: Context): String {
*/ */
fun RadioButton.setStartCheckedIndicator() { fun RadioButton.setStartCheckedIndicator() {
val attr = val attr =
DefaultThemeManager.resolveAttribute(android.R.attr.listChoiceIndicatorSingle, context) ThemeManager.resolveAttribute(android.R.attr.listChoiceIndicatorSingle, context)
val buttonDrawable = ContextCompat.getDrawable(context, attr) val buttonDrawable = ContextCompat.getDrawable(context, attr)
buttonDrawable.apply { buttonDrawable.apply {
this?.setBounds(0, 0, this.intrinsicWidth, this.intrinsicHeight) this?.setBounds(0, 0, this.intrinsicWidth, this.intrinsicHeight)

View File

@ -16,8 +16,8 @@ import androidx.core.content.res.TypedArrayUtils
import androidx.core.text.HtmlCompat import androidx.core.text.HtmlCompat
import androidx.preference.Preference import androidx.preference.Preference
import androidx.preference.PreferenceViewHolder import androidx.preference.PreferenceViewHolder
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.utils.Settings
class RadioButtonPreference : Preference { class RadioButtonPreference : Preference {
@ -37,7 +37,7 @@ class RadioButtonPreference : Preference {
*/ */
fun RadioButton.setStartCheckedIndicator() { fun RadioButton.setStartCheckedIndicator() {
val attr = val attr =
DefaultThemeManager.resolveAttribute(android.R.attr.listChoiceIndicatorSingle, context) ThemeManager.resolveAttribute(android.R.attr.listChoiceIndicatorSingle, context)
val buttonDrawable = ContextCompat.getDrawable(context, attr) val buttonDrawable = ContextCompat.getDrawable(context, attr)
buttonDrawable.apply { buttonDrawable.apply {
this?.setBounds(0, 0, this.intrinsicWidth, this.intrinsicHeight) this?.setBounds(0, 0, this.intrinsicWidth, this.intrinsicHeight)

View File

@ -19,8 +19,8 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import mozilla.components.browser.search.SearchEngine import mozilla.components.browser.search.SearchEngine
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.utils.Settings
import kotlin.coroutines.CoroutineContext import kotlin.coroutines.CoroutineContext
@ -110,7 +110,7 @@ abstract class SearchEngineListPreference : Preference, CoroutineScope {
val engineIcon = BitmapDrawable(res, engine.icon) val engineIcon = BitmapDrawable(res, engine.icon)
engineIcon.setBounds(0, 0, iconSize, iconSize) engineIcon.setBounds(0, 0, iconSize, iconSize)
val attr = val attr =
DefaultThemeManager.resolveAttribute(android.R.attr.listChoiceIndicatorSingle, context) ThemeManager.resolveAttribute(android.R.attr.listChoiceIndicatorSingle, context)
val buttonDrawable = ContextCompat.getDrawable(context, attr) val buttonDrawable = ContextCompat.getDrawable(context, attr)
buttonDrawable.apply { buttonDrawable.apply {
this?.setBounds(0, 0, this.intrinsicWidth, this.intrinsicHeight) this?.setBounds(0, 0, this.intrinsicWidth, this.intrinsicHeight)

View File

@ -13,8 +13,8 @@ import android.util.AttributeSet
import android.view.MotionEvent import android.view.MotionEvent
import androidx.appcompat.widget.AppCompatEditText import androidx.appcompat.widget.AppCompatEditText
import androidx.core.content.ContextCompat.getColor import androidx.core.content.ContextCompat.getColor
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.ThemeManager
class ClearableEditText @JvmOverloads class ClearableEditText @JvmOverloads
constructor( constructor(
@ -40,7 +40,7 @@ constructor(
if (lengthAfter != 0 && error == null) { if (lengthAfter != 0 && error == null) {
setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_clear, 0) setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_clear, 0)
for (drawable: Drawable in compoundDrawables.filterNotNull()) { for (drawable: Drawable in compoundDrawables.filterNotNull()) {
val color = DefaultThemeManager.resolveAttribute(R.attr.primaryText, context!!) val color = ThemeManager.resolveAttribute(R.attr.primaryText, context!!)
drawable.colorFilter = PorterDuffColorFilter(getColor(context, color), PorterDuff.Mode.SRC_IN) drawable.colorFilter = PorterDuffColorFilter(getColor(context, color), PorterDuff.Mode.SRC_IN)
} }
} else { } else {