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

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

Add some synchronization to hotspot callbacks

Bug: 27497199
Change-Id: I792a246c0e2387e8db1fd528a7c2f20844cdd1a0
parent 8f084426
Loading
Loading
Loading
Loading
+14 −8
Original line number Diff line number Diff line
@@ -69,19 +69,23 @@ public class HotspotControllerImpl implements HotspotController {

    @Override
    public void addCallback(Callback callback) {
        synchronized (mCallbacks) {
            if (callback == null || mCallbacks.contains(callback)) return;
            if (DEBUG) Log.d(TAG, "addCallback " + callback);
            mCallbacks.add(callback);
            mReceiver.setListening(!mCallbacks.isEmpty());
        }
    }

    @Override
    public void removeCallback(Callback callback) {
        if (callback == null) return;
        if (DEBUG) Log.d(TAG, "removeCallback " + callback);
        synchronized (mCallbacks) {
            mCallbacks.remove(callback);
            mReceiver.setListening(!mCallbacks.isEmpty());
        }
    }

    @Override
    public boolean isHotspotEnabled() {
@@ -110,10 +114,12 @@ public class HotspotControllerImpl implements HotspotController {
    }

    private void fireCallback(boolean isEnabled) {
        synchronized (mCallbacks) {
            for (Callback callback : mCallbacks) {
                callback.onHotspotChanged(isEnabled);
            }
        }
    }

    private final class Receiver extends BroadcastReceiver {
        private boolean mRegistered;