2
0
mirror of https://github.com/fork-maintainers/iceraven-browser synced 2024-11-15 18:12:54 +00:00

[fenix] For https://github.com/mozilla-mobile/fenix/issues/26644 - Apply the new theme earlier to the private browsing button

This will help avoid a race between the two layers of the svg, with previously
only changing the color for just one.
By applying the new theme to the button when needing to apply the textColor
from wallpaper it will automatically use the right
This commit is contained in:
Mugurell 2022-09-22 17:11:28 +03:00 committed by mergify[bot]
parent 9ba1508663
commit bb8f80b86a

View File

@ -39,6 +39,7 @@ import androidx.navigation.fragment.navArgs
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.LinearSmoothScroller
import androidx.recyclerview.widget.RecyclerView.SmoothScroller
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat
import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.button.MaterialButton
import com.google.android.material.snackbar.Snackbar
@ -993,7 +994,22 @@ class HomeFragment : Fragment() {
}
binding.wordmarkText.imageTintList = tintColor
binding.privateBrowsingButton.imageTintList = tintColor
// Need to preemptively apply the new theme to the private browsing button drawable
// See https://github.com/mozilla-mobile/fenix/issues/26644#issuecomment-1254961616
(activity as? HomeActivity)?.themeManager?.let { themeManager ->
with(binding.privateBrowsingButton) {
val drawable = VectorDrawableCompat.create(
resources,
R.drawable.private_browsing_button,
resources.newTheme().apply {
applyStyle(themeManager.currentThemeResource, true)
},
)
setImageDrawable(drawable)
imageTintList = tintColor
}
}
}
private fun observeWallpaperUpdates() {