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

Commit 5763f3a1 authored by Nicolo' Mazzucato's avatar Nicolo' Mazzucato
Browse files

Assert add/removeCallbacks are from main thread in DevicePostureControllerImpl

There have been bugs associated to concurrent modifications of mListeners, but we're not able to reproduce them. With this cl, there will be a more obvious error message in future bugs, if there will be any.

Bug: 219510239
Test: Manually tried to trigger the assert, failing.
Change-Id: I9dd5e0fd45227b133b17f5a6680b35c89b183ce8
parent 05474038
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import androidx.annotation.NonNull;
import com.android.internal.R;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.util.Assert;

import java.util.ArrayList;
import java.util.List;
@@ -70,6 +71,7 @@ public class DevicePostureControllerImpl implements DevicePostureController {
        }

        deviceStateManager.registerCallback(executor, state -> {
            Assert.isMainThread();
            mCurrentDevicePosture =
                    mDeviceStateToPostureMap.get(state, DEVICE_POSTURE_UNKNOWN);

@@ -79,11 +81,13 @@ public class DevicePostureControllerImpl implements DevicePostureController {

    @Override
    public void addCallback(@NonNull Callback listener) {
        Assert.isMainThread();
        mListeners.add(listener);
    }

    @Override
    public void removeCallback(@NonNull Callback listener) {
        Assert.isMainThread();
        mListeners.remove(listener);
    }