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

Commit b4945cf9 authored by Louis Chang's avatar Louis Chang
Browse files

Avoid app pinning requests if the Task is already locked

Bug: 378514614
Test: LockTaskControllerTest
Flag: EXEMPT bugfix
Change-Id: Ic5d2125d39e5e98301d79c8f5aa8986a44e06794
parent e1fb10c9
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -653,6 +653,10 @@ public class LockTaskController {
        if (!isSystemCaller) {
            task.mLockTaskUid = callingUid;
            if (task.mLockTaskAuth == LOCK_TASK_AUTH_PINNABLE) {
                if (mLockTaskModeTasks.contains(task)) {
                    ProtoLog.w(WM_DEBUG_LOCKTASK, "Already locked.");
                    return;
                }
                // startLockTask() called by app, but app is not part of lock task allowlist. Show
                // app pinning request. We will come back here with isSystemCaller true.
                ProtoLog.w(WM_DEBUG_LOCKTASK, "Mode default, asking user");
+5 −0
Original line number Diff line number Diff line
@@ -239,6 +239,11 @@ public class LockTaskControllerTest {
        verifyLockTaskStarted(STATUS_BAR_MASK_PINNED, DISABLE2_NONE);
        // THEN screen pinning toast should be shown
        verify(mStatusBarService).showPinningEnterExitToast(eq(true /* entering */));

        // WHEN the app calls startLockTaskMode while the Task is already locked
        mLockTaskController.startLockTaskMode(tr, false, TEST_UID);
        // THEN a pinning request should NOT be shown
        verify(mStatusBarManagerInternal, never()).showScreenPinningRequest(anyInt(), anyInt());
    }

    @Test