Merge "Adds app enumeration feature"
This commit is contained in:
committed by
Android (Google) Code Review
commit
6565f9636a
@@ -3022,6 +3022,18 @@ public abstract class PackageManager {
|
||||
@SdkConstant(SdkConstantType.FEATURE)
|
||||
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
|
||||
* verifier.
|
||||
|
||||
@@ -1160,6 +1160,10 @@ public class SystemConfig {
|
||||
addFeature(PackageManager.FEATURE_INCREMENTAL_DELIVERY, 0);
|
||||
}
|
||||
|
||||
if (PackageManager.APP_ENUMERATION_ENABLED_BY_DEFAULT) {
|
||||
addFeature(PackageManager.FEATURE_APP_ENUMERATION, 0);
|
||||
}
|
||||
|
||||
for (String featureName : mUnavailableFeatures) {
|
||||
removeFeature(featureName);
|
||||
}
|
||||
|
||||
@@ -69,7 +69,6 @@ public class AppsFilter {
|
||||
// Logs all filtering instead of enforcing
|
||||
private static final boolean DEBUG_ALLOW_ALL = 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
|
||||
@@ -135,7 +134,8 @@ 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 = FEATURE_ENABLED_BY_DEFAULT;
|
||||
private volatile boolean mFeatureEnabled =
|
||||
PackageManager.APP_ENUMERATION_ENABLED_BY_DEFAULT;
|
||||
|
||||
private FeatureConfigImpl(PackageManagerService.Injector injector) {
|
||||
mInjector = injector;
|
||||
@@ -145,14 +145,14 @@ public class AppsFilter {
|
||||
public void onSystemReady() {
|
||||
mFeatureEnabled = DeviceConfig.getBoolean(
|
||||
NAMESPACE_PACKAGE_MANAGER_SERVICE, FILTERING_ENABLED_NAME,
|
||||
FEATURE_ENABLED_BY_DEFAULT);
|
||||
PackageManager.APP_ENUMERATION_ENABLED_BY_DEFAULT);
|
||||
DeviceConfig.addOnPropertiesChangedListener(
|
||||
NAMESPACE_PACKAGE_MANAGER_SERVICE, FgThread.getExecutor(),
|
||||
properties -> {
|
||||
if (properties.getKeyset().contains(FILTERING_ENABLED_NAME)) {
|
||||
synchronized (FeatureConfigImpl.this) {
|
||||
mFeatureEnabled = properties.getBoolean(FILTERING_ENABLED_NAME,
|
||||
FEATURE_ENABLED_BY_DEFAULT);
|
||||
PackageManager.APP_ENUMERATION_ENABLED_BY_DEFAULT);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user