From f1204289fa7098ad9d10042803b987b7f56bccf2 Mon Sep 17 00:00:00 2001 From: Evan Rosky Date: Tue, 3 Aug 2021 20:02:42 -0700 Subject: [PATCH] Fix shell-transit to legacy app-cancel metrics When it performs a no-op, it should notify metrics-logger of activity launch cancellations. Was blindly reporting everything to start, now just report visible stuff. This also fixes a problem during teardown where transition collection wasn't waiting for pending pause. Bug: 183993924 Test: atest ActivityMetricsLoggerTests Change-Id: Ie0d4aea89b7e32744fdbd56a39d6266154015d32 --- services/core/java/com/android/server/wm/TaskFragment.java | 2 ++ services/core/java/com/android/server/wm/Transition.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java index 255e4432753e8..eae6d7e6ffb5a 100644 --- a/services/core/java/com/android/server/wm/TaskFragment.java +++ b/services/core/java/com/android/server/wm/TaskFragment.java @@ -1340,6 +1340,8 @@ class TaskFragment extends WindowContainer { } else { prev.schedulePauseTimeout(); + // Unset readiness since we now need to wait until this pause is complete. + mAtmService.getTransitionController().setReady(this, false /* ready */); return true; } diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index 6bfa611d7a98b..a55fc4e9c3abe 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -657,7 +657,7 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe ArrayMap reasons = new ArrayMap<>(); for (int i = mParticipants.size() - 1; i >= 0; --i) { ActivityRecord r = mParticipants.valueAt(i).asActivityRecord(); - if (r == null) continue; + if (r == null || !r.mVisibleRequested) continue; // At this point, r is "ready", but if it's not "ALL ready" then it is probably only // ready due to starting-window. reasons.put(r, (r.mStartingData instanceof SplashScreenStartingData