Properly store values to pass to constant state

There's no way to retrieve the last set tint list, so store it (as we
were passing it to the constant state).

Test: manual
Fixes: 198413369
Change-Id: I665f9f955ff90accd6dcda275521715039641a6b
This commit is contained in:
Fabian Kozynski
2021-09-23 10:50:10 -04:00
parent 41e02db201
commit a03f67e257
2 changed files with 14 additions and 0 deletions

View File

@@ -109,6 +109,12 @@ public class AlphaTintDrawableWrapper extends InsetDrawable {
}
}
@Override
public void setTintList(ColorStateList tint) {
super.setTintList(tint);
mTint = tint;
}
private void applyTint() {
if (getDrawable() != null && mTint != null) {
getDrawable().mutate().setTintList(mTint);

View File

@@ -69,6 +69,10 @@ class RoundedCornerProgressDrawable @JvmOverloads constructor(
return super.getChangingConfigurations() or ActivityInfo.CONFIG_DENSITY
}
override fun canApplyTheme(): Boolean {
return (drawable?.canApplyTheme() ?: false) || super.canApplyTheme()
}
private class RoundedCornerState(private val wrappedState: ConstantState) : ConstantState() {
override fun newDrawable(): Drawable {
return newDrawable(null, null)
@@ -82,5 +86,9 @@ class RoundedCornerProgressDrawable @JvmOverloads constructor(
override fun getChangingConfigurations(): Int {
return wrappedState.changingConfigurations
}
override fun canApplyTheme(): Boolean {
return true
}
}
}