summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/window/flags/windowing_frontend.aconfig11
-rw-r--r--services/core/java/com/android/server/wm/BackNavigationController.java3
-rw-r--r--services/core/java/com/android/server/wm/SnapshotController.java5
3 files changed, 18 insertions, 1 deletions
diff --git a/core/java/android/window/flags/windowing_frontend.aconfig b/core/java/android/window/flags/windowing_frontend.aconfig
index 3a035087be7f..cefc058d2216 100644
--- a/core/java/android/window/flags/windowing_frontend.aconfig
+++ b/core/java/android/window/flags/windowing_frontend.aconfig
@@ -350,6 +350,17 @@ flag {
}
flag {
+ name: "defer_predictive_animation_if_no_snapshot"
+ namespace: "windowing_frontend"
+ description: "If no snapshot for previous window, start animation until the client has draw."
+ bug: "374621014"
+ is_fixed_read_only: true
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
+
+flag {
name: "disallow_app_progress_embedded_window"
namespace: "windowing_frontend"
description: "Pilfer pointers when app transfer input gesture to embedded window."
diff --git a/services/core/java/com/android/server/wm/BackNavigationController.java b/services/core/java/com/android/server/wm/BackNavigationController.java
index 2fe023e55d31..86d91998b349 100644
--- a/services/core/java/com/android/server/wm/BackNavigationController.java
+++ b/services/core/java/com/android/server/wm/BackNavigationController.java
@@ -1550,6 +1550,9 @@ class BackNavigationController {
}
void createStartingSurface(@Nullable TaskSnapshot snapshot) {
+ if (Flags.deferPredictiveAnimationIfNoSnapshot() && snapshot == null) {
+ return;
+ }
if (mAdaptors[0].mSwitchType == DIALOG_CLOSE) {
return;
}
diff --git a/services/core/java/com/android/server/wm/SnapshotController.java b/services/core/java/com/android/server/wm/SnapshotController.java
index 52994c70f183..3ee2e6048634 100644
--- a/services/core/java/com/android/server/wm/SnapshotController.java
+++ b/services/core/java/com/android/server/wm/SnapshotController.java
@@ -152,7 +152,10 @@ class SnapshotController {
if (mOpenActivities.isEmpty()) {
return false;
}
- if (Flags.alwaysCaptureActivitySnapshot()) {
+ // TODO (b/362183912) always capture activity snapshot will cause performance
+ // regression, remove flag after ramp up
+ if (!Flags.deferPredictiveAnimationIfNoSnapshot()
+ && Flags.alwaysCaptureActivitySnapshot()) {
return true;
}
for (int i = mOpenActivities.size() - 1; i >= 0; --i) {