Loading api/system-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -1577,6 +1577,7 @@ package android.content.pm { method @RequiresPermission("android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS") public abstract void addOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener); method public abstract boolean arePermissionsIndividuallyControlled(); method public abstract java.util.List<android.content.IntentFilter> getAllIntentFilters(String); method public boolean getAppDetailsActivityEnabled(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public android.content.pm.ApplicationInfo getApplicationInfoAsUser(@NonNull String, int, @NonNull android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException; method @NonNull public android.content.pm.dex.ArtManager getArtManager(); method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public abstract String getDefaultBrowserPackageNameAsUser(int); Loading @@ -1603,6 +1604,7 @@ package android.content.pm { method @Deprecated public void replacePreferredActivity(@NonNull android.content.IntentFilter, int, @NonNull java.util.List<android.content.ComponentName>, @NonNull android.content.ComponentName); method @RequiresPermission(android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS) public abstract void revokeRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle); method public void sendDeviceCustomizationReadyBroadcast(); method @RequiresPermission(value=android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE, conditional=true) public void setAppDetailsActivityEnabled(@NonNull String, boolean); method @RequiresPermission(allOf={android.Manifest.permission.SET_PREFERRED_APPLICATIONS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public abstract boolean setDefaultBrowserPackageNameAsUser(String, int); method @NonNull @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setDistractingPackageRestrictions(@NonNull String[], int); method @RequiresPermission(android.Manifest.permission.SET_HARMFUL_APP_WARNINGS) public void setHarmfulAppWarning(@NonNull String, @Nullable CharSequence); Loading core/java/android/app/ApplicationPackageManager.java +27 −0 Original line number Diff line number Diff line Loading @@ -2468,6 +2468,33 @@ public class ApplicationPackageManager extends PackageManager { } } @Override public void setAppDetailsActivityEnabled(String packageName, boolean enabled) { try { ComponentName componentName = new ComponentName(packageName, PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME); mPM.setComponentEnabledSetting(componentName, enabled ? PackageManager.COMPONENT_ENABLED_STATE_DEFAULT : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP, getUserId()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } @Override public boolean getAppDetailsActivityEnabled(String packageName) { try { ComponentName componentName = new ComponentName(packageName, PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME); int state = mPM.getComponentEnabledSetting(componentName, getUserId()); return state == PackageManager.COMPONENT_ENABLED_STATE_ENABLED || state == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT; } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } @Override public void setComponentEnabledSetting(ComponentName componentName, int newState, int flags) { Loading core/java/android/content/pm/PackageManager.java +39 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.annotation.UnsupportedAppUsage; import android.annotation.UserIdInt; import android.annotation.XmlRes; import android.app.ActivityManager; import android.app.AppDetailsActivity; import android.app.PackageDeleteObserver; import android.app.PackageInstallObserver; import android.app.admin.DevicePolicyManager; Loading Loading @@ -3029,6 +3030,13 @@ public abstract class PackageManager { @SystemApi public static final int MASK_PERMISSION_FLAGS = 0xFF; /** * Injected activity in app that forwards user to setting activity of that app. * * @hide */ public static final String APP_DETAILS_ACTIVITY_CLASS_NAME = AppDetailsActivity.class.getName(); /** * This is a library that contains components apps can invoke. For * example, a services for apps to bind to, or standard chooser UI, Loading Loading @@ -5791,6 +5799,37 @@ public abstract class PackageManager { public abstract @EnabledState int getComponentEnabledSetting( @NonNull ComponentName componentName); /** * Set the enabled setting for a package app settings activity. * * @param packageName The package name of the app * @param enabled The new enabled state for app details activity * * @hide */ @RequiresPermission(value = android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE, conditional = true) @SystemApi public void setAppDetailsActivityEnabled(@NonNull String packageName, boolean enabled) { throw new UnsupportedOperationException( "setAppDetailsActivityEnabled not implemented"); } /** * Return the enabled setting for a package app settings activity. * * @param packageName The package name of the app * @return Returns the current enabled state for app settings activity. * * @hide */ @SystemApi public boolean getAppDetailsActivityEnabled(@NonNull String packageName) { throw new UnsupportedOperationException( "getAppDetailsActivityEnabled not implemented"); } /** * Set the enabled setting for an application * This setting will override any enabled state which may have been set by the application in Loading core/java/android/content/pm/PackageParser.java +4 −4 Original line number Diff line number Diff line Loading @@ -48,7 +48,6 @@ import android.annotation.Nullable; import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.app.ActivityTaskManager; import android.app.AppDetailsActivity; import android.content.ComponentName; import android.content.Intent; import android.content.IntentFilter; Loading Loading @@ -4311,7 +4310,7 @@ public class PackageParser { } else { String outInfoName = buildClassName(owner.applicationInfo.packageName, name, outError); if (AppDetailsActivity.class.getName().equals(outInfoName)) { if (PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME.equals(outInfoName)) { outError[0] = tag + " invalid android:name"; return false; } Loading Loading @@ -4364,13 +4363,14 @@ public class PackageParser { boolean hardwareAccelerated) { // Build custom App Details activity info instead of parsing it from xml Activity a = new Activity(owner, AppDetailsActivity.class.getName(), new ActivityInfo()); Activity a = new Activity(owner, PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME, new ActivityInfo()); a.owner = owner; a.setPackageName(owner.packageName); a.info.theme = android.R.style.Theme_NoDisplay; a.info.exported = true; a.info.name = AppDetailsActivity.class.getName(); a.info.name = PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME; a.info.processName = owner.applicationInfo.processName; a.info.uiOptions = a.info.applicationInfo.uiOptions; a.info.taskAffinity = buildTaskAffinityName(owner.packageName, owner.packageName, Loading services/core/java/com/android/server/pm/LauncherAppsService.java +2 −2 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import android.annotation.NonNull; import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.ActivityManagerInternal; import android.app.AppDetailsActivity; import android.app.AppGlobals; import android.app.IApplicationThread; import android.app.PendingIntent; Loading Loading @@ -367,7 +366,8 @@ public class LauncherAppsService extends SystemService { private ResolveInfo getHiddenAppActivityInfo(String packageName, int callingUid, UserHandle user) { Intent intent = new Intent(); intent.setComponent(new ComponentName(packageName, AppDetailsActivity.class.getName())); intent.setComponent(new ComponentName(packageName, PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME)); final PackageManagerInternal pmInt = LocalServices.getService(PackageManagerInternal.class); List<ResolveInfo> apps = pmInt.queryIntentActivities(intent, Loading Loading
api/system-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -1577,6 +1577,7 @@ package android.content.pm { method @RequiresPermission("android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS") public abstract void addOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener); method public abstract boolean arePermissionsIndividuallyControlled(); method public abstract java.util.List<android.content.IntentFilter> getAllIntentFilters(String); method public boolean getAppDetailsActivityEnabled(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public android.content.pm.ApplicationInfo getApplicationInfoAsUser(@NonNull String, int, @NonNull android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException; method @NonNull public android.content.pm.dex.ArtManager getArtManager(); method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public abstract String getDefaultBrowserPackageNameAsUser(int); Loading @@ -1603,6 +1604,7 @@ package android.content.pm { method @Deprecated public void replacePreferredActivity(@NonNull android.content.IntentFilter, int, @NonNull java.util.List<android.content.ComponentName>, @NonNull android.content.ComponentName); method @RequiresPermission(android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS) public abstract void revokeRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle); method public void sendDeviceCustomizationReadyBroadcast(); method @RequiresPermission(value=android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE, conditional=true) public void setAppDetailsActivityEnabled(@NonNull String, boolean); method @RequiresPermission(allOf={android.Manifest.permission.SET_PREFERRED_APPLICATIONS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public abstract boolean setDefaultBrowserPackageNameAsUser(String, int); method @NonNull @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setDistractingPackageRestrictions(@NonNull String[], int); method @RequiresPermission(android.Manifest.permission.SET_HARMFUL_APP_WARNINGS) public void setHarmfulAppWarning(@NonNull String, @Nullable CharSequence); Loading
core/java/android/app/ApplicationPackageManager.java +27 −0 Original line number Diff line number Diff line Loading @@ -2468,6 +2468,33 @@ public class ApplicationPackageManager extends PackageManager { } } @Override public void setAppDetailsActivityEnabled(String packageName, boolean enabled) { try { ComponentName componentName = new ComponentName(packageName, PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME); mPM.setComponentEnabledSetting(componentName, enabled ? PackageManager.COMPONENT_ENABLED_STATE_DEFAULT : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP, getUserId()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } @Override public boolean getAppDetailsActivityEnabled(String packageName) { try { ComponentName componentName = new ComponentName(packageName, PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME); int state = mPM.getComponentEnabledSetting(componentName, getUserId()); return state == PackageManager.COMPONENT_ENABLED_STATE_ENABLED || state == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT; } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } @Override public void setComponentEnabledSetting(ComponentName componentName, int newState, int flags) { Loading
core/java/android/content/pm/PackageManager.java +39 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.annotation.UnsupportedAppUsage; import android.annotation.UserIdInt; import android.annotation.XmlRes; import android.app.ActivityManager; import android.app.AppDetailsActivity; import android.app.PackageDeleteObserver; import android.app.PackageInstallObserver; import android.app.admin.DevicePolicyManager; Loading Loading @@ -3029,6 +3030,13 @@ public abstract class PackageManager { @SystemApi public static final int MASK_PERMISSION_FLAGS = 0xFF; /** * Injected activity in app that forwards user to setting activity of that app. * * @hide */ public static final String APP_DETAILS_ACTIVITY_CLASS_NAME = AppDetailsActivity.class.getName(); /** * This is a library that contains components apps can invoke. For * example, a services for apps to bind to, or standard chooser UI, Loading Loading @@ -5791,6 +5799,37 @@ public abstract class PackageManager { public abstract @EnabledState int getComponentEnabledSetting( @NonNull ComponentName componentName); /** * Set the enabled setting for a package app settings activity. * * @param packageName The package name of the app * @param enabled The new enabled state for app details activity * * @hide */ @RequiresPermission(value = android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE, conditional = true) @SystemApi public void setAppDetailsActivityEnabled(@NonNull String packageName, boolean enabled) { throw new UnsupportedOperationException( "setAppDetailsActivityEnabled not implemented"); } /** * Return the enabled setting for a package app settings activity. * * @param packageName The package name of the app * @return Returns the current enabled state for app settings activity. * * @hide */ @SystemApi public boolean getAppDetailsActivityEnabled(@NonNull String packageName) { throw new UnsupportedOperationException( "getAppDetailsActivityEnabled not implemented"); } /** * Set the enabled setting for an application * This setting will override any enabled state which may have been set by the application in Loading
core/java/android/content/pm/PackageParser.java +4 −4 Original line number Diff line number Diff line Loading @@ -48,7 +48,6 @@ import android.annotation.Nullable; import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.app.ActivityTaskManager; import android.app.AppDetailsActivity; import android.content.ComponentName; import android.content.Intent; import android.content.IntentFilter; Loading Loading @@ -4311,7 +4310,7 @@ public class PackageParser { } else { String outInfoName = buildClassName(owner.applicationInfo.packageName, name, outError); if (AppDetailsActivity.class.getName().equals(outInfoName)) { if (PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME.equals(outInfoName)) { outError[0] = tag + " invalid android:name"; return false; } Loading Loading @@ -4364,13 +4363,14 @@ public class PackageParser { boolean hardwareAccelerated) { // Build custom App Details activity info instead of parsing it from xml Activity a = new Activity(owner, AppDetailsActivity.class.getName(), new ActivityInfo()); Activity a = new Activity(owner, PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME, new ActivityInfo()); a.owner = owner; a.setPackageName(owner.packageName); a.info.theme = android.R.style.Theme_NoDisplay; a.info.exported = true; a.info.name = AppDetailsActivity.class.getName(); a.info.name = PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME; a.info.processName = owner.applicationInfo.processName; a.info.uiOptions = a.info.applicationInfo.uiOptions; a.info.taskAffinity = buildTaskAffinityName(owner.packageName, owner.packageName, Loading
services/core/java/com/android/server/pm/LauncherAppsService.java +2 −2 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import android.annotation.NonNull; import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.ActivityManagerInternal; import android.app.AppDetailsActivity; import android.app.AppGlobals; import android.app.IApplicationThread; import android.app.PendingIntent; Loading Loading @@ -367,7 +366,8 @@ public class LauncherAppsService extends SystemService { private ResolveInfo getHiddenAppActivityInfo(String packageName, int callingUid, UserHandle user) { Intent intent = new Intent(); intent.setComponent(new ComponentName(packageName, AppDetailsActivity.class.getName())); intent.setComponent(new ComponentName(packageName, PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME)); final PackageManagerInternal pmInt = LocalServices.getService(PackageManagerInternal.class); List<ResolveInfo> apps = pmInt.queryIntentActivities(intent, Loading