Merge "Adding userHandle in ResolveInfo"
This commit is contained in:
committed by
Android (Google) Code Review
commit
17ee1d6985
@@ -16,6 +16,7 @@
|
||||
|
||||
package android.content.pm;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.SystemApi;
|
||||
import android.compat.annotation.UnsupportedAppUsage;
|
||||
import android.content.ComponentName;
|
||||
@@ -106,6 +107,14 @@ public class ResolveInfo implements Parcelable {
|
||||
*/
|
||||
public int match;
|
||||
|
||||
/**
|
||||
* UserHandle of originating user for ResolveInfo. This will help caller distinguish cross
|
||||
* profile results from intent resolution.
|
||||
* @hide
|
||||
*/
|
||||
@Nullable
|
||||
public UserHandle userHandle;
|
||||
|
||||
/**
|
||||
* Only set when returned by
|
||||
* {@link PackageManager#queryIntentActivityOptions}, this tells you
|
||||
@@ -418,6 +427,7 @@ public class ResolveInfo implements Parcelable {
|
||||
handleAllWebDataURI = orig.handleAllWebDataURI;
|
||||
mAutoResolutionAllowed = orig.mAutoResolutionAllowed;
|
||||
isInstantAppAvailable = orig.isInstantAppAvailable;
|
||||
userHandle = orig.userHandle;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
@@ -441,6 +451,10 @@ public class ResolveInfo implements Parcelable {
|
||||
sb.append(" targetUserId=");
|
||||
sb.append(targetUserId);
|
||||
}
|
||||
|
||||
sb.append(" userHandle=");
|
||||
sb.append(userHandle);
|
||||
|
||||
sb.append('}');
|
||||
return sb.toString();
|
||||
}
|
||||
@@ -483,6 +497,7 @@ public class ResolveInfo implements Parcelable {
|
||||
dest.writeInt(handleAllWebDataURI ? 1 : 0);
|
||||
dest.writeInt(mAutoResolutionAllowed ? 1 : 0);
|
||||
dest.writeInt(isInstantAppAvailable ? 1 : 0);
|
||||
dest.writeInt(userHandle != null ? userHandle.getIdentifier() : UserHandle.USER_CURRENT);
|
||||
}
|
||||
|
||||
public static final @android.annotation.NonNull Creator<ResolveInfo> CREATOR
|
||||
@@ -532,6 +547,10 @@ public class ResolveInfo implements Parcelable {
|
||||
handleAllWebDataURI = source.readInt() != 0;
|
||||
mAutoResolutionAllowed = source.readInt() != 0;
|
||||
isInstantAppAvailable = source.readInt() != 0;
|
||||
int userHandleId = source.readInt();
|
||||
if (userHandleId != UserHandle.USER_CURRENT) {
|
||||
userHandle = UserHandle.of(userHandleId);
|
||||
}
|
||||
}
|
||||
|
||||
public static class DisplayNameComparator
|
||||
|
||||
@@ -1755,6 +1755,7 @@ public class ComputerEngine implements Computer {
|
||||
forwardingResolveInfo.isDefault = true;
|
||||
forwardingResolveInfo.filter = new IntentFilter(filter.getIntentFilter());
|
||||
forwardingResolveInfo.targetUserId = targetUserId;
|
||||
forwardingResolveInfo.userHandle = UserHandle.of(sourceUserId);
|
||||
return forwardingResolveInfo;
|
||||
}
|
||||
|
||||
|
||||
@@ -281,6 +281,7 @@ final class ResolveIntentHelper {
|
||||
ri.handleAllWebDataURI = browserCount == n;
|
||||
ri.activityInfo = new ActivityInfo(ri.activityInfo);
|
||||
ri.activityInfo.labelRes = ResolverActivity.getLabelRes(intent.getAction());
|
||||
if (ri.userHandle == null) ri.userHandle = UserHandle.of(userId);
|
||||
// If all of the options come from the same package, show the application's
|
||||
// label and icon instead of the generic resolver's.
|
||||
// Some calls like Intent.resolveActivityInfo query the ResolveInfo from here
|
||||
|
||||
@@ -35,6 +35,7 @@ import android.content.pm.PackageManager;
|
||||
import android.content.pm.ProviderInfo;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.content.pm.ServiceInfo;
|
||||
import android.os.UserHandle;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.ArraySet;
|
||||
import android.util.DebugUtils;
|
||||
@@ -1197,6 +1198,7 @@ public class ComponentResolver extends ComponentResolverLocked implements
|
||||
res.iconResourceId = info.getIcon();
|
||||
res.system = res.activityInfo.applicationInfo.isSystemApp();
|
||||
res.isInstantAppAvailable = userState.isInstantApp();
|
||||
res.userHandle = UserHandle.of(userId);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user