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

Commit 503ae212 authored by Beverly's avatar Beverly
Browse files

DO NOT MERGE Synchronize ZenModeControllerImpl callbacks

Test: manual
Bug: 115688927
Change-Id: Ib47913c7b5522c40405fadd97d570d5f197f71dc
parent 32fb670a
Loading
Loading
Loading
Loading
+28 −11
Original line number Original line Diff line number Diff line
@@ -53,6 +53,7 @@ public class ZenModeControllerImpl extends CurrentUserTracker implements ZenMode
    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);


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


    @Override
    @Override
    public void addCallback(Callback callback) {
    public void addCallback(Callback callback) {
        synchronized (mCallbacksLock) {
            if (callback == null) {
            if (callback == null) {
                Slog.e(TAG, "Attempted to add a null callback.");
                Slog.e(TAG, "Attempted to add a null callback.");
                return;
                return;
            }
            }
            mCallbacks.add(callback);
            mCallbacks.add(callback);
        }
        }
    }


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


    @Override
    @Override
    public int getZen() {
    public int getZen() {
@@ -186,29 +191,41 @@ public class ZenModeControllerImpl extends CurrentUserTracker implements ZenMode
    }
    }


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


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


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


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


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


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


    @VisibleForTesting
    @VisibleForTesting
    protected void updateZenMode(int mode) {
    protected void updateZenMode(int mode) {