From 3c191b8bd93ae4d8951fa7215f55ecafeb58852d Mon Sep 17 00:00:00 2001 From: msnider Date: Mon, 23 Jan 2017 14:23:16 -0800 Subject: [PATCH] Introducing clear package data intent Clear data Intent can be called from any application and executes in the PackageInstaller. The user will be asked to verify that they truly want to clear package data via an AlertDialog. This was initially intended to be @SystemApi, but conversations with API-Review led to it be public. Test: Covered by a gts-test ag/1806256 and manually tested by calling from com.android.vending (Play Store). bug: 33017941 bug: 31008483 Change-Id: Ibeae6620303ba52cc2ebf0383756c9380d3fa013 --- api/current.txt | 1 + api/system-current.txt | 1 + api/test-current.txt | 1 + core/java/android/content/Intent.java | 13 +++++++++++++ 4 files changed, 16 insertions(+) diff --git a/api/current.txt b/api/current.txt index 2fe3f44533e2a..85994ff9df6f7 100644 --- a/api/current.txt +++ b/api/current.txt @@ -8860,6 +8860,7 @@ package android.content { field public static final java.lang.String ACTION_CALL_BUTTON = "android.intent.action.CALL_BUTTON"; field public static final java.lang.String ACTION_CAMERA_BUTTON = "android.intent.action.CAMERA_BUTTON"; field public static final java.lang.String ACTION_CHOOSER = "android.intent.action.CHOOSER"; + field public static final java.lang.String ACTION_CLEAR_PACKAGE = "android.intent.action.CLEAR_PACKAGE"; field public static final java.lang.String ACTION_CLOSE_SYSTEM_DIALOGS = "android.intent.action.CLOSE_SYSTEM_DIALOGS"; field public static final java.lang.String ACTION_CONFIGURATION_CHANGED = "android.intent.action.CONFIGURATION_CHANGED"; field public static final java.lang.String ACTION_CREATE_DOCUMENT = "android.intent.action.CREATE_DOCUMENT"; diff --git a/api/system-current.txt b/api/system-current.txt index 7a6d87a3c9f17..f3840c737da57 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -9248,6 +9248,7 @@ package android.content { field public static final java.lang.String ACTION_CALL_BUTTON = "android.intent.action.CALL_BUTTON"; field public static final java.lang.String ACTION_CAMERA_BUTTON = "android.intent.action.CAMERA_BUTTON"; field public static final java.lang.String ACTION_CHOOSER = "android.intent.action.CHOOSER"; + field public static final java.lang.String ACTION_CLEAR_PACKAGE = "android.intent.action.CLEAR_PACKAGE"; field public static final java.lang.String ACTION_CLOSE_SYSTEM_DIALOGS = "android.intent.action.CLOSE_SYSTEM_DIALOGS"; field public static final java.lang.String ACTION_CONFIGURATION_CHANGED = "android.intent.action.CONFIGURATION_CHANGED"; field public static final java.lang.String ACTION_CREATE_DOCUMENT = "android.intent.action.CREATE_DOCUMENT"; diff --git a/api/test-current.txt b/api/test-current.txt index cd711664bd65e..0fba8e3f29512 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -8885,6 +8885,7 @@ package android.content { field public static final java.lang.String ACTION_CALL_BUTTON = "android.intent.action.CALL_BUTTON"; field public static final java.lang.String ACTION_CAMERA_BUTTON = "android.intent.action.CAMERA_BUTTON"; field public static final java.lang.String ACTION_CHOOSER = "android.intent.action.CHOOSER"; + field public static final java.lang.String ACTION_CLEAR_PACKAGE = "android.intent.action.CLEAR_PACKAGE"; field public static final java.lang.String ACTION_CLOSE_SYSTEM_DIALOGS = "android.intent.action.CLOSE_SYSTEM_DIALOGS"; field public static final java.lang.String ACTION_CONFIGURATION_CHANGED = "android.intent.action.CONFIGURATION_CHANGED"; field public static final java.lang.String ACTION_CREATE_DOCUMENT = "android.intent.action.CREATE_DOCUMENT"; diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index c5500949b25fe..67de7cff3dba4 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -1627,6 +1627,19 @@ public class Intent implements Parcelable, Cloneable { @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) public static final String ACTION_UNINSTALL_PACKAGE = "android.intent.action.UNINSTALL_PACKAGE"; + /** + * Activity Action: Launch application uninstaller. + *

+ * Input: The data must be a package: URI whose scheme specific part is + * the package name of the current installed package to be uninstalled. + * You can optionally supply {@link #EXTRA_RETURN_RESULT}. + *

+ * Output: Nothing. + *

+ */ + @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) + public static final String ACTION_CLEAR_PACKAGE = "android.intent.action.CLEAR_PACKAGE"; + /** * Specify whether the package should be uninstalled for all users. * @hide because these should not be part of normal application flow.