Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 224a0640 authored by John Spurlock's avatar John Spurlock Committed by android-build-merger
Browse files

am ef86a828: Merge "QS: Inversion tile: Don\'t consider initial 0 setting...

am ef86a828: Merge "QS: Inversion tile: Don\'t consider initial 0 setting trackable." into lmp-mr1-dev
automerge: ae080031

* commit 'ae080031':
  QS: Inversion tile: Don't consider initial 0 setting trackable.
parents fa8276c3 ae080031
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -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) {
+4 −2
Original line number Diff line number Diff line
@@ -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) {
            protected void handleValueChanged(int value, boolean observedChange) {
                if (value != 0 || observedChange) {
                    mUsageTracker.trackUsage();
                }
                if (mListening) {
                    handleRefreshState(value);
                }