summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2011-02-28 13:27:19 -0800
committerKenny Root <kroot@google.com>2011-03-01 09:27:57 -0800
commitc39bb4aaa7be1b9b0cc9fb0b1f03d54f7609ffeb (patch)
treea17b98261c9fa066d13363442585f0a227a29ce7 /core
parent051d4430715ea257f0afd124b919a14ced6385b8 (diff)
downloadframeworks_base-c39bb4aaa7be1b9b0cc9fb0b1f03d54f7609ffeb.zip
frameworks_base-c39bb4aaa7be1b9b0cc9fb0b1f03d54f7609ffeb.tar.gz
frameworks_base-c39bb4aaa7be1b9b0cc9fb0b1f03d54f7609ffeb.tar.bz2
Switch to returnCode for IPackageDeleteObserver
Before the IPackageDeleteObserver only knew whether the deletion succeeded or failed, but not the reason why. Bug: 2520191 Change-Id: I1f0d7c04f06c539660b6e17e7e133defb0f61b5b
Diffstat (limited to 'core')
-rw-r--r--core/java/android/content/pm/IPackageDeleteObserver.aidl2
-rw-r--r--core/java/android/content/pm/PackageManager.java33
-rwxr-xr-xcore/tests/coretests/src/android/content/pm/PackageManagerTests.java4
3 files changed, 34 insertions, 5 deletions
diff --git a/core/java/android/content/pm/IPackageDeleteObserver.aidl b/core/java/android/content/pm/IPackageDeleteObserver.aidl
index bc16b3e..2e2d16e 100644
--- a/core/java/android/content/pm/IPackageDeleteObserver.aidl
+++ b/core/java/android/content/pm/IPackageDeleteObserver.aidl
@@ -23,6 +23,6 @@ package android.content.pm;
* {@hide}
*/
oneway interface IPackageDeleteObserver {
- void packageDeleted(in boolean succeeded);
+ void packageDeleted(in String packageName, in int returnCode);
}
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index a589216..2992d68 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -552,9 +552,38 @@ public abstract class PackageManager {
public static final int DONT_DELETE_DATA = 0x00000001;
/**
+ * Return code for when package deletion succeeds. This is passed to the
+ * {@link IPackageDeleteObserver} by {@link #deletePackage()} if the system
+ * succeeded in deleting the package.
+ *
+ * @hide
+ */
+ public static final int DELETE_SUCCEEDED = 1;
+
+ /**
+ * Deletion failed return code: this is passed to the
+ * {@link IPackageDeleteObserver} by {@link #deletePackage()} if the system
+ * failed to delete the package for an unspecified reason.
+ *
+ * @hide
+ */
+ public static final int DELETE_FAILED_INTERNAL_ERROR = -1;
+
+ /**
+ * Deletion failed return code: this is passed to the
+ * {@link IPackageDeleteObserver} by {@link #deletePackage()} if the system
+ * failed to delete the package because it is the active DevicePolicy
+ * manager.
+ *
+ * @hide
+ */
+ public static final int DELETE_FAILED_DEVICE_POLICY_MANAGER = -2;
+
+ /**
* Return code that is passed to the {@link IPackageMoveObserver} by
- * {@link #movePackage(android.net.Uri, IPackageMoveObserver)}
- * when the package has been successfully moved by the system.
+ * {@link #movePackage(android.net.Uri, IPackageMoveObserver)} when the
+ * package has been successfully moved by the system.
+ *
* @hide
*/
public static final int MOVE_SUCCEEDED = 1;
diff --git a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
index 7af64e4..5d28ef7 100755
--- a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
+++ b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
@@ -769,9 +769,9 @@ public class PackageManagerTests extends AndroidTestCase {
return doneFlag;
}
- public void packageDeleted(boolean succeeded) throws RemoteException {
+ public void packageDeleted(String packageName, int returnCode) throws RemoteException {
synchronized(this) {
- this.succeeded = succeeded;
+ this.succeeded = returnCode == PackageManager.DELETE_SUCCEEDED;
doneFlag = true;
notifyAll();
}