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
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user