summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Yuncheol Heo <ycheo@google.com> 2021-01-28 09:26:28 -0800
committer Yuncheol Heo <ycheo@google.com> 2021-01-28 13:34:04 -0800
commit86df2c575789622a5073ba2f2d0f823a52f9bb1a (patch)
tree18c37ca32c34e6913f4c6d533b42eb089ac00b59
parent9b9486ebf298438c3144bbc9dd27102780f73b52 (diff)
Fix NPE in TaskView.
- TaskInfo can be null before Listener is executed. Bug: 178710250 Test: atest CarDevicePolicyManagerTest Change-Id: I90cd57dbd01692b86924ec1b762e31f91a6cd6e0
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/TaskView.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/TaskView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/TaskView.java
index 1df2a4a9030d..bb8a97344664 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/TaskView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/TaskView.java
@@ -225,8 +225,9 @@ public class TaskView extends SurfaceView implements SurfaceHolder.Callback,
mTaskOrganizer.applyTransaction(wct);
// TODO(b/151449487): Only call callback once we enable synchronization
if (mListener != null) {
+ final int taskId = mTaskInfo.taskId;
mListenerExecutor.execute(() -> {
- mListener.onTaskVisibilityChanged(mTaskInfo.taskId, mSurfaceCreated);
+ mListener.onTaskVisibilityChanged(taskId, mSurfaceCreated);
});
}
}
@@ -256,8 +257,10 @@ public class TaskView extends SurfaceView implements SurfaceHolder.Callback,
}
if (mListener != null) {
+ final int taskId = taskInfo.taskId;
+ final ComponentName baseActivity = taskInfo.baseActivity;
mListenerExecutor.execute(() -> {
- mListener.onTaskCreated(taskInfo.taskId, taskInfo.baseActivity);
+ mListener.onTaskCreated(taskId, baseActivity);
});
}
}
@@ -267,8 +270,9 @@ public class TaskView extends SurfaceView implements SurfaceHolder.Callback,
if (mTaskToken == null || !mTaskToken.equals(taskInfo.token)) return;
if (mListener != null) {
+ final int taskId = taskInfo.taskId;
mListenerExecutor.execute(() -> {
- mListener.onTaskRemovalStarted(taskInfo.taskId);
+ mListener.onTaskRemovalStarted(taskId);
});
}
mTaskOrganizer.setInterceptBackPressedOnTaskRoot(mTaskToken, false);
@@ -289,8 +293,9 @@ public class TaskView extends SurfaceView implements SurfaceHolder.Callback,
public void onBackPressedOnTaskRoot(ActivityManager.RunningTaskInfo taskInfo) {
if (mTaskToken == null || !mTaskToken.equals(taskInfo.token)) return;
if (mListener != null) {
+ final int taskId = taskInfo.taskId;
mListenerExecutor.execute(() -> {
- mListener.onBackPressedOnTaskRoot(taskInfo.taskId);
+ mListener.onBackPressedOnTaskRoot(taskId);
});
}
}