For #26644 - Apply the new theme earlier to the private browsing button (#27204)

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

(cherry picked from commit c7c5682104)

Co-authored-by: Mugurell <Mugurell@users.noreply.github.com>
pull/543/head
mergify[bot] 2 years ago committed by GitHub
parent d8bd4c8899
commit 3e625b9d70
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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() {

Loading…
Cancel
Save