Merge cherrypicks of ['googleplex-android-review.googlesource.com/26603167', 'googleplex-android-review.googlesource.com/26593225', 'googleplex-android-review.googlesource.com/26617299', 'googleplex-android-review.googlesource.com/26601517'] into 24Q2-release.
Change-Id: I6306b3fa5617861f998edbe9bb2cf9bdd93397ca
diff --git a/core/java/com/android/internal/widget/EmphasizedNotificationButton.java b/core/java/com/android/internal/widget/EmphasizedNotificationButton.java
index 3e065bf..01b4569 100644
--- a/core/java/com/android/internal/widget/EmphasizedNotificationButton.java
+++ b/core/java/com/android/internal/widget/EmphasizedNotificationButton.java
@@ -171,7 +171,9 @@
return;
}
- prepareIcon(icon);
+ if (icon != null) {
+ prepareIcon(icon);
+ }
mIconToGlue = icon;
mGluePending = true;
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java
index 87e372c..bd186ba 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java
@@ -1368,7 +1368,7 @@
* Handles all changes to the PictureInPictureParams.
*/
protected void applyNewPictureInPictureParams(@NonNull PictureInPictureParams params) {
- if (mDeferredTaskInfo != null || PipUtils.aspectRatioChanged(params.getAspectRatioFloat(),
+ if (PipUtils.aspectRatioChanged(params.getAspectRatioFloat(),
mPictureInPictureParams.getAspectRatioFloat())) {
if (mPipBoundsAlgorithm.isValidPictureInPictureAspectRatio(
params.getAspectRatioFloat())) {
@@ -1381,8 +1381,7 @@
TAG, params.hasSetAspectRatio(), params.getAspectRatioFloat());
}
}
- if (mDeferredTaskInfo != null
- || PipUtils.remoteActionsChanged(params.getActions(),
+ if (PipUtils.remoteActionsChanged(params.getActions(),
mPictureInPictureParams.getActions())
|| !PipUtils.remoteActionsMatch(params.getCloseAction(),
mPictureInPictureParams.getCloseAction())) {
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 3afaf5a..443f776 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -1914,6 +1914,7 @@
accessibilityManager.performSystemAction(
AccessibilityService.GLOBAL_ACTION_ACCESSIBILITY_ALL_APPS);
}
+ dismissKeyboardShortcutsMenu();
}
private void toggleNotificationPanel() {
diff --git a/services/core/java/com/android/server/wm/RecentTasks.java b/services/core/java/com/android/server/wm/RecentTasks.java
index dd14642..4a09e8d 100644
--- a/services/core/java/com/android/server/wm/RecentTasks.java
+++ b/services/core/java/com/android/server/wm/RecentTasks.java
@@ -1258,6 +1258,11 @@
continue;
}
+ if (otherTask.topRunningActivity() == null) {
+ // Skip if there's no running activity in the Task.
+ continue;
+ }
+
// Stop searching if the task has higher z-ordering, or increase the index and
// continue the search.
if (task.compareTo(otherTask) > 0) {
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
index f7c253d..bfa191e 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
@@ -1210,9 +1210,11 @@
@Test
public void addTask_tasksAreAddedAccordingToZOrder() {
final Task firstTask = new TaskBuilder(mSupervisor).setTaskId(1)
- .setWindowingMode(WINDOWING_MODE_FREEFORM).build();
+ .setWindowingMode(WINDOWING_MODE_FREEFORM)
+ .setCreateActivity(true).build();
final Task secondTask = new TaskBuilder(mSupervisor).setTaskId(2)
- .setWindowingMode(WINDOWING_MODE_FREEFORM).build();
+ .setWindowingMode(WINDOWING_MODE_FREEFORM)
+ .setCreateActivity(true).build();
assertEquals(-1, firstTask.compareTo(secondTask));