Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e54ad1a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Pull background executor back to pm.injector"

parents ecfbd9b3 b1b0ff7d
Loading
Loading
Loading
Loading
+2 −9
Original line number Diff line number Diff line
@@ -35,9 +35,6 @@ import android.content.pm.parsing.component.ParsedInstrumentation;
import android.content.pm.parsing.component.ParsedIntentInfo;
import android.content.pm.parsing.component.ParsedMainComponent;
import android.content.pm.parsing.component.ParsedProvider;
import android.os.Handler;
import android.os.HandlerExecutor;
import android.os.HandlerThread;
import android.os.Process;
import android.os.Trace;
import android.os.UserHandle;
@@ -353,13 +350,9 @@ public class AppsFilter {
                        injector.getUserManagerInternal().getUserInfos());
            }
        };
        HandlerThread appsFilterThread = new HandlerThread("appsFilter");
        appsFilterThread.start();
        Handler appsFilterHandler = new Handler(appsFilterThread.getLooper());
        Executor executor = new HandlerExecutor(appsFilterHandler);

        AppsFilter appsFilter = new AppsFilter(stateProvider, featureConfig,
                forcedQueryablePackageNames, forceSystemAppsQueryable, null, executor);
                forcedQueryablePackageNames, forceSystemAppsQueryable, null,
                injector.getBackgroundExecutor());
        featureConfig.setAppsFilter(appsFilter);
        return appsFilter;
    }
+18 −4
Original line number Diff line number Diff line
@@ -248,6 +248,8 @@ import android.os.Debug;
import android.os.Environment;
import android.os.FileUtils;
import android.os.Handler;
import android.os.HandlerExecutor;
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
@@ -420,6 +422,7 @@ import java.util.Set;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
@@ -924,6 +927,7 @@ public class PackageManagerService extends IPackageManager.Stub
        private final Object mLock;
        private final Installer mInstaller;
        private final Object mInstallLock;
        private final Executor mBackgroundExecutor;
        // ----- producers -----
        private final Singleton<ComponentResolver> mComponentResolverProducer;
@@ -945,6 +949,7 @@ public class PackageManagerService extends IPackageManager.Stub
        Injector(Context context, Object lock, Installer installer,
                Object installLock, PackageAbiHelper abiHelper,
                Executor backgroundExecutor,
                Producer<ComponentResolver> componentResolverProducer,
                Producer<PermissionManagerServiceInternal> permissionManagerProducer,
                Producer<UserManagerService> userManagerProducer,
@@ -966,6 +971,7 @@ public class PackageManagerService extends IPackageManager.Stub
            mInstaller = installer;
            mAbiHelper = abiHelper;
            mInstallLock = installLock;
            mBackgroundExecutor = backgroundExecutor;
            mComponentResolverProducer = new Singleton<>(componentResolverProducer);
            mPermissionManagerProducer = new Singleton<>(permissionManagerProducer);
            mUserManagerProducer = new Singleton<>(userManagerProducer);
@@ -1079,6 +1085,10 @@ public class PackageManagerService extends IPackageManager.Stub
        public PlatformCompat getCompatibility() {
            return mPlatformCompatProducer.get(this, mPackageManager);
        }
        public Executor getBackgroundExecutor() {
            return mBackgroundExecutor;
        }
    }
    @VisibleForTesting(visibility = Visibility.PRIVATE)
@@ -2581,9 +2591,13 @@ public class PackageManagerService extends IPackageManager.Stub
        t.traceBegin("create package manager");
        final Object lock = new Object();
        final Object installLock = new Object();
        HandlerThread backgroundThread = new HandlerThread("PackageManagerBg");
        backgroundThread.start();
        Handler backgroundHandler = new Handler(backgroundThread.getLooper());
        Injector injector = new Injector(
                context, lock, installer, installLock, new PackageAbiHelperImpl(),
                new HandlerExecutor(backgroundHandler),
                (i, pm) ->
                        new ComponentResolver(i.getUserManagerService(), pm.mPmInternal, lock),
                (i, pm) ->