From 921f9fd2547695f3b418440a3df8d0004cae1a16 Mon Sep 17 00:00:00 2001 From: vadimt Date: Mon, 27 Apr 2020 12:38:02 -0700 Subject: [PATCH] Support for counting activity creations Bug: 139137636 Change-Id: Ib999fd3c82eb2997662578ec35e1d9e1e75e3cbb --- .../android/launcher3/ui/AbstractLauncherUiTest.java | 2 +- .../com/android/launcher3/ui/ActivityLeakTracker.java | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java index 9c8e278cf5..160daef636 100644 --- a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java +++ b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java @@ -101,7 +101,7 @@ public abstract class AbstractLauncherUiTest { private static String sStrictmodeDetectedActivityLeak; private static boolean sActivityLeakReported; private static final String SYSTEMUI_PACKAGE = "com.android.systemui"; - private static final ActivityLeakTracker ACTIVITY_LEAK_TRACKER = new ActivityLeakTracker(); + protected static final ActivityLeakTracker ACTIVITY_LEAK_TRACKER = new ActivityLeakTracker(); protected LooperExecutor mMainThreadExecutor = MAIN_EXECUTOR; protected final UiDevice mDevice = UiDevice.getInstance(getInstrumentation()); diff --git a/tests/src/com/android/launcher3/ui/ActivityLeakTracker.java b/tests/src/com/android/launcher3/ui/ActivityLeakTracker.java index e9258e94d2..202dcb181f 100644 --- a/tests/src/com/android/launcher3/ui/ActivityLeakTracker.java +++ b/tests/src/com/android/launcher3/ui/ActivityLeakTracker.java @@ -26,9 +26,11 @@ import com.android.launcher3.tapl.TestHelpers; import java.util.WeakHashMap; -class ActivityLeakTracker implements Application.ActivityLifecycleCallbacks { +public class ActivityLeakTracker implements Application.ActivityLifecycleCallbacks { private final WeakHashMap mActivities = new WeakHashMap<>(); + private int mActivitiesCreated; + ActivityLeakTracker() { if (!TestHelpers.isInLauncherProcess()) return; final Application app = @@ -36,9 +38,14 @@ class ActivityLeakTracker implements Application.ActivityLifecycleCallbacks { app.registerActivityLifecycleCallbacks(this); } + public int getActivitiesCreated() { + return mActivitiesCreated; + } + @Override public void onActivityCreated(Activity activity, Bundle bundle) { mActivities.put(activity, true); + ++mActivitiesCreated; } @Override @@ -77,7 +84,7 @@ class ActivityLeakTracker implements Application.ActivityLifecycleCallbacks { } } - if (liveActivities > 2) return false; + if (liveActivities > 2) return false; // It's OK to have 1 leaked activity if no active activities exist. return liveActivities == 0 ? destroyedActivities <= 1 : destroyedActivities == 0;