diff options
| author | 2013-09-18 18:31:59 -0700 | |
|---|---|---|
| committer | 2013-09-19 12:31:49 -0700 | |
| commit | bd413f6c05d10ecd001b80c0f30fd031145da8ae (patch) | |
| tree | 671ee365c56a1f20add4485c6928b21261472e0f | |
| parent | dc3335429acf184cf67d022de6fe286c3672663a (diff) | |
Support for "not the home app you're looking for" metadata
* Make sure that pm.getHomeActivities() returns the activity metadata
as well, so that the caller can trace the reference
* Add a public canonical name for that metadata key
Bug 10749961
Change-Id: Ic4d0750d61001ffe5af180398f042afa30eea1ce
| -rw-r--r-- | api/current.txt | 1 | ||||
| -rw-r--r-- | core/java/android/app/ActivityManager.java | 7 | ||||
| -rwxr-xr-x | services/java/com/android/server/pm/PackageManagerService.java | 3 |
3 files changed, 10 insertions, 1 deletions
diff --git a/api/current.txt b/api/current.txt index ab48c8d0a6be..55654035ffb9 100644 --- a/api/current.txt +++ b/api/current.txt @@ -2942,6 +2942,7 @@ package android.app { method public void moveTaskToFront(int, int); method public void moveTaskToFront(int, int, android.os.Bundle); method public deprecated void restartPackage(java.lang.String); + field public static final java.lang.String META_HOME_ALTERNATE = "android.app.home.alternate"; field public static final int MOVE_TASK_NO_USER_ACTION = 2; // 0x2 field public static final int MOVE_TASK_WITH_HOME = 1; // 0x1 field public static final int RECENT_IGNORE_UNAVAILABLE = 2; // 0x2 diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index 2d28280fe71b..8a62d180608a 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -68,6 +68,13 @@ public class ActivityManager { private final Handler mHandler; /** + * <meta-data> string for a 'home' Activity that names a package that is to be + * uninstalled in lieu of the declaring one. The package named here must be + * signed with the same certificate as the one declaring the <meta-data>. + */ + public static final String META_HOME_ALTERNATE = "android.app.home.alternate"; + + /** * Result for IActivityManager.startActivity: an error where the * start had to be canceled. * @hide diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index 7cc568e25d99..1aa5d4123173 100755 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -9884,7 +9884,8 @@ public class PackageManagerService extends IPackageManager.Stub { intent.addCategory(Intent.CATEGORY_HOME); final int callingUserId = UserHandle.getCallingUserId(); - List<ResolveInfo> list = queryIntentActivities(intent, null, 0, callingUserId); + List<ResolveInfo> list = queryIntentActivities(intent, null, + PackageManager.GET_META_DATA, callingUserId); ResolveInfo preferred = findPreferredActivity(intent, null, 0, list, 0, true, false, callingUserId); |