Skip to content

Commit

Permalink
FlashlightStrengthTile: Always get updated values from the interface
Browse files Browse the repository at this point in the history
Avoid color changes in flashlight tile when device doesn't support
flashlight strength.

We need proper values from TouchableQSTile interface to initialize
SliderQSTileViewImpl properly.
also don't wanna complicate it with more callbacks.

Change-Id: Ic1c70fe2eae7666b22779d49c83010df57425af1
  • Loading branch information
Dhina17 authored and fazilsheik96 committed Feb 28, 2025
1 parent 10f4219 commit 0f7ccbc
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -363,9 +363,7 @@ private void addTile(final QSTile tile, boolean collapsedView) {
tileView = new SliderQSTileViewImpl(
getContext(),
collapsedView,
slideableTile.getTouchListener(),
slideableTile.getSettingsSystemKey(),
slideableTile.getSettingsDefaultValue());
slideableTile);
} else {
tileView = new QSTileViewImpl(
getContext(), collapsedView, longPressEffect);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@

public class SliderQSTileViewImpl extends QSTileViewImpl {

private SlideableQSTile mSlideableQSTile;
private PercentageDrawable percentageDrawable;
private String mSettingsKey;
private SettingObserver mSettingObserver;
Expand All @@ -63,26 +64,22 @@ public class SliderQSTileViewImpl extends QSTileViewImpl {
public SliderQSTileViewImpl(
Context context,
boolean collapsed,
View.OnTouchListener touchListener,
String settingKey,
float settingsDefaultValue) {
SlideableQSTile slideableQSTile) {
super(context, collapsed);
if (touchListener != null && !settingKey.isEmpty()) {
mSettingsKey = settingKey;
mWarnColor = Utils.getColorErrorDefaultColor(context);
percentageDrawable = new PercentageDrawable(settingsDefaultValue);
percentageDrawable.setTint(Color.WHITE);
updatePercentBackground(STATE_INACTIVE); // default
mSettingObserver = new SettingObserver(new Handler(Looper.getMainLooper()));
setOnTouchListener(touchListener);
mContext.getContentResolver()
.registerContentObserver(
Settings.System.getUriFor(settingKey),
false,
mSettingObserver,
UserHandle.USER_CURRENT);
enabled = true;
}
mSlideableQSTile = slideableQSTile;
mSettingsKey = slideableQSTile.getSettingsSystemKey();
mWarnColor = Utils.getColorErrorDefaultColor(context);
percentageDrawable = new PercentageDrawable();
percentageDrawable.setTint(Color.WHITE);
updatePercentBackground(STATE_INACTIVE); // default
mSettingObserver = new SettingObserver(new Handler(Looper.getMainLooper()));
setOnTouchListener(slideableQSTile.getTouchListener());
mContext.getContentResolver()
.registerContentObserver(
Settings.System.getUriFor(mSettingsKey),
false,
mSettingObserver,
UserHandle.USER_CURRENT);
}

@Override
Expand Down Expand Up @@ -129,17 +126,16 @@ public void onChange(boolean selfChange, Uri uri) {

private class PercentageDrawable extends Drawable {
private Drawable shape;
private float mDefaultPercent;

private PercentageDrawable(float defaultPercent) {
private PercentageDrawable() {
shape = mContext.getDrawable(R.drawable.qs_tile_background_shape);
mDefaultPercent = defaultPercent;
updatePercent();
}

synchronized void updatePercent() {
mCurrentPercent = Settings.System.getFloatForUser(mContext.getContentResolver(),
mSettingsKey, mDefaultPercent, UserHandle.USER_CURRENT);
mSettingsKey, mSlideableQSTile.getSettingsDefaultValue(),
UserHandle.USER_CURRENT);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ public class FlashlightStrengthTile extends FlashlightTile implements SlideableQ
private final Looper mBgLooper;
private boolean mSupportsSettingFlashLevel;
private boolean mRegistered = false;
private int mDefaultLevel;
private int mMaxLevel;
private int mDefaultLevel = 0;
private int mMaxLevel = 1;
private float mCurrentPercent;
private int mCurrentLevel;
private boolean mClicked = true;
Expand Down

0 comments on commit 0f7ccbc

Please sign in to comment.