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

Commit dc792bcb authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Synchronize ZenModeControllerImpl callbacks"

parents 5504b6c2 3f74c5de
Loading
Loading
Loading
Loading
+25 −8
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ public class ZenModeControllerImpl extends CurrentUserTracker
    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);

    private final ArrayList<Callback> mCallbacks = new ArrayList<>();
    private final Object mCallbacksLock = new Object();
    private final Context mContext;
    private final GlobalSetting mModeSetting;
    private final GlobalSetting mConfigSetting;
@@ -114,13 +115,17 @@ public class ZenModeControllerImpl extends CurrentUserTracker

    @Override
    public void addCallback(Callback callback) {
        synchronized (mCallbacksLock) {
            mCallbacks.add(callback);
        }
    }

    @Override
    public void removeCallback(Callback callback) {
        synchronized (mCallbacksLock) {
            mCallbacks.remove(callback);
        }
    }

    @Override
    public int getZen() {
@@ -183,29 +188,41 @@ public class ZenModeControllerImpl extends CurrentUserTracker
    }

    private void fireNextAlarmChanged() {
        synchronized (mCallbacksLock) {
            Utils.safeForeach(mCallbacks, c -> c.onNextAlarmChanged());
        }
    }

    private void fireEffectsSuppressorChanged() {
        synchronized (mCallbacksLock) {
            Utils.safeForeach(mCallbacks, c -> c.onEffectsSupressorChanged());
        }
    }

    private void fireZenChanged(int zen) {
        synchronized (mCallbacksLock) {
            Utils.safeForeach(mCallbacks, c -> c.onZenChanged(zen));
        }
    }

    private void fireZenAvailableChanged(boolean available) {
        synchronized (mCallbacksLock) {
            Utils.safeForeach(mCallbacks, c -> c.onZenAvailableChanged(available));
        }
    }

    private void fireManualRuleChanged(ZenRule rule) {
        synchronized (mCallbacksLock) {
            Utils.safeForeach(mCallbacks, c -> c.onManualRuleChanged(rule));
        }
    }

    @VisibleForTesting
    protected void fireConfigChanged(ZenModeConfig config) {
        synchronized (mCallbacksLock) {
            Utils.safeForeach(mCallbacks, c -> c.onConfigChanged(config));
        }
    }

    @VisibleForTesting
    protected void updateZenMode(int mode) {