diff options
author | Amith Yamasani <yamasani@google.com> | 2012-10-03 20:16:40 -0700 |
---|---|---|
committer | Amith Yamasani <yamasani@google.com> | 2012-10-03 20:16:40 -0700 |
commit | 203a2f464cef0d873ba8a6193e288fd25b6dc907 (patch) | |
tree | a9062527ebe7aa2bb00bc9b08c20243b4dc73e67 /core/java/com | |
parent | 33c36895a294c7b731fd59017a7ea0f06ac2a356 (diff) | |
download | frameworks_base-203a2f464cef0d873ba8a6193e288fd25b6dc907.zip frameworks_base-203a2f464cef0d873ba8a6193e288fd25b6dc907.tar.gz frameworks_base-203a2f464cef0d873ba8a6193e288fd25b6dc907.tar.bz2 |
Fix launching home when there are multiple launchers installed
Bug: 7283782
Since ResolverActivity now runs in the correct user, it doesn't need to explicitly
pass in the calling userId. In fact, for the Home case, since ActivityManager is
the one requesting resolution of Home activity, Resolver is running as user 0
instead of the current user.
Removing explicit calls based on the launchingUid fixes the problem.
Change-Id: I4676c155aafaa0dd5cefb1acefa0e7e9c1e20f25
Diffstat (limited to 'core/java/com')
-rw-r--r-- | core/java/com/android/internal/app/ResolverActivity.java | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java index 4ad0819..e63c57f 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -150,8 +150,7 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte resizeGrid(); } else if (count == 1) { - startActivityAsUser(mAdapter.intentForPosition(0), - new UserHandle(UserHandle.getUserId(mLaunchedFromUid))); + startActivity(mAdapter.intentForPosition(0)); mPackageMonitor.unregister(); mRegistered = false; finish(); @@ -364,12 +363,12 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte if (r.match > bestMatch) bestMatch = r.match; } getPackageManager().addPreferredActivity(filter, bestMatch, set, - intent.getComponent(), UserHandle.getUserId(mLaunchedFromUid)); + intent.getComponent()); } } if (intent != null) { - startActivityAsUser(intent, new UserHandle(UserHandle.getUserId(mLaunchedFromUid))); + startActivity(intent); } } @@ -377,7 +376,7 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte Intent in = new Intent().setAction("android.settings.APPLICATION_DETAILS_SETTINGS") .setData(Uri.fromParts("package", ri.activityInfo.packageName, null)) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - startActivityAsUser(in, new UserHandle(UserHandle.getUserId(mLaunchedFromUid))); + startActivity(in); } private final class DisplayResolveInfo { @@ -436,10 +435,9 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte if (mBaseResolveList != null) { mCurrentResolveList = mBaseResolveList; } else { - mCurrentResolveList = mPm.queryIntentActivitiesAsUser( + mCurrentResolveList = mPm.queryIntentActivities( mIntent, PackageManager.MATCH_DEFAULT_ONLY - | (mAlwaysUseOption ? PackageManager.GET_RESOLVED_FILTER : 0), - UserHandle.getUserId(mLaunchedFromUid)); + | (mAlwaysUseOption ? PackageManager.GET_RESOLVED_FILTER : 0)); // Filter out any activities that the launched uid does not // have permission for. We don't do this when we have an explicit // list of resolved activities, because that only happens when |