Merge "QS: Inversion tile: Don't consider initial 0 setting trackable." into lmp-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ef86a82814
@@ -26,24 +26,26 @@ import com.android.systemui.statusbar.policy.Listenable;
|
|||||||
|
|
||||||
/** Helper for managing a secure setting. **/
|
/** Helper for managing a secure setting. **/
|
||||||
public abstract class SecureSetting extends ContentObserver implements Listenable {
|
public abstract class SecureSetting extends ContentObserver implements Listenable {
|
||||||
|
private static final int DEFAULT = 0;
|
||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private final String mSettingName;
|
private final String mSettingName;
|
||||||
|
|
||||||
private boolean mListening;
|
private boolean mListening;
|
||||||
private int mUserId;
|
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) {
|
public SecureSetting(Context context, Handler handler, String settingName) {
|
||||||
super(handler);
|
super(handler);
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mSettingName = settingName;
|
mSettingName = settingName;
|
||||||
mUserId = ActivityManager.getCurrentUser();
|
mUserId = ActivityManager.getCurrentUser();
|
||||||
setListening(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getValue() {
|
public int getValue() {
|
||||||
return Secure.getIntForUser(mContext.getContentResolver(), mSettingName, 0, mUserId);
|
return Secure.getIntForUser(mContext.getContentResolver(), mSettingName, DEFAULT, mUserId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setValue(int value) {
|
public void setValue(int value) {
|
||||||
@@ -52,18 +54,23 @@ public abstract class SecureSetting extends ContentObserver implements Listenabl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setListening(boolean listening) {
|
public void setListening(boolean listening) {
|
||||||
|
if (listening == mListening) return;
|
||||||
mListening = listening;
|
mListening = listening;
|
||||||
if (listening) {
|
if (listening) {
|
||||||
|
mObservedValue = getValue();
|
||||||
mContext.getContentResolver().registerContentObserver(
|
mContext.getContentResolver().registerContentObserver(
|
||||||
Secure.getUriFor(mSettingName), false, this, mUserId);
|
Secure.getUriFor(mSettingName), false, this, mUserId);
|
||||||
} else {
|
} else {
|
||||||
mContext.getContentResolver().unregisterContentObserver(this);
|
mContext.getContentResolver().unregisterContentObserver(this);
|
||||||
|
mObservedValue = DEFAULT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onChange(boolean selfChange) {
|
public void onChange(boolean selfChange) {
|
||||||
handleValueChanged(getValue());
|
final int value = getValue();
|
||||||
|
handleValueChanged(value, value != mObservedValue);
|
||||||
|
mObservedValue = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUserId(int userId) {
|
public void setUserId(int userId) {
|
||||||
|
|||||||
@@ -41,8 +41,10 @@ public class ColorInversionTile extends QSTile<QSTile.BooleanState> {
|
|||||||
mSetting = new SecureSetting(mContext, mHandler,
|
mSetting = new SecureSetting(mContext, mHandler,
|
||||||
Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED) {
|
Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED) {
|
||||||
@Override
|
@Override
|
||||||
protected void handleValueChanged(int value) {
|
protected void handleValueChanged(int value, boolean observedChange) {
|
||||||
mUsageTracker.trackUsage();
|
if (value != 0 || observedChange) {
|
||||||
|
mUsageTracker.trackUsage();
|
||||||
|
}
|
||||||
if (mListening) {
|
if (mListening) {
|
||||||
handleRefreshState(value);
|
handleRefreshState(value);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user