summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;
}
}