diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2019-09-18 13:53:36 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2019-09-18 13:53:36 -0700 |
commit | 3adf6ff5a2de10a131e4949cec622fc228d8dbd4 (patch) | |
tree | 1193b8afdf3452a270d019ea46f8a04f679e3ffc | |
parent | 757d62dcaa25f368750e5bdf629c407eb118490a (diff) | |
parent | a0aee21fcd9efe24e974c46827fef2f14cb30119 (diff) | |
download | android_packages_apps_Trebuchet-3adf6ff5a2de10a131e4949cec622fc228d8dbd4.tar.gz android_packages_apps_Trebuchet-3adf6ff5a2de10a131e4949cec622fc228d8dbd4.tar.bz2 android_packages_apps_Trebuchet-3adf6ff5a2de10a131e4949cec622fc228d8dbd4.zip |
Merging ub-launcher3-qt-qpr1-dev, build 5884665
Test: Manual
Bug:135864059 P4 [Live Tiles] Empty launcher
Bug:139137636 P2 Create memory tests for Launcher
Bug:139281702 P2 [Enterprise - Cloud DO] GSOC and Mobile Utilities launcher icons are in broken state
Bug:140837771 P1 Failing test: AddConfigWidgetTests and AddWidgetTests are failing
Bug:141024521 P2 Tapping nav bar during quick switch causes scroll animation to cancel and not resume
Bug:141184247 P1 Clear all button not present in fallback recents in 3-button mode
Change-Id: I99f4db995a2af5959d5be4182f4e47bb67c9cbc4
16 files changed, 122 insertions, 45 deletions
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/AppToOverviewAnimationProvider.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/AppToOverviewAnimationProvider.java index 5ebefa337..ad90e1686 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/AppToOverviewAnimationProvider.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/AppToOverviewAnimationProvider.java @@ -102,6 +102,7 @@ final class AppToOverviewAnimationProvider<T extends BaseDraggingActivity> imple anim.addListener(new AnimationSuccessListener() { @Override public void onAnimationSuccess(Animator animator) { + mHelper.onSwipeUpToRecentsComplete(mActivity); if (mRecentsView != null) { mRecentsView.animateUpRunningTaskIconScale(); } diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java index 3e1d61aca..d98ef425e 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java @@ -941,6 +941,10 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl } } + public boolean isTaskIconScaledDown(TaskView taskView) { + return mRunningTaskIconScaledDown && getRunningTaskView() == taskView; + } + private void applyRunningTaskIconScale() { TaskView firstTask = getRunningTaskView(); if (firstTask != null) { diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java index 2211eb4dd..bfb961320 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java @@ -28,7 +28,6 @@ import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.animation.TimeInterpolator; import android.animation.ValueAnimator; -import android.animation.ValueAnimator.AnimatorUpdateListener; import android.app.ActivityOptions; import android.content.Context; import android.content.res.Resources; @@ -54,7 +53,6 @@ import com.android.launcher3.Utilities; import com.android.launcher3.anim.AnimatorPlaybackController; import com.android.launcher3.anim.Interpolators; import com.android.launcher3.logging.UserEventDispatcher; -import com.android.launcher3.testing.TestProtocol; import com.android.launcher3.userevent.nano.LauncherLogProto; import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Direction; import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch; @@ -818,8 +816,11 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { / (getWidth() + currentInsetsLeft + currentInsetsRight)); } - // Some of the items in here are dependent on the current fullscreen params - setIconScaleAndDim(progress, true /* invert */); + if (!getRecentsView().isTaskIconScaledDown(this)) { + // Some of the items in here are dependent on the current fullscreen params, but don't + // update them if the icon is supposed to be scaled down. + setIconScaleAndDim(progress, true /* invert */); + } thumbnail.setFullscreenParams(mCurrentFullscreenParams); mOutlineProvider.setFullscreenParams(mCurrentFullscreenParams); diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index bbb3915b5..70b55a44d 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -890,23 +890,7 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou mTotalMotionX = 0; mActivePointerId = ev.getPointerId(0); - /* - * If being flinged and user touches the screen, initiate drag; - * otherwise don't. mScroller.isFinished should be false when - * being flinged. - */ - final int xDist = Math.abs(mScroller.getFinalPos() - mScroller.getCurrPos()); - final boolean finishedScrolling = (mScroller.isFinished() || xDist < mTouchSlop / 3); - - if (finishedScrolling) { - mIsBeingDragged = false; - if (!mScroller.isFinished() && !mFreeScroll) { - setCurrentPage(getNextPage()); - pageEndTransition(); - } - } else { - mIsBeingDragged = true; - } + updateIsBeingDraggedOnTouchDown(); break; } @@ -929,6 +913,25 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou return mIsBeingDragged; } + /** + * If being flinged and user touches the screen, initiate drag; otherwise don't. + */ + private void updateIsBeingDraggedOnTouchDown() { + // mScroller.isFinished should be false when being flinged. + final int xDist = Math.abs(mScroller.getFinalPos() - mScroller.getCurrPos()); + final boolean finishedScrolling = (mScroller.isFinished() || xDist < mTouchSlop / 3); + + if (finishedScrolling) { + mIsBeingDragged = false; + if (!mScroller.isFinished() && !mFreeScroll) { + setCurrentPage(getNextPage()); + pageEndTransition(); + } + } else { + mIsBeingDragged = true; + } + } + public boolean isHandlingTouch() { return mIsBeingDragged; } @@ -1104,6 +1107,8 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou switch (action & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: + updateIsBeingDraggedOnTouchDown(); + /* * If being flinged and user touches, stop the fling. isFinished * will be false if being flinged. diff --git a/src/com/android/launcher3/compat/PackageInstallerCompat.java b/src/com/android/launcher3/compat/PackageInstallerCompat.java index 11cb1f88d..55df98b48 100644 --- a/src/com/android/launcher3/compat/PackageInstallerCompat.java +++ b/src/com/android/launcher3/compat/PackageInstallerCompat.java @@ -19,6 +19,7 @@ package com.android.launcher3.compat; import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageInstaller; +import android.content.pm.PackageInstaller.SessionInfo; import android.os.Process; import android.os.UserHandle; @@ -29,6 +30,7 @@ import java.util.List; import androidx.annotation.NonNull; import com.android.launcher3.Utilities; +import com.android.launcher3.util.PackageUserKey; public abstract class PackageInstallerCompat { @@ -52,19 +54,19 @@ public abstract class PackageInstallerCompat { } } - public static UserHandle getUserHandle(PackageInstaller.SessionInfo info) { + public static UserHandle getUserHandle(SessionInfo info) { return Utilities.ATLEAST_Q ? info.getUser() : Process.myUserHandle(); } /** * @return a map of active installs to their progress */ - public abstract HashMap<String, PackageInstaller.SessionInfo> updateAndGetActiveSessionCache(); + public abstract HashMap<PackageUserKey, SessionInfo> updateAndGetActiveSessionCache(); /** * @return an active SessionInfo for {@param pkg} or null if none exists. */ - public abstract PackageInstaller.SessionInfo getActiveSessionInfo(UserHandle user, String pkg); + public abstract SessionInfo getActiveSessionInfo(UserHandle user, String pkg); public abstract void onStop(); @@ -75,7 +77,7 @@ public abstract class PackageInstallerCompat { public final int progress; public final UserHandle user; - private PackageInstallInfo(@NonNull PackageInstaller.SessionInfo info) { + private PackageInstallInfo(@NonNull SessionInfo info) { this.state = STATUS_INSTALLING; this.packageName = info.getAppPackageName(); this.componentName = new ComponentName(packageName, ""); @@ -91,7 +93,7 @@ public abstract class PackageInstallerCompat { this.user = user; } - public static PackageInstallInfo fromInstallingState(PackageInstaller.SessionInfo info) { + public static PackageInstallInfo fromInstallingState(SessionInfo info) { return new PackageInstallInfo(info); } @@ -101,7 +103,7 @@ public abstract class PackageInstallerCompat { } - public abstract List<PackageInstaller.SessionInfo> getAllVerifiedSessions(); + public abstract List<SessionInfo> getAllVerifiedSessions(); /** * Returns true if a promise icon was already added to the home screen for {@param sessionId}. diff --git a/src/com/android/launcher3/compat/PackageInstallerCompatVL.java b/src/com/android/launcher3/compat/PackageInstallerCompatVL.java index ee9da7372..879d963c7 100644 --- a/src/com/android/launcher3/compat/PackageInstallerCompatVL.java +++ b/src/com/android/launcher3/compat/PackageInstallerCompatVL.java @@ -90,12 +90,13 @@ public class PackageInstallerCompatVL extends PackageInstallerCompat { } @Override - public HashMap<String, SessionInfo> updateAndGetActiveSessionCache() { - HashMap<String, SessionInfo> activePackages = new HashMap<>(); + public HashMap<PackageUserKey, SessionInfo> updateAndGetActiveSessionCache() { + HashMap<PackageUserKey, SessionInfo> activePackages = new HashMap<>(); for (SessionInfo info : getAllVerifiedSessions()) { addSessionInfoToCache(info, getUserHandle(info)); if (info.getAppPackageName() != null) { - activePackages.put(info.getAppPackageName(), info); + activePackages.put(new PackageUserKey(info.getAppPackageName(), + getUserHandle(info)), info); mActiveSessions.put(info.getSessionId(), new PackageUserKey(info.getAppPackageName(), getUserHandle(info))); } diff --git a/src/com/android/launcher3/model/FirstScreenBroadcast.java b/src/com/android/launcher3/model/FirstScreenBroadcast.java index 1149b553f..a0b717763 100644 --- a/src/com/android/launcher3/model/FirstScreenBroadcast.java +++ b/src/com/android/launcher3/model/FirstScreenBroadcast.java @@ -26,6 +26,7 @@ import com.android.launcher3.ItemInfo; import com.android.launcher3.LauncherAppWidgetInfo; import com.android.launcher3.LauncherSettings; import com.android.launcher3.util.MultiHashMap; +import com.android.launcher3.util.PackageUserKey; import java.util.ArrayList; import java.util.HashMap; @@ -34,6 +35,8 @@ import java.util.List; import java.util.Map; import java.util.Set; +import static android.os.Process.myUserHandle; + /** * Helper class to send broadcasts to package installers that have: * - Items on the first screen @@ -60,7 +63,7 @@ public class FirstScreenBroadcast { private final MultiHashMap<String, String> mPackagesForInstaller; - public FirstScreenBroadcast(HashMap<String, SessionInfo> sessionInfoForPackage) { + public FirstScreenBroadcast(HashMap<PackageUserKey, SessionInfo> sessionInfoForPackage) { mPackagesForInstaller = getPackagesForInstaller(sessionInfoForPackage); } @@ -69,11 +72,13 @@ public class FirstScreenBroadcast { * of packages with active sessions for that installer. */ private MultiHashMap<String, String> getPackagesForInstaller( - HashMap<String, SessionInfo> sessionInfoForPackage) { + HashMap<PackageUserKey, SessionInfo> sessionInfoForPackage) { MultiHashMap<String, String> packagesForInstaller = new MultiHashMap<>(); - for (Map.Entry<String, SessionInfo> entry : sessionInfoForPackage.entrySet()) { - packagesForInstaller.addToList(entry.getValue().getInstallerPackageName(), - entry.getKey()); + for (Map.Entry<PackageUserKey, SessionInfo> entry : sessionInfoForPackage.entrySet()) { + if (myUserHandle().equals(entry.getKey().mUser)) { + packagesForInstaller.addToList(entry.getValue().getInstallerPackageName(), + entry.getKey().mPackageName); + } } return packagesForInstaller; } diff --git a/src/com/android/launcher3/model/GridSizeMigrationTask.java b/src/com/android/launcher3/model/GridSizeMigrationTask.java index faecc067e..783e908e3 100644 --- a/src/com/android/launcher3/model/GridSizeMigrationTask.java +++ b/src/com/android/launcher3/model/GridSizeMigrationTask.java @@ -34,10 +34,12 @@ import com.android.launcher3.provider.LauncherDbUtils.SQLiteTransaction; import com.android.launcher3.util.GridOccupancy; import com.android.launcher3.util.IntArray; import com.android.launcher3.util.IntSparseArrayMap; +import com.android.launcher3.util.PackageUserKey; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; +import java.util.function.Consumer; import androidx.annotation.VisibleForTesting; @@ -970,8 +972,9 @@ public class GridSizeMigrationTask { .getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES)) { validPackages.add(info.packageName); } - validPackages.addAll(PackageInstallerCompat.getInstance(context) - .updateAndGetActiveSessionCache().keySet()); + PackageInstallerCompat.getInstance(context) + .updateAndGetActiveSessionCache().keySet() + .forEach(packageUserKey -> validPackages.add(packageUserKey.mPackageName)); return validPackages; } diff --git a/src/com/android/launcher3/model/LoaderTask.java b/src/com/android/launcher3/model/LoaderTask.java index 4b01b5ed1..7593a3371 100644 --- a/src/com/android/launcher3/model/LoaderTask.java +++ b/src/com/android/launcher3/model/LoaderTask.java @@ -19,6 +19,7 @@ package com.android.launcher3.model; import static com.android.launcher3.ItemInfoWithIcon.FLAG_DISABLED_LOCKED_USER; import static com.android.launcher3.ItemInfoWithIcon.FLAG_DISABLED_SAFEMODE; import static com.android.launcher3.ItemInfoWithIcon.FLAG_DISABLED_SUSPENDED; +import static com.android.launcher3.compat.PackageInstallerCompat.getUserHandle; import static com.android.launcher3.model.LoaderResults.filterCurrentWorkspaceItems; import android.appwidget.AppWidgetProviderInfo; @@ -72,6 +73,7 @@ import com.android.launcher3.util.ComponentKey; import com.android.launcher3.util.LooperIdleLock; import com.android.launcher3.util.MultiHashMap; import com.android.launcher3.util.PackageManagerHelper; +import com.android.launcher3.util.PackageUserKey; import com.android.launcher3.util.TraceHelper; import java.util.ArrayList; @@ -281,8 +283,9 @@ public class LoaderTask implements Runnable { synchronized (mBgDataModel) { mBgDataModel.clear(); - final HashMap<String, SessionInfo> installingPkgs = + final HashMap<PackageUserKey, SessionInfo> installingPkgs = mPackageInstaller.updateAndGetActiveSessionCache(); + final PackageUserKey tempPackageKey = new PackageUserKey(null, null); mFirstScreenBroadcast = new FirstScreenBroadcast(installingPkgs); Map<ShortcutKey, ShortcutInfo> shortcutKeyToPinnedShortcuts = new HashMap<>(); @@ -419,9 +422,10 @@ public class LoaderTask implements Runnable { // installed later. FileLog.d(TAG, "package not yet restored: " + targetPkg); + tempPackageKey.update(targetPkg, c.user); if (c.hasRestoreFlag(WorkspaceItemInfo.FLAG_RESTORE_STARTED)) { // Restore has started once. - } else if (installingPkgs.containsKey(targetPkg)) { + } else if (installingPkgs.containsKey(tempPackageKey)) { // App restore has started. Update the flag c.restoreFlag |= WorkspaceItemInfo.FLAG_RESTORE_STARTED; c.updater().put(LauncherSettings.Favorites.RESTORED, @@ -536,7 +540,8 @@ public class LoaderTask implements Runnable { } if (c.restoreFlag != 0 && !TextUtils.isEmpty(targetPkg)) { - SessionInfo si = installingPkgs.get(targetPkg); + tempPackageKey.update(targetPkg, c.user); + SessionInfo si = installingPkgs.get(tempPackageKey); if (si == null) { info.status &= ~WorkspaceItemInfo.FLAG_INSTALL_SESSION_ACTIVE; } else { @@ -630,8 +635,10 @@ public class LoaderTask implements Runnable { appWidgetInfo = new LauncherAppWidgetInfo(appWidgetId, component); appWidgetInfo.restoreStatus = c.restoreFlag; + + tempPackageKey.update(component.getPackageName(), c.user); SessionInfo si = - installingPkgs.get(component.getPackageName()); + installingPkgs.get(tempPackageKey); Integer installProgress = si == null ? null : (int) (si.getProgress() * 100); diff --git a/src/com/android/launcher3/testing/TestInformationHandler.java b/src/com/android/launcher3/testing/TestInformationHandler.java index 243ff6f96..790a2e844 100644 --- a/src/com/android/launcher3/testing/TestInformationHandler.java +++ b/src/com/android/launcher3/testing/TestInformationHandler.java @@ -15,7 +15,11 @@ */ package com.android.launcher3.testing; +import static android.graphics.Bitmap.Config.ARGB_8888; + import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Color; import android.os.Bundle; import android.os.Debug; @@ -29,6 +33,7 @@ import com.android.launcher3.R; import com.android.launcher3.allapps.AllAppsStore; import com.android.launcher3.util.ResourceBasedOverride; +import java.util.LinkedList; import java.util.concurrent.ExecutionException; public class TestInformationHandler implements ResourceBasedOverride { @@ -42,6 +47,7 @@ public class TestInformationHandler implements ResourceBasedOverride { protected DeviceProfile mDeviceProfile; protected LauncherAppState mLauncherAppState; protected Launcher mLauncher; + private static LinkedList mLeaks; public void init(Context context) { mContext = context; @@ -120,6 +126,29 @@ public class TestInformationHandler implements ResourceBasedOverride { response.putInt(TestProtocol.TEST_INFO_RESPONSE_FIELD, mem.getTotalPss()); break; } + + case TestProtocol.REQUEST_JAVA_LEAK: { + if (mLeaks == null) mLeaks = new LinkedList(); + + // Allocate and dirty the memory. + final int leakSize = 1024 * 1024; + final byte[] bytes = new byte[leakSize]; + for (int i = 0; i < leakSize; i += 239) { + bytes[i] = (byte) (i % 256); + } + mLeaks.add(bytes); + break; + } + + case TestProtocol.REQUEST_NATIVE_LEAK: { + if (mLeaks == null) mLeaks = new LinkedList(); + + // Allocate and dirty a bitmap. + final Bitmap bitmap = Bitmap.createBitmap(512, 512, ARGB_8888); + bitmap.eraseColor(Color.RED); + mLeaks.add(bitmap); + break; + } } return response; } diff --git a/src/com/android/launcher3/testing/TestProtocol.java b/src/com/android/launcher3/testing/TestProtocol.java index 60a59ddfa..232a764e0 100644 --- a/src/com/android/launcher3/testing/TestProtocol.java +++ b/src/com/android/launcher3/testing/TestProtocol.java @@ -74,6 +74,8 @@ public final class TestProtocol { public static final String REQUEST_OVERVIEW_LEFT_GESTURE_MARGIN = "overview-left-margin"; public static final String REQUEST_OVERVIEW_RIGHT_GESTURE_MARGIN = "overview-right-margin"; public static final String REQUEST_TOTAL_PSS_KB = "total_pss"; + public static final String REQUEST_JAVA_LEAK = "java-leak"; + public static final String REQUEST_NATIVE_LEAK = "native-leak"; public static boolean sDebugTracing = false; public static final String REQUEST_ENABLE_DEBUG_TRACING = "enable-debug-tracing"; diff --git a/src/com/android/launcher3/util/PackageUserKey.java b/src/com/android/launcher3/util/PackageUserKey.java index 8dc45f547..aa11968e4 100644 --- a/src/com/android/launcher3/util/PackageUserKey.java +++ b/src/com/android/launcher3/util/PackageUserKey.java @@ -31,7 +31,7 @@ public class PackageUserKey { update(packageName, user); } - private void update(String packageName, UserHandle user) { + public void update(String packageName, UserHandle user) { mPackageName = packageName; mUser = user; mHashCode = Arrays.hashCode(new Object[] {packageName, user}); diff --git a/tests/src/com/android/launcher3/ui/widget/AddConfigWidgetTest.java b/tests/src/com/android/launcher3/ui/widget/AddConfigWidgetTest.java index 7f427b303..3f35a3a73 100644 --- a/tests/src/com/android/launcher3/ui/widget/AddConfigWidgetTest.java +++ b/tests/src/com/android/launcher3/ui/widget/AddConfigWidgetTest.java @@ -70,12 +70,14 @@ public class AddConfigWidgetTest extends AbstractLauncherUiTest { @Test @PortraitLandscape + @org.junit.Ignore public void testWidgetConfig() throws Throwable { runTest(true); } @Test @PortraitLandscape + @org.junit.Ignore public void testConfigCancelled() throws Throwable { runTest(false); } diff --git a/tests/src/com/android/launcher3/ui/widget/AddWidgetTest.java b/tests/src/com/android/launcher3/ui/widget/AddWidgetTest.java index cb586aceb..1edce22ec 100644 --- a/tests/src/com/android/launcher3/ui/widget/AddWidgetTest.java +++ b/tests/src/com/android/launcher3/ui/widget/AddWidgetTest.java @@ -46,6 +46,7 @@ public class AddWidgetTest extends AbstractLauncherUiTest { @Test @PortraitLandscape + @org.junit.Ignore public void testDragIcon() throws Throwable { clearHomescreen(); mDevice.pressHome(); diff --git a/tests/src/com/android/launcher3/ui/widget/BindWidgetTest.java b/tests/src/com/android/launcher3/ui/widget/BindWidgetTest.java index 3a7df64e8..e6348d9c0 100644 --- a/tests/src/com/android/launcher3/ui/widget/BindWidgetTest.java +++ b/tests/src/com/android/launcher3/ui/widget/BindWidgetTest.java @@ -44,6 +44,7 @@ import com.android.launcher3.tapl.Workspace; import com.android.launcher3.ui.AbstractLauncherUiTest; import com.android.launcher3.ui.TestViewHelpers; import com.android.launcher3.util.ContentWriter; +import com.android.launcher3.util.PackageUserKey; import com.android.launcher3.util.rule.ShellCommandRule; import com.android.launcher3.widget.PendingAddWidgetInfo; import com.android.launcher3.widget.WidgetHostViewLoader; @@ -54,7 +55,9 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import java.util.HashSet; import java.util.Set; +import java.util.function.Consumer; /** * Tests for bind widget flow. @@ -326,9 +329,12 @@ public class BindWidgetTest extends AbstractLauncherUiTest { int count = 0; String pkg = invalidPackage; - Set<String> activePackage = getOnUiThread(() -> - PackageInstallerCompat.getInstance(mTargetContext) - .updateAndGetActiveSessionCache().keySet()); + Set<String> activePackage = getOnUiThread(() -> { + Set<String> packages = new HashSet<>(); + PackageInstallerCompat.getInstance(mTargetContext).updateAndGetActiveSessionCache() + .keySet().forEach(packageUserKey -> packages.add(packageUserKey.mPackageName)); + return packages; + }); while(true) { try { mTargetContext.getPackageManager().getPackageInfo( diff --git a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java index c6e7daceb..15615fc6b 100644 --- a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java +++ b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java @@ -961,4 +961,12 @@ public final class LauncherInstrumentation { return getTestInfo(TestProtocol.REQUEST_TOTAL_PSS_KB). getInt(TestProtocol.TEST_INFO_RESPONSE_FIELD); } + + public void produceJavaLeak() { + getTestInfo(TestProtocol.REQUEST_JAVA_LEAK); + } + + public void produceNativeLeak() { + getTestInfo(TestProtocol.REQUEST_NATIVE_LEAK); + } }
\ No newline at end of file |