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

Commit 3ebe72b2 authored by Julia Reynolds's avatar Julia Reynolds Committed by Craig Donner
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
Bug: 31980467

Change-Id: I3f12f1d3b8460361dab6fa9468f0ede55ca8dd5e
(cherry picked from commit 89aeab0e)
parent b29dadb9
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -99,7 +99,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
@@ -113,7 +113,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,