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

Commit ca4cc555 authored by Jason Monk's avatar Jason Monk
Browse files

Guard against crashes from data saver listeners

Change-Id: I85b127c38cc61ec6928aefbf323430051028fafc
Fixes: 28065072
parent 726959bf
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
@@ -33,26 +33,31 @@ public class DataSaverController {
    }

    private void handleRestrictBackgroundChanged(boolean isDataSaving) {
        final int N = mListeners.size();
        for (int i = 0; i < N; i++) {
        synchronized (mListeners) {
            for (int i = 0; i < mListeners.size(); i++) {
                mListeners.get(i).onDataSaverChanged(isDataSaving);
            }
        }
    }

    public void addListener(Listener listener) {
        synchronized (mListeners) {
            mListeners.add(listener);
            if (mListeners.size() == 1) {
                mPolicyManager.registerListener(mPolicyListener);
            }
        }
        listener.onDataSaverChanged(isDataSaverEnabled());
    }

    public void remListener(Listener listener) {
        synchronized (mListeners) {
            mListeners.remove(listener);
            if (mListeners.size() == 0) {
                mPolicyManager.unregisterListener(mPolicyListener);
            }
        }
    }

    public boolean isDataSaverEnabled() {
        return mPolicyManager.getRestrictBackground();