Redraw brightness slider on density change.

Without this, the drawable we use for the brightness slider gets
drawn at the wrong size whenever the screen density changes. This
also appears to ensure that the brightness icon gets drawn in the
correct color.

Fixes: 191738397
Test: manual
Change-Id: I21929985935299e14043482dd0496684642e5004
This commit is contained in:
Dave Mankoff
2021-06-25 10:38:28 -04:00
parent 82f0979e7b
commit 381f7d3e34
2 changed files with 7 additions and 0 deletions

View File

@@ -180,6 +180,8 @@ public class BrightnessSliderView extends FrameLayout {
* Sets the scale for the progress bar (for brightness_progress_drawable.xml)
*
* This will only scale the thick progress bar and not the icon inside
*
* Used in {@link com.android.systemui.qs.QSAnimator}.
*/
public void setSliderScaleY(float scale) {
if (scale != mScale) {

View File

@@ -16,6 +16,7 @@
package com.android.systemui.util
import android.content.pm.ActivityInfo
import android.content.res.Resources
import android.graphics.Rect
import android.graphics.drawable.Drawable
@@ -64,6 +65,10 @@ class RoundedCornerProgressDrawable @JvmOverloads constructor(
return RoundedCornerState(super.getConstantState()!!)
}
override fun getChangingConfigurations(): Int {
return super.getChangingConfigurations() or ActivityInfo.CONFIG_DENSITY
}
private class RoundedCornerState(private val wrappedState: ConstantState) : ConstantState() {
override fun newDrawable(): Drawable {
return newDrawable(null, null)