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.View
|
||||
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.sync_tabs_error_row.view.*
|
||||
import mozilla.components.browser.storage.sync.Tab
|
||||
import mozilla.components.feature.syncedtabs.SyncedTabsFeature
|
||||
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.showToolbar
|
||||
import org.mozilla.fenix.library.LibraryPageFragment
|
||||
import org.mozilla.fenix.theme.ThemeManager
|
||||
|
||||
class SyncedTabsFragment : LibraryPageFragment<Tab>() {
|
||||
private val syncedTabsFeature = ViewBoundFeatureWrapper<SyncedTabsFeature>()
|
||||
|
@ -41,6 +46,12 @@ class SyncedTabsFragment : LibraryPageFragment<Tab>() {
|
|||
|
||||
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(
|
||||
feature = SyncedTabsFeature(
|
||||
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() {
|
||||
super.onResume()
|
||||
showToolbar(getString(R.string.library_synced_tabs))
|
||||
|
|
Loading…
Reference in New Issue
Block a user