Merge "Creating internal only getActivityInfo for Cross Profile"
This commit is contained in:
committed by
Android (Google) Code Review
commit
bf491bdf69
@@ -124,6 +124,14 @@ public interface Computer extends PackageDataSnapshot {
|
||||
String instantAppPkgName);
|
||||
ActivityInfo getActivityInfo(ComponentName component, long flags, int userId);
|
||||
|
||||
/**
|
||||
* Similar to {@link Computer#getActivityInfo(android.content.ComponentName, long, int)} but
|
||||
* only visible as internal service. This method bypass INTERACT_ACROSS_USERS or
|
||||
* INTERACT_ACROSS_USERS_FULL permission checks and only to be used for intent resolution across
|
||||
* chained cross profiles
|
||||
*/
|
||||
ActivityInfo getActivityInfoCrossProfile(ComponentName component, long flags, int userId);
|
||||
|
||||
/**
|
||||
* Important: The provided filterCallingUid is used exclusively to filter out activities
|
||||
* that can be seen based on user state. It's typically the original caller uid prior
|
||||
|
||||
@@ -834,6 +834,24 @@ public class ComputerEngine implements Computer {
|
||||
return getActivityInfoInternal(component, flags, Binder.getCallingUid(), userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Similar to {@link Computer#getActivityInfo(android.content.ComponentName, long, int)} but
|
||||
* only visible as internal service. This method bypass INTERACT_ACROSS_USERS or
|
||||
* INTERACT_ACROSS_USERS_FULL permission checks and only to be used for intent resolution across
|
||||
* chained cross profiles
|
||||
* @param component application's component
|
||||
* @param flags resolve info flags
|
||||
* @param userId user id where activity resides
|
||||
* @return ActivityInfo corresponding to requested component.
|
||||
*/
|
||||
public final ActivityInfo getActivityInfoCrossProfile(ComponentName component,
|
||||
@PackageManager.ResolveInfoFlagsBits long flags, int userId) {
|
||||
if (!mUserManager.exists(userId)) return null;
|
||||
flags = updateFlagsForComponent(flags, userId);
|
||||
|
||||
return getActivityInfoInternalBody(component, flags, Binder.getCallingUid(), userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Important: The provided filterCallingUid is used exclusively to filter out activities
|
||||
* that can be seen based on user state. It's typically the original caller uid prior
|
||||
@@ -1711,7 +1729,7 @@ public class ComputerEngine implements Computer {
|
||||
ComponentName forwardingActivityComponentName = new ComponentName(
|
||||
androidApplication().packageName, className);
|
||||
ActivityInfo forwardingActivityInfo =
|
||||
getActivityInfo(forwardingActivityComponentName, 0,
|
||||
getActivityInfoCrossProfile(forwardingActivityComponentName, 0,
|
||||
sourceUserId);
|
||||
if (!targetIsProfile) {
|
||||
forwardingActivityInfo.showUserIcon = targetUserId;
|
||||
|
||||
Reference in New Issue
Block a user