summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorBenjamin Franz <bfranz@google.com>2016-03-16 23:51:43 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-03-16 23:51:44 +0000
commitf9124ecad9ec20f572df8cdca6f985ef3f97210d (patch)
tree43492e863c64e8a6f4872d77960cc03bc9970eab /core/java
parent886ad0690bd3b4e7ee08f032432eefe53a2bdaa9 (diff)
parentbbb3ff2b2a29d42771a9ce2fe2d6f576cff62617 (diff)
Merge "Flush package restriction changes for a user." into nyc-dev
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/app/ApplicationPackageManager.java9
-rw-r--r--core/java/android/content/pm/IPackageManager.aidl5
-rw-r--r--core/java/android/content/pm/PackageManager.java11
3 files changed, 24 insertions, 1 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index cefb22dd7e50..5ef03d1cac6f 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -2025,6 +2025,15 @@ public class ApplicationPackageManager extends PackageManager {
}
@Override
+ public void flushPackageRestrictionsAsUser(int userId) {
+ try {
+ mPM.flushPackageRestrictionsAsUser(userId);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ @Override
public boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden,
UserHandle user) {
try {
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index 4899fe563c62..dabc6524b20f 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -316,6 +316,11 @@ interface IPackageManager {
int getApplicationEnabledSetting(in String packageName, int userId);
/**
+ * As per {@link android.content.pm.PackageManager#flushPackageRestrictionsAsUser}.
+ */
+ void flushPackageRestrictionsAsUser(in int userId);
+
+ /**
* Set whether the given package should be considered stopped, making
* it not visible to implicit intents that filter out stopped packages.
*/
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index c1017fb3f110..c179596a13b0 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -5225,7 +5225,6 @@ public abstract class PackageManager {
public abstract void setComponentEnabledSetting(ComponentName componentName,
int newState, int flags);
-
/**
* Return the enabled setting for a package component (activity,
* receiver, service, provider). This returns the last value set by
@@ -5283,6 +5282,16 @@ public abstract class PackageManager {
public abstract int getApplicationEnabledSetting(String packageName);
/**
+ * Flush the package restrictions for a given user to disk. This forces the package restrictions
+ * like component and package enabled settings to be written to disk and avoids the delay that
+ * is otherwise present when changing those settings.
+ *
+ * @param userId Ther userId of the user whose restrictions are to be flushed.
+ * @hide
+ */
+ public abstract void flushPackageRestrictionsAsUser(int userId);
+
+ /**
* 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. Application can be unhidden by either resetting the hidden state