From 17370581a9a851dc86567c70d2a836c4e95de2a1 Mon Sep 17 00:00:00 2001 From: Louis Chang Date: Thu, 27 Oct 2022 03:15:28 +0000 Subject: [PATCH] Fix LockTaskModeTests failure NPE throw while running LockTaskModeTests because there is no status bar on some devices, like Android Wear. Bug: 254265883 Test: LockTaskModeTests Change-Id: I5a3b104da19d60b2bf5c52c0c1a16c8625e5b279 --- .../com/android/server/wm/LockTaskController.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/wm/LockTaskController.java b/services/core/java/com/android/server/wm/LockTaskController.java index f11c2a7da840b..dcb7fe3fbc8bd 100644 --- a/services/core/java/com/android/server/wm/LockTaskController.java +++ b/services/core/java/com/android/server/wm/LockTaskController.java @@ -604,7 +604,10 @@ public class LockTaskController { getDevicePolicyManager().notifyLockTaskModeChanged(false, null, userId); } if (oldLockTaskModeState == LOCK_TASK_MODE_PINNED) { - getStatusBarService().showPinningEnterExitToast(false /* entering */); + final IStatusBarService statusBarService = getStatusBarService(); + if (statusBarService != null) { + statusBarService.showPinningEnterExitToast(false /* entering */); + } } mWindowManager.onLockTaskStateChanged(mLockTaskModeState); } catch (RemoteException ex) { @@ -619,7 +622,10 @@ public class LockTaskController { void showLockTaskToast() { if (mLockTaskModeState == LOCK_TASK_MODE_PINNED) { try { - getStatusBarService().showPinningEscapeToast(); + final IStatusBarService statusBarService = getStatusBarService(); + if (statusBarService != null) { + statusBarService.showPinningEscapeToast(); + } } catch (RemoteException e) { Slog.e(TAG, "Failed to send pinning escape toast", e); } @@ -727,7 +733,10 @@ public class LockTaskController { // When lock task starts, we disable the status bars. try { if (lockTaskModeState == LOCK_TASK_MODE_PINNED) { - getStatusBarService().showPinningEnterExitToast(true /* entering */); + final IStatusBarService statusBarService = getStatusBarService(); + if (statusBarService != null) { + statusBarService.showPinningEnterExitToast(true /* entering */); + } } mWindowManager.onLockTaskStateChanged(lockTaskModeState); mLockTaskModeState = lockTaskModeState;