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

Commit 89aeab0e authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Stop posting config asynchronously.

All of the instances of calling into other services with locks held
should be resolved, so this isn't needed anymore.

Test: have 2 rules end or start at the same time; ensure the resulting
state is correct.

Fixes: 28459870
Change-Id: I3f12f1d3b8460361dab6fa9468f0ede55ca8dd5e
parent 2c6fe63b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -102,7 +102,7 @@ public class ZenModeConditions implements ConditionProviders.Callback {
    @Override
    public void onServiceAdded(ComponentName component) {
        if (DEBUG) Log.d(TAG, "onServiceAdded " + component);
        mHelper.setConfigAsync(mHelper.getConfig(), "zmc.onServiceAdded");
        mHelper.setConfig(mHelper.getConfig(), "zmc.onServiceAdded");
    }

    @Override
@@ -116,7 +116,7 @@ public class ZenModeConditions implements ConditionProviders.Callback {
            updated |= updateSnoozing(automaticRule);
        }
        if (updated) {
            mHelper.setConfigAsync(config, "conditionChanged");
            mHelper.setConfig(config, "conditionChanged");
        }
    }

+4 −19
Original line number Diff line number Diff line
@@ -620,8 +620,10 @@ public class ZenModeHelper {
        return setConfigLocked(config, reason, true /*setRingerMode*/);
    }

    public void setConfigAsync(ZenModeConfig config, String reason) {
        mHandler.postSetConfig(config, reason);
    public void setConfig(ZenModeConfig config, String reason) {
        synchronized (mConfig) {
            setConfigLocked(config, reason);
        }
    }

    private boolean setConfigLocked(ZenModeConfig config, String reason, boolean setRingerMode) {
@@ -1084,7 +1086,6 @@ public class ZenModeHelper {
    private final class H extends Handler {
        private static final int MSG_DISPATCH = 1;
        private static final int MSG_METRICS = 2;
        private static final int MSG_SET_CONFIG = 3;
        private static final int MSG_APPLY_CONFIG = 4;

        private final class ConfigMessageData {
@@ -1092,12 +1093,6 @@ public class ZenModeHelper {
            public final String reason;
            public final boolean setRingerMode;

            ConfigMessageData(ZenModeConfig config, String reason) {
                this.config = config;
                this.reason = reason;
                this.setRingerMode = false;
            }

            ConfigMessageData(ZenModeConfig config, String reason, boolean setRingerMode) {
                this.config = config;
                this.reason = reason;
@@ -1121,10 +1116,6 @@ public class ZenModeHelper {
            sendEmptyMessageDelayed(MSG_METRICS, METRICS_PERIOD_MS);
        }

        private void postSetConfig(ZenModeConfig config, String reason) {
            sendMessage(obtainMessage(MSG_SET_CONFIG, new ConfigMessageData(config, reason)));
        }

        private void postApplyConfig(ZenModeConfig config, String reason, boolean setRingerMode) {
            sendMessage(obtainMessage(MSG_APPLY_CONFIG,
                    new ConfigMessageData(config, reason, setRingerMode)));
@@ -1139,12 +1130,6 @@ public class ZenModeHelper {
                case MSG_METRICS:
                    mMetrics.emit();
                    break;
                case MSG_SET_CONFIG:
                    ConfigMessageData configData = (ConfigMessageData) msg.obj;
                    synchronized (mConfig) {
                        setConfigLocked(configData.config, configData.reason);
                    }
                    break;
                case MSG_APPLY_CONFIG:
                    ConfigMessageData applyConfigData = (ConfigMessageData) msg.obj;
                    applyConfig(applyConfigData.config, applyConfigData.reason,