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

Commit 6565f963 authored by Patrick Baumann's avatar Patrick Baumann Committed by Android (Google) Code Review
Browse files

Merge "Adds app enumeration feature"

parents c7d6a8c1 f2fe03f5
Loading
Loading
Loading
Loading
+12 −0
Original line number Original line Diff line number Diff line
@@ -3022,6 +3022,18 @@ public abstract class PackageManager {
    @SdkConstant(SdkConstantType.FEATURE)
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_TUNER = "android.hardware.tv.tuner";
    public static final String FEATURE_TUNER = "android.hardware.tv.tuner";


    /**
     * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}: The device has
     * the necessary changes to support app enumeration.
     *
     * @hide
     */
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_APP_ENUMERATION = "android.software.app_enumeration";

    /** @hide */
    public static final boolean APP_ENUMERATION_ENABLED_BY_DEFAULT = true;

    /**
    /**
     * Extra field name for the URI to a verification file. Passed to a package
     * Extra field name for the URI to a verification file. Passed to a package
     * verifier.
     * verifier.
+4 −0
Original line number Original line Diff line number Diff line
@@ -1160,6 +1160,10 @@ public class SystemConfig {
            addFeature(PackageManager.FEATURE_INCREMENTAL_DELIVERY, 0);
            addFeature(PackageManager.FEATURE_INCREMENTAL_DELIVERY, 0);
        }
        }


        if (PackageManager.APP_ENUMERATION_ENABLED_BY_DEFAULT) {
            addFeature(PackageManager.FEATURE_APP_ENUMERATION, 0);
        }

        for (String featureName : mUnavailableFeatures) {
        for (String featureName : mUnavailableFeatures) {
            removeFeature(featureName);
            removeFeature(featureName);
        }
        }
+4 −4
Original line number Original line Diff line number Diff line
@@ -69,7 +69,6 @@ public class AppsFilter {
    // Logs all filtering instead of enforcing
    // Logs all filtering instead of enforcing
    private static final boolean DEBUG_ALLOW_ALL = false;
    private static final boolean DEBUG_ALLOW_ALL = false;
    private static final boolean DEBUG_LOGGING = false;
    private static final boolean DEBUG_LOGGING = false;
    private static final boolean FEATURE_ENABLED_BY_DEFAULT = true;


    /**
    /**
     * This contains a list of app UIDs that are implicitly queryable because another app explicitly
     * This contains a list of app UIDs that are implicitly queryable because another app explicitly
@@ -135,7 +134,8 @@ public class AppsFilter {
    private static class FeatureConfigImpl implements FeatureConfig {
    private static class FeatureConfigImpl implements FeatureConfig {
        private static final String FILTERING_ENABLED_NAME = "package_query_filtering_enabled";
        private static final String FILTERING_ENABLED_NAME = "package_query_filtering_enabled";
        private final PackageManagerService.Injector mInjector;
        private final PackageManagerService.Injector mInjector;
        private volatile boolean mFeatureEnabled = FEATURE_ENABLED_BY_DEFAULT;
        private volatile boolean mFeatureEnabled =
                PackageManager.APP_ENUMERATION_ENABLED_BY_DEFAULT;


        private FeatureConfigImpl(PackageManagerService.Injector injector) {
        private FeatureConfigImpl(PackageManagerService.Injector injector) {
            mInjector = injector;
            mInjector = injector;
@@ -145,14 +145,14 @@ public class AppsFilter {
        public void onSystemReady() {
        public void onSystemReady() {
            mFeatureEnabled = DeviceConfig.getBoolean(
            mFeatureEnabled = DeviceConfig.getBoolean(
                    NAMESPACE_PACKAGE_MANAGER_SERVICE, FILTERING_ENABLED_NAME,
                    NAMESPACE_PACKAGE_MANAGER_SERVICE, FILTERING_ENABLED_NAME,
                    FEATURE_ENABLED_BY_DEFAULT);
                    PackageManager.APP_ENUMERATION_ENABLED_BY_DEFAULT);
            DeviceConfig.addOnPropertiesChangedListener(
            DeviceConfig.addOnPropertiesChangedListener(
                    NAMESPACE_PACKAGE_MANAGER_SERVICE, FgThread.getExecutor(),
                    NAMESPACE_PACKAGE_MANAGER_SERVICE, FgThread.getExecutor(),
                    properties -> {
                    properties -> {
                        if (properties.getKeyset().contains(FILTERING_ENABLED_NAME)) {
                        if (properties.getKeyset().contains(FILTERING_ENABLED_NAME)) {
                            synchronized (FeatureConfigImpl.this) {
                            synchronized (FeatureConfigImpl.this) {
                                mFeatureEnabled = properties.getBoolean(FILTERING_ENABLED_NAME,
                                mFeatureEnabled = properties.getBoolean(FILTERING_ENABLED_NAME,
                                        FEATURE_ENABLED_BY_DEFAULT);
                                        PackageManager.APP_ENUMERATION_ENABLED_BY_DEFAULT);
                            }
                            }
                        }
                        }
                    });
                    });