diff options
| author | 2025-01-07 20:08:21 -0800 | |
|---|---|---|
| committer | 2025-01-07 20:08:21 -0800 | |
| commit | cafbee16635a412692faec0adea9a1ab17aa7e70 (patch) | |
| tree | f18d96bdc0dc4a443a8aa8ce009bb4e5d0cee22d | |
| parent | 64573113bad87f19deb6aa4376e53ba617dd8a8f (diff) | |
| parent | 9bc35a210ce23c5928044395f12db3f9ff725efc (diff) | |
Merge "Avoid app pinning requests if the Task is already locked" into sc-dev am: 92e535ff9e am: 8eb41eddaf am: 9d25b56848 am: 0a97c13c01 am: 567ac72020 am: 9bc35a210c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/31095990
Change-Id: Id26f0eb38edf9b63ad2585e0f35732c2b33bfd3d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/wm/LockTaskController.java | 4 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/LockTaskControllerTest.java | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/LockTaskController.java b/services/core/java/com/android/server/wm/LockTaskController.java index 0c98fb5000d5..941d612676da 100644 --- a/services/core/java/com/android/server/wm/LockTaskController.java +++ b/services/core/java/com/android/server/wm/LockTaskController.java @@ -652,6 +652,10 @@ public class LockTaskController { if (!isSystemCaller) { task.mLockTaskUid = callingUid; if (task.mLockTaskAuth == LOCK_TASK_AUTH_PINNABLE) { + if (mLockTaskModeTasks.contains(task)) { + Slog.i(TAG_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"); diff --git a/services/tests/wmtests/src/com/android/server/wm/LockTaskControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/LockTaskControllerTest.java index 1d14dc31fa26..587a2363fca2 100644 --- a/services/tests/wmtests/src/com/android/server/wm/LockTaskControllerTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/LockTaskControllerTest.java @@ -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()); } @Test |