summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruno Martins <bgcngm@gmail.com>2020-06-09 21:47:24 +0100
committerLuca Stefani <luca.stefani.ge1@gmail.com>2020-06-10 23:30:25 +0200
commitf730abf925a48c48953eb7177af7f06cd7c76a09 (patch)
tree2fc48c4b3a019538a10cef7a3261c122b0c490d1
parent230e19d9f7719dd67e6b4e47be75ccedc23cada0 (diff)
downloadframeworks_base-f730abf925a48c48953eb7177af7f06cd7c76a09.tar.gz
frameworks_base-f730abf925a48c48953eb7177af7f06cd7c76a09.tar.bz2
frameworks_base-f730abf925a48c48953eb7177af7f06cd7c76a09.zip
AODTile: Rewrite AOD setting handling
This fixes the tile status on clean installs, which was showing as active despite AOD being disabled. Change-Id: I148cfb34938165395bc52c830d1f2e374b5427df
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/AODTile.java33
1 files changed, 22 insertions, 11 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/AODTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/AODTile.java
index 0ecec4458f9..20243440378 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/AODTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/AODTile.java
@@ -24,6 +24,7 @@ import android.service.quicksettings.Tile;
import com.android.systemui.R;
import com.android.systemui.plugins.qs.QSTile.BooleanState;
import com.android.systemui.qs.QSHost;
+import com.android.systemui.qs.SecureSetting;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.statusbar.policy.BatteryController;
@@ -33,15 +34,22 @@ import javax.inject.Inject;
public class AODTile extends QSTileImpl<BooleanState> implements
BatteryController.BatteryStateChangeCallback {
- private boolean mAodDisabled;
+
private final Icon mIcon = ResourceIcon.get(R.drawable.ic_qs_aod);
private final BatteryController mBatteryController;
+ private final SecureSetting mSetting;
+
@Inject
public AODTile(QSHost host, BatteryController batteryController) {
super(host);
- mAodDisabled = Settings.Secure.getInt(mContext.getContentResolver(),
- Settings.Secure.DOZE_ALWAYS_ON, 1) == 0;
+
+ mSetting = new SecureSetting(mContext, mHandler, Settings.Secure.DOZE_ALWAYS_ON) {
+ @Override
+ protected void handleValueChanged(int value, boolean observedChange) {
+ handleRefreshState(value);
+ }
+ };
mBatteryController = batteryController;
batteryController.observe(getLifecycle(), this);
@@ -67,10 +75,7 @@ public class AODTile extends QSTileImpl<BooleanState> implements
@Override
public void handleClick() {
- mAodDisabled = !mAodDisabled;
- Settings.Secure.putInt(mContext.getContentResolver(),
- Settings.Secure.DOZE_ALWAYS_ON,
- mAodDisabled ? 0 : 1);
+ setEnabled(!mState.value);
refreshState();
}
@@ -79,6 +84,12 @@ public class AODTile extends QSTileImpl<BooleanState> implements
return null;
}
+ private void setEnabled(boolean enabled) {
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.DOZE_ALWAYS_ON,
+ enabled ? 1 : 0);
+ }
+
@Override
public CharSequence getTileLabel() {
if (mBatteryController.isAodPowerSave()) {
@@ -89,19 +100,19 @@ public class AODTile extends QSTileImpl<BooleanState> implements
@Override
protected void handleUpdateState(BooleanState state, Object arg) {
+ final int value = arg instanceof Integer ? (Integer) arg : mSetting.getValue();
+ final boolean enable = value != 0;
if (state.slash == null) {
state.slash = new SlashState();
}
state.icon = mIcon;
- state.value = mAodDisabled;
+ state.value = enable;
state.slash.isSlashed = state.value;
state.label = mContext.getString(R.string.quick_settings_aod_label);
if (mBatteryController.isAodPowerSave()) {
state.state = Tile.STATE_UNAVAILABLE;
- } else if (mAodDisabled) {
- state.state = Tile.STATE_INACTIVE;
} else {
- state.state = Tile.STATE_ACTIVE;
+ state.state = enable ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE;
}
}