For #15061: Fix error text color in SyncedTabsFragment.
This commit is contained in:
parent
c0f0c401f3
commit
2d1df018ff
|
@ -8,7 +8,11 @@ import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import androidx.core.content.ContextCompat
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import kotlinx.android.synthetic.main.component_sync_tabs.view.*
|
||||||
import kotlinx.android.synthetic.main.fragment_synced_tabs.*
|
import kotlinx.android.synthetic.main.fragment_synced_tabs.*
|
||||||
|
import kotlinx.android.synthetic.main.sync_tabs_error_row.view.*
|
||||||
import mozilla.components.browser.storage.sync.Tab
|
import mozilla.components.browser.storage.sync.Tab
|
||||||
import mozilla.components.feature.syncedtabs.SyncedTabsFeature
|
import mozilla.components.feature.syncedtabs.SyncedTabsFeature
|
||||||
import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
|
import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
|
||||||
|
@ -19,6 +23,7 @@ import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.ext.components
|
import org.mozilla.fenix.ext.components
|
||||||
import org.mozilla.fenix.ext.showToolbar
|
import org.mozilla.fenix.ext.showToolbar
|
||||||
import org.mozilla.fenix.library.LibraryPageFragment
|
import org.mozilla.fenix.library.LibraryPageFragment
|
||||||
|
import org.mozilla.fenix.theme.ThemeManager
|
||||||
|
|
||||||
class SyncedTabsFragment : LibraryPageFragment<Tab>() {
|
class SyncedTabsFragment : LibraryPageFragment<Tab>() {
|
||||||
private val syncedTabsFeature = ViewBoundFeatureWrapper<SyncedTabsFeature>()
|
private val syncedTabsFeature = ViewBoundFeatureWrapper<SyncedTabsFeature>()
|
||||||
|
@ -41,6 +46,12 @@ class SyncedTabsFragment : LibraryPageFragment<Tab>() {
|
||||||
|
|
||||||
val backgroundServices = requireContext().components.backgroundServices
|
val backgroundServices = requireContext().components.backgroundServices
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Needed because the synced tabs error layout is also used in tabs tray where there is no private theme.
|
||||||
|
* See https://github.com/mozilla-mobile/fenix/issues/15061
|
||||||
|
*/
|
||||||
|
setProperErrorColor(view.synced_tabs_list as RecyclerView)
|
||||||
|
|
||||||
syncedTabsFeature.set(
|
syncedTabsFeature.set(
|
||||||
feature = SyncedTabsFeature(
|
feature = SyncedTabsFeature(
|
||||||
context = requireContext(),
|
context = requireContext(),
|
||||||
|
@ -55,6 +66,30 @@ class SyncedTabsFragment : LibraryPageFragment<Tab>() {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun setProperErrorColor(syncedTabsList: RecyclerView) {
|
||||||
|
syncedTabsList.addOnChildAttachStateChangeListener(
|
||||||
|
object : RecyclerView.OnChildAttachStateChangeListener {
|
||||||
|
override fun onChildViewAttachedToWindow(view: View) {
|
||||||
|
val errorView = view.sync_tabs_error_description
|
||||||
|
val primaryText = ContextCompat.getColor(
|
||||||
|
view.context,
|
||||||
|
ThemeManager.resolveAttribute(R.attr.primaryText, view.context)
|
||||||
|
)
|
||||||
|
errorView?.let {
|
||||||
|
it.setTextColor(primaryText)
|
||||||
|
syncedTabsList.removeOnChildAttachStateChangeListener(
|
||||||
|
this
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onChildViewDetachedFromWindow(view: View) {
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
showToolbar(getString(R.string.library_synced_tabs))
|
showToolbar(getString(R.string.library_synced_tabs))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user