From 2a5c839dad8fce78cdd6ea93d37f1607f29a33da Mon Sep 17 00:00:00 2001 From: Martijn Coenen Date: Mon, 1 Oct 2018 10:17:06 +0200 Subject: [PATCH] Fix getDefaultDisplayHomeActivityForUser. And check for null HomeActivity record, To fix NullPointerException in ActivityManagerService. Bug: 116875894 Test: builds Change-Id: I543c235011bf668e0b1bfbc4252a41c49490ac27 --- .../com/android/server/wm/ActivityStackSupervisor.java | 3 +-- .../com/android/server/wm/ActivityTaskManagerService.java | 7 +++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java index 77b331e6c4a9c..f040dd41002be 100644 --- a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java @@ -2611,8 +2611,7 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D } ActivityRecord getDefaultDisplayHomeActivityForUser(int userId) { - getActivityDisplay(DEFAULT_DISPLAY).getHomeActivityForUser(userId); - return null; + return getActivityDisplay(DEFAULT_DISPLAY).getHomeActivityForUser(userId); } void resizeStackLocked(ActivityStack stack, Rect bounds, Rect tempTaskBounds, diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 3ede8bc818e08..195f0485117ed 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -6296,8 +6296,11 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { FLAG_ACTIVITY_TASK_ON_HOME); ActivityOptions activityOptions = options != null ? new ActivityOptions(options) : ActivityOptions.makeBasic(); - activityOptions.setLaunchTaskId( - mStackSupervisor.getDefaultDisplayHomeActivity().getTask().taskId); + final ActivityRecord homeActivity = + mStackSupervisor.getDefaultDisplayHomeActivity(); + if (homeActivity != null) { + activityOptions.setLaunchTaskId(homeActivity.getTask().taskId); + } mContext.startActivityAsUser(intent, activityOptions.toBundle(), UserHandle.CURRENT); } finally {