Fixing leak in model tests

> InstallSessionTracker is not released immediately causing large memory objects
  being held by tests

Bug: 198719724
Test: Presubmit
Change-Id: I1d19a2a498a9f255077818dc7d78422367ec1749
This commit is contained in:
Sunny Goyal
2021-09-07 15:33:27 -04:00
parent ce10de7964
commit b45aef3f1c
3 changed files with 71 additions and 48 deletions

View File

@@ -17,7 +17,6 @@
package com.android.launcher3.pm;
import static com.android.launcher3.Utilities.getPrefs;
import static com.android.launcher3.util.Executors.MODEL_EXECUTOR;
import android.content.Context;
import android.content.pm.ApplicationInfo;
@@ -25,7 +24,6 @@ import android.content.pm.LauncherApps;
import android.content.pm.PackageInstaller;
import android.content.pm.PackageInstaller.SessionInfo;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Process;
import android.os.UserHandle;
import android.text.TextUtils;
@@ -238,24 +236,12 @@ public class InstallSessionHelper {
}
public InstallSessionTracker registerInstallTracker(InstallSessionTracker.Callback callback) {
InstallSessionTracker tracker = new InstallSessionTracker(this, callback);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
mInstaller.registerSessionCallback(tracker, MODEL_EXECUTOR.getHandler());
} else {
mLauncherApps.registerPackageInstallerSessionCallback(MODEL_EXECUTOR, tracker);
}
InstallSessionTracker tracker = new InstallSessionTracker(
this, callback, mInstaller, mLauncherApps);
tracker.register();
return tracker;
}
void unregister(InstallSessionTracker tracker) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
mInstaller.unregisterSessionCallback(tracker);
} else {
mLauncherApps.unregisterPackageInstallerSessionCallback(tracker);
}
}
public static UserHandle getUserHandle(SessionInfo info) {
return Utilities.ATLEAST_Q ? info.getUser() : Process.myUserHandle();
}