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

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

Merge "Get compatibility immediately on initialization"

parents f030c7e3 5127b31d
Loading
Loading
Loading
Loading
+6 −13
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ import android.util.SparseArray;
import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
import com.android.server.FgThread;
import com.android.server.compat.PlatformCompat;
import com.android.server.compat.CompatConfig;

import java.io.PrintWriter;
import java.util.ArrayList;
@@ -131,24 +131,22 @@ public class AppsFilter {

    private static class FeatureConfigImpl implements FeatureConfig {
        private static final String FILTERING_ENABLED_NAME = "package_query_filtering_enabled";
        private final PackageManagerService.Injector mInjector;
        private volatile boolean mFeatureEnabled = true;
        private CompatConfig mCompatibility;

        private FeatureConfigImpl(PackageManagerService.Injector injector) {
            mInjector = injector;
            mCompatibility = injector.getCompatibility();
        }

        @Override
        public void onSystemReady() {
            mFeatureEnabled = DeviceConfig.getBoolean(
                    NAMESPACE_PACKAGE_MANAGER_SERVICE, FILTERING_ENABLED_NAME,
                    true);
                    NAMESPACE_PACKAGE_MANAGER_SERVICE, FILTERING_ENABLED_NAME, true);
            DeviceConfig.addOnPropertiesChangedListener(
                    NAMESPACE_PACKAGE_MANAGER_SERVICE, FgThread.getExecutor(),
                    properties -> {
                        synchronized (FeatureConfigImpl.this) {
                            mFeatureEnabled = properties.getBoolean(
                                    FILTERING_ENABLED_NAME, true);
                            mFeatureEnabled = properties.getBoolean(FILTERING_ENABLED_NAME, true);
                        }
                    });
        }
@@ -160,12 +158,7 @@ public class AppsFilter {

        @Override
        public boolean packageIsEnabled(PackageParser.Package pkg) {
            final PlatformCompat compatibility = mInjector.getCompatibility();
            if (compatibility == null) {
                Slog.wtf(TAG, "PlatformCompat is null");
                return mFeatureEnabled;
            }
            return compatibility.isChangeEnabled(
            return mCompatibility.isChangeEnabled(
                    PackageManager.FILTER_APPLICATION_QUERY, pkg.applicationInfo);
        }
    }
+5 −5
Original line number Diff line number Diff line
@@ -299,7 +299,7 @@ import com.android.server.ServiceThread;
import com.android.server.SystemConfig;
import com.android.server.SystemServerInitThreadPool;
import com.android.server.Watchdog;
import com.android.server.compat.PlatformCompat;
import com.android.server.compat.CompatConfig;
import com.android.server.net.NetworkPolicyManagerInternal;
import com.android.server.pm.Installer.InstallerException;
import com.android.server.pm.Settings.DatabaseVersion;
@@ -834,7 +834,7 @@ public class PackageManagerService extends IPackageManager.Stub
        private final Singleton<StorageManager> mStorageManagerProducer;
        private final Singleton<AppOpsManager> mAppOpsManagerProducer;
        private final Singleton<AppsFilter> mAppsFilterProducer;
        private final Singleton<PlatformCompat> mPlatformCompatProducer;
        private final Singleton<CompatConfig> mPlatformCompatProducer;
        Injector(Context context, Object lock, Installer installer,
                Object installLock, PackageAbiHelper abiHelper,
@@ -852,7 +852,7 @@ public class PackageManagerService extends IPackageManager.Stub
                Producer<StorageManager> storageManagerProducer,
                Producer<AppOpsManager> appOpsManagerProducer,
                Producer<AppsFilter> appsFilterProducer,
                Producer<PlatformCompat> platformCompatProducer) {
                Producer<CompatConfig> platformCompatProducer) {
            mContext = context;
            mLock = lock;
            mInstaller = installer;
@@ -963,7 +963,7 @@ public class PackageManagerService extends IPackageManager.Stub
            return mAppsFilterProducer.get(this, mPackageManager);
        }
        public PlatformCompat getCompatibility() {
        public CompatConfig getCompatibility() {
            return mPlatformCompatProducer.get(this, mPackageManager);
        }
    }
@@ -2465,7 +2465,7 @@ public class PackageManagerService extends IPackageManager.Stub
                new Injector.SystemServiceProducer<>(StorageManager.class),
                new Injector.SystemServiceProducer<>(AppOpsManager.class),
                (i, pm) -> AppsFilter.create(i),
                (i, pm) -> (PlatformCompat) ServiceManager.getService("platform_compat"));
                (i, pm) -> CompatConfig.get());
        PackageManagerService m = new PackageManagerService(injector, factoryTest, onlyCore);
        t.traceEnd(); // "create package manager"