Loading core/java/com/android/internal/app/IntentForwarderActivity.java +6 −4 Original line number Diff line number Diff line Loading @@ -76,17 +76,19 @@ public class IntentForwarderActivity extends Activity { } Intent newIntent = new Intent(intentReceived); newIntent.setComponent(null); // Apps should not be allowed to target a specific package in the target user. newIntent.setPackage(null); newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT |Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP); int callingUserId = getUserId(); IPackageManager ipm = AppGlobals.getPackageManager(); String resolvedType = newIntent.resolveTypeIfNeeded(getContentResolver()); boolean canForward = false; try { Intent selector = newIntent.getSelector(); if (selector == null) { selector = newIntent; } try { canForward = ipm.canForwardTo(selector, resolvedType, callingUserId, userDest.getIdentifier()); } catch (RemoteException e) { Loading services/core/java/com/android/server/pm/PackageManagerService.java +11 −13 Original line number Diff line number Diff line Loading @@ -3204,19 +3204,15 @@ public class PackageManagerService extends IPackageManager.Stub { if (matches.get(i).getTargetUserId() == targetUserId) return true; } } ArrayList<String> packageNames = null; SparseArray<ArrayList<String>> fromSource = mSettings.mCrossProfilePackageInfo.get(sourceUserId); if (fromSource != null) { packageNames = fromSource.get(targetUserId); } if (packageNames != null && packageNames.contains(intent.getPackage())) { return true; } if (packageNames != null) { // We need the package name, so we try to resolve with the loosest flags possible List<ResolveInfo> resolveInfos = mActivities.queryIntent( intent, resolvedType, PackageManager.GET_UNINSTALLED_PACKAGES, targetUserId); List<ResolveInfo> resolveInfos = mActivities.queryIntent(intent, resolvedType, PackageManager.GET_UNINSTALLED_PACKAGES, targetUserId); int count = resolveInfos.size(); for (int i = 0; i < count; i++) { ResolveInfo resolveInfo = resolveInfos.get(i); Loading @@ -3224,6 +3220,8 @@ public class PackageManagerService extends IPackageManager.Stub { return true; } } } } return false; } Loading Loading
core/java/com/android/internal/app/IntentForwarderActivity.java +6 −4 Original line number Diff line number Diff line Loading @@ -76,17 +76,19 @@ public class IntentForwarderActivity extends Activity { } Intent newIntent = new Intent(intentReceived); newIntent.setComponent(null); // Apps should not be allowed to target a specific package in the target user. newIntent.setPackage(null); newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT |Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP); int callingUserId = getUserId(); IPackageManager ipm = AppGlobals.getPackageManager(); String resolvedType = newIntent.resolveTypeIfNeeded(getContentResolver()); boolean canForward = false; try { Intent selector = newIntent.getSelector(); if (selector == null) { selector = newIntent; } try { canForward = ipm.canForwardTo(selector, resolvedType, callingUserId, userDest.getIdentifier()); } catch (RemoteException e) { Loading
services/core/java/com/android/server/pm/PackageManagerService.java +11 −13 Original line number Diff line number Diff line Loading @@ -3204,19 +3204,15 @@ public class PackageManagerService extends IPackageManager.Stub { if (matches.get(i).getTargetUserId() == targetUserId) return true; } } ArrayList<String> packageNames = null; SparseArray<ArrayList<String>> fromSource = mSettings.mCrossProfilePackageInfo.get(sourceUserId); if (fromSource != null) { packageNames = fromSource.get(targetUserId); } if (packageNames != null && packageNames.contains(intent.getPackage())) { return true; } if (packageNames != null) { // We need the package name, so we try to resolve with the loosest flags possible List<ResolveInfo> resolveInfos = mActivities.queryIntent( intent, resolvedType, PackageManager.GET_UNINSTALLED_PACKAGES, targetUserId); List<ResolveInfo> resolveInfos = mActivities.queryIntent(intent, resolvedType, PackageManager.GET_UNINSTALLED_PACKAGES, targetUserId); int count = resolveInfos.size(); for (int i = 0; i < count; i++) { ResolveInfo resolveInfo = resolveInfos.get(i); Loading @@ -3224,6 +3220,8 @@ public class PackageManagerService extends IPackageManager.Stub { return true; } } } } return false; } Loading