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

Commit 732edcdf authored by William Escande's avatar William Escande
Browse files

Delay user switch for until manager can handle it

Bug: 269973219
Test: manual testing
Change-Id: I744da162270838f3d5329170c0006ed67854b4f0
parent 56f3c678
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -434,6 +434,7 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {

    private static final Object ON_AIRPLANE_MODE_CHANGED_TOKEN = new Object();
    private static final Object ON_SATELLITE_MODE_CHANGED_TOKEN = new Object();
    private static final Object ON_SWITCH_USER_TOKEN = new Object();

    @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)
    void onAirplaneModeChanged() {
@@ -447,6 +448,12 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
                () -> handleSatelliteModeChanged(), "onSatelliteModeChanged");
    }

    @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)
    void onSwitchUser(UserHandle userHandle) {
        delayModeChangedIfNeeded(ON_SWITCH_USER_TOKEN,
                () -> handleSwitchUser(userHandle), "onSwitchUser");
    }

    @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)
    private void handleAirplaneModeChanged() {
        synchronized (this) {
@@ -1828,7 +1835,7 @@ public class BluetoothManagerService extends IBluetoothManager.Stub {
    /**
     * Called when switching to a different foreground user.
     */
    public void handleOnSwitchUser(UserHandle userHandle) {
    void handleSwitchUser(UserHandle userHandle) {
        if (DBG) {
            Log.d(TAG, "User " + userHandle + " switched");
        }
+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ public class BluetoothService extends SystemService {
        if (!mInitialized) {
            initialize();
        } else {
            mBluetoothManagerService.handleOnSwitchUser(to.getUserHandle());
            mBluetoothManagerService.onSwitchUser(to.getUserHandle());
        }
    }