diff options
author | John Spurlock <jspurlock@google.com> | 2014-11-20 21:24:31 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2014-11-20 21:24:31 +0000 |
commit | 224a0640c988a33aace9b2a81548613067fb7ca8 (patch) | |
tree | c51683cef5442e8defc01ec98579afeafa6ef726 /packages/SystemUI | |
parent | fa8276c3edb1b71d8e49bb8be1066e86a0d8abb2 (diff) | |
parent | ae08003115488e08b69e0db2e75eca56405bd928 (diff) | |
download | frameworks_base-224a0640c988a33aace9b2a81548613067fb7ca8.zip frameworks_base-224a0640c988a33aace9b2a81548613067fb7ca8.tar.gz frameworks_base-224a0640c988a33aace9b2a81548613067fb7ca8.tar.bz2 |
am ef86a828: Merge "QS: Inversion tile: Don\'t consider initial 0 setting trackable." into lmp-mr1-dev
automerge: ae08003
* commit 'ae08003115488e08b69e0db2e75eca56405bd928':
QS: Inversion tile: Don't consider initial 0 setting trackable.
Diffstat (limited to 'packages/SystemUI')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/SecureSetting.java | 15 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java | 6 |
2 files changed, 15 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/SecureSetting.java b/packages/SystemUI/src/com/android/systemui/qs/SecureSetting.java index 0ab6626..4f812bc 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/SecureSetting.java +++ b/packages/SystemUI/src/com/android/systemui/qs/SecureSetting.java @@ -26,24 +26,26 @@ import com.android.systemui.statusbar.policy.Listenable; /** Helper for managing a secure setting. **/ public abstract class SecureSetting extends ContentObserver implements Listenable { + private static final int DEFAULT = 0; + private final Context mContext; private final String mSettingName; private boolean mListening; private int mUserId; + private int mObservedValue = DEFAULT; - protected abstract void handleValueChanged(int value); + protected abstract void handleValueChanged(int value, boolean observedChange); public SecureSetting(Context context, Handler handler, String settingName) { super(handler); mContext = context; mSettingName = settingName; mUserId = ActivityManager.getCurrentUser(); - setListening(true); } public int getValue() { - return Secure.getIntForUser(mContext.getContentResolver(), mSettingName, 0, mUserId); + return Secure.getIntForUser(mContext.getContentResolver(), mSettingName, DEFAULT, mUserId); } public void setValue(int value) { @@ -52,18 +54,23 @@ public abstract class SecureSetting extends ContentObserver implements Listenabl @Override public void setListening(boolean listening) { + if (listening == mListening) return; mListening = listening; if (listening) { + mObservedValue = getValue(); mContext.getContentResolver().registerContentObserver( Secure.getUriFor(mSettingName), false, this, mUserId); } else { mContext.getContentResolver().unregisterContentObserver(this); + mObservedValue = DEFAULT; } } @Override public void onChange(boolean selfChange) { - handleValueChanged(getValue()); + final int value = getValue(); + handleValueChanged(value, value != mObservedValue); + mObservedValue = value; } public void setUserId(int userId) { diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java index b565afa..5963a45 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/ColorInversionTile.java @@ -41,8 +41,10 @@ public class ColorInversionTile extends QSTile<QSTile.BooleanState> { mSetting = new SecureSetting(mContext, mHandler, Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED) { @Override - protected void handleValueChanged(int value) { - mUsageTracker.trackUsage(); + protected void handleValueChanged(int value, boolean observedChange) { + if (value != 0 || observedChange) { + mUsageTracker.trackUsage(); + } if (mListening) { handleRefreshState(value); } |