Fix getDefaultDisplayHomeActivityForUser.
And check for null HomeActivity record, To fix NullPointerException
in ActivityManagerService.
Bug: 116875894
Test: builds
Change-Id: I543c235011bf668e0b1bfbc4252a41c49490ac27
diff --git a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
index 77b331e..f040dd4 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 @@
}
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 3ede8bc8..195f048 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 @@
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 {