diff options
author | Amith Yamasani <yamasani@google.com> | 2014-07-19 15:44:09 -0700 |
---|---|---|
committer | Amith Yamasani <yamasani@google.com> | 2014-07-21 22:18:40 +0000 |
commit | e5bcff624fb58b6f95be8ddff7f5b6b3bf5d19c7 (patch) | |
tree | 0a758d1029f2b8aed41a089330c7fa79564a6a32 | |
parent | c2ae1a6b455d97c4e89e2bf7b113435dd63bb36f (diff) | |
download | frameworks_base-e5bcff624fb58b6f95be8ddff7f5b6b3bf5d19c7.zip frameworks_base-e5bcff624fb58b6f95be8ddff7f5b6b3bf5d19c7.tar.gz frameworks_base-e5bcff624fb58b6f95be8ddff7f5b6b3bf5d19c7.tar.bz2 |
Rename setApplicationBlocked to setApplicationHidden
This corrects the expected behavior of the app state. Hidden apps
can be installed by the store to be brought out of hidden state.
Bug: 16191518
Change-Id: Id128ce971ceee99ba1dea14ba07ce03bd8d77335
16 files changed, 135 insertions, 124 deletions
diff --git a/api/current.txt b/api/current.txt index 001d9b9..d8e8f4e 100644 --- a/api/current.txt +++ b/api/current.txt @@ -5355,7 +5355,7 @@ package android.app.admin { method public boolean installCaCert(android.content.ComponentName, byte[]); method public boolean isActivePasswordSufficient(); method public boolean isAdminActive(android.content.ComponentName); - method public boolean isApplicationBlocked(android.content.ComponentName, java.lang.String); + method public boolean isApplicationHidden(android.content.ComponentName, java.lang.String); method public boolean isDeviceOwnerApp(java.lang.String); method public boolean isLockTaskPermitted(java.lang.String); method public boolean isMasterVolumeMuted(android.content.ComponentName); @@ -5365,9 +5365,9 @@ package android.app.admin { method public boolean removeUser(android.content.ComponentName, android.os.UserHandle); method public boolean resetPassword(java.lang.String, int); method public void setAccountManagementDisabled(android.content.ComponentName, java.lang.String, boolean); - method public boolean setApplicationBlocked(android.content.ComponentName, java.lang.String, boolean); + method public boolean setApplicationHidden(android.content.ComponentName, java.lang.String, boolean); method public void setApplicationRestrictions(android.content.ComponentName, java.lang.String, android.os.Bundle); - method public int setApplicationsBlocked(android.content.ComponentName, android.content.Intent, boolean); + method public int setApplicationsHidden(android.content.ComponentName, android.content.Intent, boolean); method public void setBlockUninstall(android.content.ComponentName, java.lang.String, boolean); method public void setCameraDisabled(android.content.ComponentName, boolean); method public void setCrossProfileCallerIdDisabled(android.content.ComponentName, boolean); diff --git a/cmds/pm/src/com/android/commands/pm/Pm.java b/cmds/pm/src/com/android/commands/pm/Pm.java index d6c17ae..faf5622 100644 --- a/cmds/pm/src/com/android/commands/pm/Pm.java +++ b/cmds/pm/src/com/android/commands/pm/Pm.java @@ -197,13 +197,13 @@ public final class Pm { return; } - if ("block".equals(op)) { - runSetBlockedSetting(true); + if ("hide".equals(op)) { + runSetHiddenSetting(true); return; } - if ("unblock".equals(op)) { - runSetBlockedSetting(false); + if ("unhide".equals(op)) { + runSetHiddenSetting(false); return; } @@ -1471,7 +1471,7 @@ public final class Pm { } } - private void runSetBlockedSetting(boolean state) { + private void runSetHiddenSetting(boolean state) { int userId = 0; String option = nextOption(); if (option != null && option.equals("--user")) { @@ -1492,9 +1492,9 @@ public final class Pm { return; } try { - mPm.setApplicationBlockedSettingAsUser(pkg, state, userId); - System.err.println("Package " + pkg + " new blocked state: " - + mPm.getApplicationBlockedSettingAsUser(pkg, userId)); + mPm.setApplicationHiddenSettingAsUser(pkg, state, userId); + System.err.println("Package " + pkg + " new hidden state: " + + mPm.getApplicationHiddenSettingAsUser(pkg, userId)); } catch (RemoteException e) { System.err.println(e.toString()); System.err.println(PM_NOT_RUNNING_ERR); @@ -1751,8 +1751,8 @@ public final class Pm { System.err.println(" pm disable [--user USER_ID] PACKAGE_OR_COMPONENT"); System.err.println(" pm disable-user [--user USER_ID] PACKAGE_OR_COMPONENT"); System.err.println(" pm disable-until-used [--user USER_ID] PACKAGE_OR_COMPONENT"); - System.err.println(" pm block [--user USER_ID] PACKAGE_OR_COMPONENT"); - System.err.println(" pm unblock [--user USER_ID] PACKAGE_OR_COMPONENT"); + System.err.println(" pm hide [--user USER_ID] PACKAGE_OR_COMPONENT"); + System.err.println(" pm unhide [--user USER_ID] PACKAGE_OR_COMPONENT"); System.err.println(" pm grant PACKAGE PERMISSION"); System.err.println(" pm revoke PACKAGE PERMISSION"); System.err.println(" pm set-install-location [0/auto] [1/internal] [2/external]"); diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index 6a51371..1cb0fd4 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -1452,10 +1452,10 @@ final class ApplicationPackageManager extends PackageManager { } @Override - public boolean setApplicationBlockedSettingAsUser(String packageName, boolean blocked, + public boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden, UserHandle user) { try { - return mPM.setApplicationBlockedSettingAsUser(packageName, blocked, + return mPM.setApplicationHiddenSettingAsUser(packageName, hidden, user.getIdentifier()); } catch (RemoteException re) { // Should never happen! @@ -1464,9 +1464,9 @@ final class ApplicationPackageManager extends PackageManager { } @Override - public boolean getApplicationBlockedSettingAsUser(String packageName, UserHandle user) { + public boolean getApplicationHiddenSettingAsUser(String packageName, UserHandle user) { try { - return mPM.getApplicationBlockedSettingAsUser(packageName, user.getIdentifier()); + return mPM.getApplicationHiddenSettingAsUser(packageName, user.getIdentifier()); } catch (RemoteException re) { // Should never happen! } diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 5f2262b..efeded5 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -2523,20 +2523,20 @@ public class DevicePolicyManager { } /** - * Called by device or profile owner to block or unblock packages. When a package is blocked it + * Called by device or profile owner to hide or unhide packages. When a package is hidden it * is unavailable for use, but the data and actual package file remain. * * @param admin Which {@link DeviceAdminReceiver} this request is associated with. - * @param packageName The name of the package to block or unblock. - * @param blocked {@code true} if the package should be blocked, {@code false} if it should be - * unblocked. - * @return boolean Whether the blocked setting of the package was successfully updated. + * @param packageName The name of the package to hide or unhide. + * @param hidden {@code true} if the package should be hidden, {@code false} if it should be + * unhidden. + * @return boolean Whether the hidden setting of the package was successfully updated. */ - public boolean setApplicationBlocked(ComponentName admin, String packageName, - boolean blocked) { + public boolean setApplicationHidden(ComponentName admin, String packageName, + boolean hidden) { if (mService != null) { try { - return mService.setApplicationBlocked(admin, packageName, blocked); + return mService.setApplicationHidden(admin, packageName, hidden); } catch (RemoteException e) { Log.w(TAG, "Failed talking with device policy service", e); } @@ -2545,20 +2545,20 @@ public class DevicePolicyManager { } /** - * Called by profile or device owner to block or unblock currently installed packages. This + * Called by profile or device owner to hide or unhide currently installed packages. This * should only be called by a profile or device owner running within a managed profile. * * @param admin Which {@link DeviceAdminReceiver} this request is associated with. * @param intent An intent matching the app(s) to be updated. All apps that resolve for this * intent will be updated in the current profile. - * @param blocked {@code true} if the packages should be blocked, {@code false} if they should - * be unblocked. + * @param hidden {@code true} if the packages should be hidden, {@code false} if they should + * be unhidden. * @return int The number of activities that matched the intent and were updated. */ - public int setApplicationsBlocked(ComponentName admin, Intent intent, boolean blocked) { + public int setApplicationsHidden(ComponentName admin, Intent intent, boolean hidden) { if (mService != null) { try { - return mService.setApplicationsBlocked(admin, intent, blocked); + return mService.setApplicationsHidden(admin, intent, hidden); } catch (RemoteException e) { Log.w(TAG, "Failed talking with device policy service", e); } @@ -2567,16 +2567,16 @@ public class DevicePolicyManager { } /** - * Called by device or profile owner to determine if a package is blocked. + * Called by device or profile owner to determine if a package is hidden. * * @param admin Which {@link DeviceAdminReceiver} this request is associated with. - * @param packageName The name of the package to retrieve the blocked status of. - * @return boolean {@code true} if the package is blocked, {@code false} otherwise. + * @param packageName The name of the package to retrieve the hidden status of. + * @return boolean {@code true} if the package is hidden, {@code false} otherwise. */ - public boolean isApplicationBlocked(ComponentName admin, String packageName) { + public boolean isApplicationHidden(ComponentName admin, String packageName) { if (mService != null) { try { - return mService.isApplicationBlocked(admin, packageName); + return mService.isApplicationHidden(admin, packageName); } catch (RemoteException e) { Log.w(TAG, "Failed talking with device policy service", e); } diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl index 9b1979f..5fc8c5f 100644 --- a/core/java/android/app/admin/IDevicePolicyManager.aidl +++ b/core/java/android/app/admin/IDevicePolicyManager.aidl @@ -132,9 +132,9 @@ interface IDevicePolicyManager { void addCrossProfileIntentFilter(in ComponentName admin, in IntentFilter filter, int flags); void clearCrossProfileIntentFilters(in ComponentName admin); - boolean setApplicationBlocked(in ComponentName admin, in String packageName, boolean blocked); - int setApplicationsBlocked(in ComponentName admin, in Intent intent, boolean blocked); - boolean isApplicationBlocked(in ComponentName admin, in String packageName); + boolean setApplicationHidden(in ComponentName admin, in String packageName, boolean hidden); + int setApplicationsHidden(in ComponentName admin, in Intent intent, boolean hidden); + boolean isApplicationHidden(in ComponentName admin, in String packageName); UserHandle createUser(in ComponentName who, in String name); UserHandle createAndInitializeUser(in ComponentName who, in String name, in String profileOwnerName, in ComponentName profileOwnerComponent, in Bundle adminExtras); diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java index 95bd480..482ad6e 100644 --- a/core/java/android/content/pm/ApplicationInfo.java +++ b/core/java/android/content/pm/ApplicationInfo.java @@ -334,11 +334,11 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { public static final int FLAG_FULL_BACKUP_ONLY = 1<<26; /** - * Value for {@link #flags}: true if the application is blocked via restrictions and for + * Value for {@link #flags}: true if the application is hidden via restrictions and for * most purposes is considered as not installed. * {@hide} */ - public static final int FLAG_BLOCKED = 1<<27; + public static final int FLAG_HIDDEN = 1<<27; /** * Value for {@link #flags}: set to <code>true</code> if the application diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl index eb46cf0..5e55ba7 100644 --- a/core/java/android/content/pm/IPackageManager.aidl +++ b/core/java/android/content/pm/IPackageManager.aidl @@ -428,8 +428,8 @@ interface IPackageManager { /** Reflects current DeviceStorageMonitorService state */ boolean isStorageLow(); - boolean setApplicationBlockedSettingAsUser(String packageName, boolean blocked, int userId); - boolean getApplicationBlockedSettingAsUser(String packageName, int userId); + boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden, int userId); + boolean getApplicationHiddenSettingAsUser(String packageName, int userId); IPackageInstaller getPackageInstaller(); diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index b4c0219..8b6ae41 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -3642,20 +3642,21 @@ public abstract class PackageManager { public abstract int getApplicationEnabledSetting(String packageName); /** - * Puts the package in a blocked state, which is almost like an uninstalled state, + * Puts the package in a hidden state, which is almost like an uninstalled state, * making the package unavailable, but it doesn't remove the data or the actual - * package file. + * package file. Application can be unhidden by either resetting the hidden state + * or by installing it, such as with {@link #installExistingPackage(String)} * @hide */ - public abstract boolean setApplicationBlockedSettingAsUser(String packageName, boolean blocked, + public abstract boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden, UserHandle userHandle); /** - * Returns the blocked state of a package. - * @see #setApplicationBlockedSettingAsUser(String, boolean, UserHandle) + * Returns the hidden state of a package. + * @see #setApplicationHiddenSettingAsUser(String, boolean, UserHandle) * @hide */ - public abstract boolean getApplicationBlockedSettingAsUser(String packageName, + public abstract boolean getApplicationHiddenSettingAsUser(String packageName, UserHandle userHandle); /** diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 833dc21..9866200 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -382,23 +382,23 @@ public class PackageParser { } /** - * Returns true if the package is installed and not blocked, or if the caller - * explicitly wanted all uninstalled and blocked packages as well. + * Returns true if the package is installed and not hidden, or if the caller + * explicitly wanted all uninstalled and hidden packages as well. */ - private static boolean checkUseInstalledOrBlocked(int flags, PackageUserState state) { - return (state.installed && !state.blocked) + private static boolean checkUseInstalledOrHidden(int flags, PackageUserState state) { + return (state.installed && !state.hidden) || (flags & PackageManager.GET_UNINSTALLED_PACKAGES) != 0; } public static boolean isAvailable(PackageUserState state) { - return checkUseInstalledOrBlocked(0, state); + return checkUseInstalledOrHidden(0, state); } public static PackageInfo generatePackageInfo(PackageParser.Package p, int gids[], int flags, long firstInstallTime, long lastUpdateTime, HashSet<String> grantedPermissions, PackageUserState state, int userId) { - if (!checkUseInstalledOrBlocked(flags, state)) { + if (!checkUseInstalledOrHidden(flags, state)) { return null; } PackageInfo pi = new PackageInfo(); @@ -4533,7 +4533,7 @@ public class PackageParser { return true; } } - if (!state.installed || state.blocked) { + if (!state.installed || state.hidden) { return true; } if (state.stopped) { @@ -4566,10 +4566,10 @@ public class PackageParser { } else { ai.flags &= ~ApplicationInfo.FLAG_INSTALLED; } - if (state.blocked) { - ai.flags |= ApplicationInfo.FLAG_BLOCKED; + if (state.hidden) { + ai.flags |= ApplicationInfo.FLAG_HIDDEN; } else { - ai.flags &= ~ApplicationInfo.FLAG_BLOCKED; + ai.flags &= ~ApplicationInfo.FLAG_HIDDEN; } if (state.enabled == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) { ai.enabled = true; @@ -4585,7 +4585,7 @@ public class PackageParser { public static ApplicationInfo generateApplicationInfo(Package p, int flags, PackageUserState state, int userId) { if (p == null) return null; - if (!checkUseInstalledOrBlocked(flags, state)) { + if (!checkUseInstalledOrHidden(flags, state)) { return null; } if (!copyNeeded(flags, p, state, null, userId) @@ -4673,7 +4673,7 @@ public class PackageParser { public static final ActivityInfo generateActivityInfo(Activity a, int flags, PackageUserState state, int userId) { if (a == null) return null; - if (!checkUseInstalledOrBlocked(flags, state)) { + if (!checkUseInstalledOrHidden(flags, state)) { return null; } if (!copyNeeded(flags, a.owner, state, a.metaData, userId)) { @@ -4714,7 +4714,7 @@ public class PackageParser { public static final ServiceInfo generateServiceInfo(Service s, int flags, PackageUserState state, int userId) { if (s == null) return null; - if (!checkUseInstalledOrBlocked(flags, state)) { + if (!checkUseInstalledOrHidden(flags, state)) { return null; } if (!copyNeeded(flags, s.owner, state, s.metaData, userId)) { @@ -4763,7 +4763,7 @@ public class PackageParser { public static final ProviderInfo generateProviderInfo(Provider p, int flags, PackageUserState state, int userId) { if (p == null) return null; - if (!checkUseInstalledOrBlocked(flags, state)) { + if (!checkUseInstalledOrHidden(flags, state)) { return null; } if (!copyNeeded(flags, p.owner, state, p.metaData, userId) diff --git a/core/java/android/content/pm/PackageUserState.java b/core/java/android/content/pm/PackageUserState.java index f0d4cb1..4dcad6f 100644 --- a/core/java/android/content/pm/PackageUserState.java +++ b/core/java/android/content/pm/PackageUserState.java @@ -28,7 +28,7 @@ public class PackageUserState { public boolean stopped; public boolean notLaunched; public boolean installed; - public boolean blocked; // Is the app restricted by owner / admin + public boolean hidden; // Is the app restricted by owner / admin public int enabled; public boolean blockUninstall; @@ -39,7 +39,7 @@ public class PackageUserState { public PackageUserState() { installed = true; - blocked = false; + hidden = false; enabled = COMPONENT_ENABLED_STATE_DEFAULT; } @@ -48,7 +48,7 @@ public class PackageUserState { stopped = o.stopped; notLaunched = o.notLaunched; enabled = o.enabled; - blocked = o.blocked; + hidden = o.hidden; lastDisableAppCaller = o.lastDisableAppCaller; disabledComponents = o.disabledComponents != null ? new HashSet<String>(o.disabledComponents) : null; diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 77fd409..6de8a8b 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -7882,7 +7882,7 @@ public class PackageManagerService extends IPackageManager.Stub { } @Override - public boolean setApplicationBlockedSettingAsUser(String packageName, boolean blocked, + public boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden, int userId) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.MANAGE_USERS, null); PackageSetting pkgSetting; @@ -7890,11 +7890,11 @@ public class PackageManagerService extends IPackageManager.Stub { if (UserHandle.getUserId(uid) != userId) { mContext.enforceCallingOrSelfPermission( android.Manifest.permission.INTERACT_ACROSS_USERS_FULL, - "setApplicationBlockedSetting for user " + userId); + "setApplicationHiddenSetting for user " + userId); } - if (blocked && isPackageDeviceAdmin(packageName, userId)) { - Slog.w(TAG, "Not blocking package " + packageName + ": has active device admin"); + if (hidden && isPackageDeviceAdmin(packageName, userId)) { + Slog.w(TAG, "Not hiding package " + packageName + ": has active device admin"); return false; } @@ -7908,10 +7908,10 @@ public class PackageManagerService extends IPackageManager.Stub { if (pkgSetting == null) { return false; } - if (pkgSetting.getBlocked(userId) != blocked) { - pkgSetting.setBlocked(blocked, userId); + if (pkgSetting.getHidden(userId) != hidden) { + pkgSetting.setHidden(hidden, userId); mSettings.writePackageRestrictionsLPr(userId); - if (blocked) { + if (hidden) { sendRemoved = true; } else { sendAdded = true; @@ -7924,8 +7924,8 @@ public class PackageManagerService extends IPackageManager.Stub { } if (sendRemoved) { killApplication(packageName, UserHandle.getUid(userId, pkgSetting.appId), - "blocking pkg"); - sendPackageBlockedForUser(packageName, pkgSetting, userId); + "hiding pkg"); + sendApplicationHiddenForUser(packageName, pkgSetting, userId); } } finally { Binder.restoreCallingIdentity(callingId); @@ -7933,7 +7933,7 @@ public class PackageManagerService extends IPackageManager.Stub { return false; } - private void sendPackageBlockedForUser(String packageName, PackageSetting pkgSetting, + private void sendApplicationHiddenForUser(String packageName, PackageSetting pkgSetting, int userId) { final PackageRemovedInfo info = new PackageRemovedInfo(); info.removedPackage = packageName; @@ -7944,13 +7944,13 @@ public class PackageManagerService extends IPackageManager.Stub { /** * Returns true if application is not found or there was an error. Otherwise it returns - * the blocked state of the package for the given user. + * the hidden state of the package for the given user. */ @Override - public boolean getApplicationBlockedSettingAsUser(String packageName, int userId) { + public boolean getApplicationHiddenSettingAsUser(String packageName, int userId) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.MANAGE_USERS, null); enforceCrossUserPermission(Binder.getCallingUid(), userId, true, - "getApplicationBlocked for user " + userId); + "getApplicationHidden for user " + userId); PackageSetting pkgSetting; long callingId = Binder.clearCallingIdentity(); try { @@ -7960,7 +7960,7 @@ public class PackageManagerService extends IPackageManager.Stub { if (pkgSetting == null) { return true; } - return pkgSetting.getBlocked(userId); + return pkgSetting.getHidden(userId); } } finally { Binder.restoreCallingIdentity(callingId); @@ -7994,7 +7994,7 @@ public class PackageManagerService extends IPackageManager.Stub { } if (!pkgSetting.getInstalled(userId)) { pkgSetting.setInstalled(true, userId); - pkgSetting.setBlocked(false, userId); + pkgSetting.setHidden(false, userId); mSettings.writePackageRestrictionsLPr(userId); sendAdded = true; } @@ -10593,19 +10593,19 @@ public class PackageManagerService extends IPackageManager.Stub { return; } - boolean blocked = false; + boolean uninstallBlocked = false; if ((flags & PackageManager.DELETE_ALL_USERS) != 0) { int[] users = sUserManager.getUserIds(); for (int i = 0; i < users.length; ++i) { if (getBlockUninstallForUser(packageName, users[i])) { - blocked = true; + uninstallBlocked = true; break; } } } else { - blocked = getBlockUninstallForUser(packageName, userId); + uninstallBlocked = getBlockUninstallForUser(packageName, userId); } - if (blocked) { + if (uninstallBlocked) { try { observer.packageDeleted(packageName, PackageManager.DELETE_FAILED_OWNER_BLOCKED); } catch (RemoteException re) { @@ -10613,7 +10613,9 @@ public class PackageManagerService extends IPackageManager.Stub { return; } - if (DEBUG_REMOVE) Slog.d(TAG, "deletePackageAsUser: pkg=" + packageName + " user=" + userId); + if (DEBUG_REMOVE) { + Slog.d(TAG, "deletePackageAsUser: pkg=" + packageName + " user=" + userId); + } // Queue up an async operation since the package deletion may take a little while. mHandler.post(new Runnable() { public void run() { @@ -11032,7 +11034,7 @@ public class PackageManagerService extends IPackageManager.Stub { false, //installed true, //stopped true, //notLaunched - false, //blocked + false, //hidden null, null, null, false // blockUninstall ); diff --git a/services/core/java/com/android/server/pm/PackageSettingBase.java b/services/core/java/com/android/server/pm/PackageSettingBase.java index e164f5f..e29332c 100644 --- a/services/core/java/com/android/server/pm/PackageSettingBase.java +++ b/services/core/java/com/android/server/pm/PackageSettingBase.java @@ -281,12 +281,12 @@ class PackageSettingBase extends GrantedPermissions { modifyUserState(userId).notLaunched = stop; } - boolean getBlocked(int userId) { - return readUserState(userId).blocked; + boolean getHidden(int userId) { + return readUserState(userId).hidden; } - void setBlocked(boolean blocked, int userId) { - modifyUserState(userId).blocked = blocked; + void setHidden(boolean hidden, int userId) { + modifyUserState(userId).hidden = hidden; } boolean getBlockUninstall(int userId) { @@ -298,7 +298,7 @@ class PackageSettingBase extends GrantedPermissions { } void setUserState(int userId, int enabled, boolean installed, boolean stopped, - boolean notLaunched, boolean blocked, + boolean notLaunched, boolean hidden, String lastDisableAppCaller, HashSet<String> enabledComponents, HashSet<String> disabledComponents, boolean blockUninstall) { PackageUserState state = modifyUserState(userId); @@ -306,7 +306,7 @@ class PackageSettingBase extends GrantedPermissions { state.installed = installed; state.stopped = stopped; state.notLaunched = notLaunched; - state.blocked = blocked; + state.hidden = hidden; state.lastDisableAppCaller = lastDisableAppCaller; state.enabledComponents = enabledComponents; state.disabledComponents = disabledComponents; diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index e16894e..d1ea3e1 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -153,7 +153,10 @@ final class Settings { private static final String ATTR_ENABLED = "enabled"; private static final String ATTR_ENABLED_CALLER = "enabledCaller"; private static final String ATTR_STOPPED = "stopped"; + // Legacy, here for reading older versions of the package-restrictions. private static final String ATTR_BLOCKED = "blocked"; + // New name for the above attribute. + private static final String ATTR_HIDDEN = "hidden"; private static final String ATTR_INSTALLED = "inst"; private static final String ATTR_BLOCK_UNINSTALL = "blockUninstall"; @@ -606,7 +609,7 @@ final class Settings { installed, true, // stopped, true, // notLaunched - false, // blocked + false, // hidden null, null, null, false // blockUninstall ); @@ -1177,7 +1180,7 @@ final class Settings { true, // installed false, // stopped false, // notLaunched - false, // blocked + false, // hidden null, null, null, false // blockUninstall ); @@ -1233,9 +1236,14 @@ final class Settings { final String stoppedStr = parser.getAttributeValue(null, ATTR_STOPPED); final boolean stopped = stoppedStr == null ? false : Boolean.parseBoolean(stoppedStr); + // For backwards compatibility with the previous name of "blocked", which + // now means hidden, read the old attribute as well. final String blockedStr = parser.getAttributeValue(null, ATTR_BLOCKED); - final boolean blocked = blockedStr == null + boolean hidden = blockedStr == null ? false : Boolean.parseBoolean(blockedStr); + final String hiddenStr = parser.getAttributeValue(null, ATTR_HIDDEN); + hidden = hiddenStr == null + ? hidden : Boolean.parseBoolean(hiddenStr); final String notLaunchedStr = parser.getAttributeValue(null, ATTR_NOT_LAUNCHED); final boolean notLaunched = stoppedStr == null ? false : Boolean.parseBoolean(notLaunchedStr); @@ -1263,7 +1271,7 @@ final class Settings { } } - ps.setUserState(userId, enabled, installed, stopped, notLaunched, blocked, + ps.setUserState(userId, enabled, installed, stopped, notLaunched, hidden, enabledCaller, enabledComponents, disabledComponents, blockUninstall); } else if (tagName.equals("preferred-activities")) { readPreferredActivitiesLPw(parser, userId); @@ -1432,7 +1440,7 @@ final class Settings { PackageUserState ustate = pkg.readUserState(userId); if (ustate.stopped || ustate.notLaunched || !ustate.installed || ustate.enabled != COMPONENT_ENABLED_STATE_DEFAULT - || ustate.blocked + || ustate.hidden || (ustate.enabledComponents != null && ustate.enabledComponents.size() > 0) || (ustate.disabledComponents != null @@ -1451,8 +1459,8 @@ final class Settings { if (ustate.notLaunched) { serializer.attribute(null, ATTR_NOT_LAUNCHED, "true"); } - if (ustate.blocked) { - serializer.attribute(null, ATTR_BLOCKED, "true"); + if (ustate.hidden) { + serializer.attribute(null, ATTR_HIDDEN, "true"); } if (ustate.blockUninstall) { serializer.attribute(null, ATTR_BLOCK_UNINSTALL, "true"); @@ -3443,7 +3451,7 @@ final class Settings { pw.print(user.id); pw.print(","); pw.print(ps.getInstalled(user.id) ? "I" : "i"); - pw.print(ps.getBlocked(user.id) ? "B" : "b"); + pw.print(ps.getHidden(user.id) ? "B" : "b"); pw.print(ps.getStopped(user.id) ? "S" : "s"); pw.print(ps.getNotLaunched(user.id) ? "l" : "L"); pw.print(","); @@ -3583,8 +3591,8 @@ final class Settings { pw.print(prefix); pw.print(" User "); pw.print(user.id); pw.print(": "); pw.print(" installed="); pw.print(ps.getInstalled(user.id)); - pw.print(" blocked="); - pw.print(ps.getBlocked(user.id)); + pw.print(" hidden="); + pw.print(ps.getHidden(user.id)); pw.print(" stopped="); pw.print(ps.getStopped(user.id)); pw.print(" notLaunched="); diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index b4cc252..33ecc4d 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -1428,7 +1428,7 @@ public class UserManagerService extends IUserManager.Stub { removeRestrictionsForUser(userHandle, true); } - private void removeRestrictionsForUser(final int userHandle, boolean unblockApps) { + private void removeRestrictionsForUser(final int userHandle, boolean unhideApps) { synchronized (mPackagesLock) { // Remove all user restrictions setUserRestrictions(new Bundle(), userHandle); @@ -1437,12 +1437,12 @@ public class UserManagerService extends IUserManager.Stub { // Remove any app restrictions cleanAppRestrictions(userHandle); } - if (unblockApps) { - unblockAllAppsForUser(userHandle); + if (unhideApps) { + unhideAllInstalledAppsForUser(userHandle); } } - private void unblockAllAppsForUser(final int userHandle) { + private void unhideAllInstalledAppsForUser(final int userHandle) { mHandler.post(new Runnable() { @Override public void run() { @@ -1453,8 +1453,8 @@ public class UserManagerService extends IUserManager.Stub { try { for (ApplicationInfo appInfo : apps) { if ((appInfo.flags & ApplicationInfo.FLAG_INSTALLED) != 0 - && (appInfo.flags & ApplicationInfo.FLAG_BLOCKED) != 0) { - mPm.setApplicationBlockedSettingAsUser(appInfo.packageName, false, + && (appInfo.flags & ApplicationInfo.FLAG_HIDDEN) != 0) { + mPm.setApplicationHiddenSettingAsUser(appInfo.packageName, false, userHandle); } } diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 12ed920..c218d38 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -3708,8 +3708,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } @Override - public boolean setApplicationBlocked(ComponentName who, String packageName, - boolean blocked) { + public boolean setApplicationHidden(ComponentName who, String packageName, + boolean hidden) { int callingUserId = UserHandle.getCallingUserId(); synchronized (this) { if (who == null) { @@ -3720,10 +3720,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { long id = Binder.clearCallingIdentity(); try { IPackageManager pm = AppGlobals.getPackageManager(); - return pm.setApplicationBlockedSettingAsUser(packageName, blocked, callingUserId); + return pm.setApplicationHiddenSettingAsUser(packageName, hidden, callingUserId); } catch (RemoteException re) { // shouldn't happen - Slog.e(LOG_TAG, "Failed to setApplicationBlockedSetting", re); + Slog.e(LOG_TAG, "Failed to setApplicationHiddenSetting", re); } finally { restoreCallingIdentity(id); } @@ -3732,7 +3732,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } @Override - public int setApplicationsBlocked(ComponentName who, Intent intent, boolean blocked) { + public int setApplicationsHidden(ComponentName who, Intent intent, boolean hidden) { int callingUserId = UserHandle.getCallingUserId(); synchronized (this) { if (who == null) { @@ -3750,20 +3750,20 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { callingUserId); if (DBG) Slog.d(LOG_TAG, "Enabling activities: " + activitiesToEnable); - int numberOfAppsUnblocked = 0; + int numberOfAppsUnhidden = 0; if (activitiesToEnable != null) { for (ResolveInfo info : activitiesToEnable) { if (info.activityInfo != null) { - numberOfAppsUnblocked++; - pm.setApplicationBlockedSettingAsUser(info.activityInfo.packageName, - blocked, callingUserId); + numberOfAppsUnhidden++; + pm.setApplicationHiddenSettingAsUser(info.activityInfo.packageName, + hidden, callingUserId); } } } - return numberOfAppsUnblocked; + return numberOfAppsUnhidden; } catch (RemoteException re) { // shouldn't happen - Slog.e(LOG_TAG, "Failed to setApplicationsBlockedSettingsWithIntent", re); + Slog.e(LOG_TAG, "Failed to setApplicationsHiddenSettingsWithIntent", re); } finally { restoreCallingIdentity(id); } @@ -3772,7 +3772,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } @Override - public boolean isApplicationBlocked(ComponentName who, String packageName) { + public boolean isApplicationHidden(ComponentName who, String packageName) { int callingUserId = UserHandle.getCallingUserId(); synchronized (this) { if (who == null) { @@ -3783,10 +3783,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { long id = Binder.clearCallingIdentity(); try { IPackageManager pm = AppGlobals.getPackageManager(); - return pm.getApplicationBlockedSettingAsUser(packageName, callingUserId); + return pm.getApplicationHiddenSettingAsUser(packageName, callingUserId); } catch (RemoteException re) { // shouldn't happen - Slog.e(LOG_TAG, "Failed to getApplicationBlockedSettingAsUser", re); + Slog.e(LOG_TAG, "Failed to getApplicationHiddenSettingAsUser", re); } finally { restoreCallingIdentity(id); } diff --git a/test-runner/src/android/test/mock/MockPackageManager.java b/test-runner/src/android/test/mock/MockPackageManager.java index e388480..36c90f2 100644 --- a/test-runner/src/android/test/mock/MockPackageManager.java +++ b/test-runner/src/android/test/mock/MockPackageManager.java @@ -661,7 +661,7 @@ public class MockPackageManager extends PackageManager { * @hide */ @Override - public boolean setApplicationBlockedSettingAsUser(String packageName, boolean blocked, + public boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden, UserHandle user) { return false; } @@ -670,7 +670,7 @@ public class MockPackageManager extends PackageManager { * @hide */ @Override - public boolean getApplicationBlockedSettingAsUser(String packageName, UserHandle user) { + public boolean getApplicationHiddenSettingAsUser(String packageName, UserHandle user) { return false; } |