Merge "Convert InstantAppRequestInfo to getters and add @MainThread" into rvc-dev

This commit is contained in:
Winson Chiu
2020-03-19 21:02:36 +00:00
committed by Android (Google) Code Review
4 changed files with 105 additions and 60 deletions

View File

@@ -615,11 +615,11 @@ package android.app {
method @Deprecated public void onGetInstantAppIntentFilter(@Nullable int[], @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback); method @Deprecated public void onGetInstantAppIntentFilter(@Nullable int[], @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
method @Deprecated public void onGetInstantAppIntentFilter(@NonNull android.content.Intent, @Nullable int[], @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback); method @Deprecated public void onGetInstantAppIntentFilter(@NonNull android.content.Intent, @Nullable int[], @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
method @Deprecated public void onGetInstantAppIntentFilter(@NonNull android.content.Intent, @Nullable int[], @NonNull android.os.UserHandle, @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback); method @Deprecated public void onGetInstantAppIntentFilter(@NonNull android.content.Intent, @Nullable int[], @NonNull android.os.UserHandle, @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
method public void onGetInstantAppIntentFilter(@NonNull android.content.pm.InstantAppRequestInfo, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback); method @MainThread public void onGetInstantAppIntentFilter(@NonNull android.content.pm.InstantAppRequestInfo, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
method @Deprecated public void onGetInstantAppResolveInfo(@Nullable int[], @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback); method @Deprecated public void onGetInstantAppResolveInfo(@Nullable int[], @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
method @Deprecated public void onGetInstantAppResolveInfo(@NonNull android.content.Intent, @Nullable int[], @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback); method @Deprecated public void onGetInstantAppResolveInfo(@NonNull android.content.Intent, @Nullable int[], @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
method @Deprecated public void onGetInstantAppResolveInfo(@NonNull android.content.Intent, @Nullable int[], @NonNull android.os.UserHandle, @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback); method @Deprecated public void onGetInstantAppResolveInfo(@NonNull android.content.Intent, @Nullable int[], @NonNull android.os.UserHandle, @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
method public void onGetInstantAppResolveInfo(@NonNull android.content.pm.InstantAppRequestInfo, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback); method @MainThread public void onGetInstantAppResolveInfo(@NonNull android.content.pm.InstantAppRequestInfo, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
} }
public static final class InstantAppResolverService.InstantAppResolutionCallback { public static final class InstantAppResolverService.InstantAppResolutionCallback {
@@ -2043,13 +2043,13 @@ package android.content.pm {
public final class InstantAppRequestInfo implements android.os.Parcelable { public final class InstantAppRequestInfo implements android.os.Parcelable {
ctor public InstantAppRequestInfo(@NonNull android.content.Intent, @Nullable int[], @NonNull android.os.UserHandle, boolean, @NonNull String); ctor public InstantAppRequestInfo(@NonNull android.content.Intent, @Nullable int[], @NonNull android.os.UserHandle, boolean, @NonNull String);
method public int describeContents(); method public int describeContents();
method @Nullable public int[] getHostDigestPrefix();
method @NonNull public android.content.Intent getIntent();
method @NonNull public String getToken();
method @NonNull public android.os.UserHandle getUserHandle();
method public boolean isRequesterInstantApp();
method public void writeToParcel(@NonNull android.os.Parcel, int); method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.InstantAppRequestInfo> CREATOR; field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.InstantAppRequestInfo> CREATOR;
field @Nullable public final int[] hostDigestPrefix;
field @NonNull public final android.content.Intent intent;
field public final boolean isRequesterInstantApp;
field @NonNull public final String token;
field @NonNull public final android.os.UserHandle userHandle;
} }
public final class InstantAppResolveInfo implements android.os.Parcelable { public final class InstantAppResolveInfo implements android.os.Parcelable {

View File

@@ -16,6 +16,7 @@
package android.app; package android.app;
import android.annotation.MainThread;
import android.annotation.NonNull; import android.annotation.NonNull;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.annotation.SystemApi; import android.annotation.SystemApi;
@@ -225,11 +226,12 @@ public abstract class InstantAppResolverService extends Service {
* *
* @see InstantAppResolveInfo * @see InstantAppResolveInfo
*/ */
@MainThread
public void onGetInstantAppResolveInfo(@NonNull InstantAppRequestInfo request, public void onGetInstantAppResolveInfo(@NonNull InstantAppRequestInfo request,
@NonNull InstantAppResolutionCallback callback) { @NonNull InstantAppResolutionCallback callback) {
// If not overridden, forward to the old method. // If not overridden, forward to the old method.
onGetInstantAppResolveInfo(request.intent, request.hostDigestPrefix, request.userHandle, onGetInstantAppResolveInfo(request.getIntent(), request.getHostDigestPrefix(),
request.token, callback); request.getUserHandle(), request.getToken(), callback);
} }
/** /**
@@ -241,11 +243,12 @@ public abstract class InstantAppResolverService extends Service {
* @param request The parameters for this resolution request * @param request The parameters for this resolution request
* @param callback The {@link InstantAppResolutionCallback} to provide results to. * @param callback The {@link InstantAppResolutionCallback} to provide results to.
*/ */
@MainThread
public void onGetInstantAppIntentFilter(@NonNull InstantAppRequestInfo request, public void onGetInstantAppIntentFilter(@NonNull InstantAppRequestInfo request,
@NonNull InstantAppResolutionCallback callback) { @NonNull InstantAppResolutionCallback callback) {
// If not overridden, forward to the old method. // If not overridden, forward to the old method.
onGetInstantAppIntentFilter(request.intent, request.hostDigestPrefix, request.userHandle, onGetInstantAppIntentFilter(request.getIntent(), request.getHostDigestPrefix(),
request.token, callback); request.getUserHandle(), request.getToken(), callback);
} }
/** /**
@@ -268,7 +271,7 @@ public abstract class InstantAppResolverService extends Service {
public void getInstantAppResolveInfoList(InstantAppRequestInfo request, int sequence, public void getInstantAppResolveInfoList(InstantAppRequestInfo request, int sequence,
IRemoteCallback callback) { IRemoteCallback callback) {
if (DEBUG_INSTANT) { if (DEBUG_INSTANT) {
Slog.v(TAG, "[" + request.token + "] Phase1 called; posting"); Slog.v(TAG, "[" + request.getToken() + "] Phase1 called; posting");
} }
final SomeArgs args = SomeArgs.obtain(); final SomeArgs args = SomeArgs.obtain();
args.arg1 = request; args.arg1 = request;
@@ -281,7 +284,7 @@ public abstract class InstantAppResolverService extends Service {
public void getInstantAppIntentFilterList(InstantAppRequestInfo request, public void getInstantAppIntentFilterList(InstantAppRequestInfo request,
IRemoteCallback callback) { IRemoteCallback callback) {
if (DEBUG_INSTANT) { if (DEBUG_INSTANT) {
Slog.v(TAG, "[" + request.token + "] Phase2 called; posting"); Slog.v(TAG, "[" + request.getToken() + "] Phase2 called; posting");
} }
final SomeArgs args = SomeArgs.obtain(); final SomeArgs args = SomeArgs.obtain();
args.arg1 = request; args.arg1 = request;
@@ -336,9 +339,9 @@ public abstract class InstantAppResolverService extends Service {
args.recycle(); args.recycle();
final int sequence = message.arg1; final int sequence = message.arg1;
if (DEBUG_INSTANT) { if (DEBUG_INSTANT) {
Slog.d(TAG, "[" + request.token + "] Phase1 request;" Slog.d(TAG, "[" + request.getToken() + "] Phase1 request;"
+ " prefix: " + Arrays.toString(request.hostDigestPrefix) + " prefix: " + Arrays.toString(request.getHostDigestPrefix())
+ ", userId: " + request.userHandle.getIdentifier()); + ", userId: " + request.getUserHandle().getIdentifier());
} }
onGetInstantAppResolveInfo(request, onGetInstantAppResolveInfo(request,
new InstantAppResolutionCallback(sequence, callback)); new InstantAppResolutionCallback(sequence, callback));
@@ -350,9 +353,9 @@ public abstract class InstantAppResolverService extends Service {
final IRemoteCallback callback = (IRemoteCallback) args.arg2; final IRemoteCallback callback = (IRemoteCallback) args.arg2;
args.recycle(); args.recycle();
if (DEBUG_INSTANT) { if (DEBUG_INSTANT) {
Slog.d(TAG, "[" + request.token + "] Phase2 request;" Slog.d(TAG, "[" + request.getToken() + "] Phase2 request;"
+ " prefix: " + Arrays.toString(request.hostDigestPrefix) + " prefix: " + Arrays.toString(request.getHostDigestPrefix())
+ ", userId: " + request.userHandle.getIdentifier()); + ", userId: " + request.getUserHandle().getIdentifier());
} }
onGetInstantAppIntentFilter(request, onGetInstantAppIntentFilter(request,
new InstantAppResolutionCallback(-1 /*sequence*/, callback)); new InstantAppResolutionCallback(-1 /*sequence*/, callback));

View File

@@ -31,7 +31,7 @@ import com.android.internal.util.DataClass;
* @hide * @hide
*/ */
@SystemApi @SystemApi
@DataClass(genParcelable = true, genConstructor = true, genAidl = true) @DataClass(genParcelable = true, genConstructor = true, genAidl = true, genGetters = true)
public final class InstantAppRequestInfo implements Parcelable { public final class InstantAppRequestInfo implements Parcelable {
/** /**
@@ -40,26 +40,26 @@ public final class InstantAppRequestInfo implements Parcelable {
* host + path of the data, if defined. * host + path of the data, if defined.
*/ */
@NonNull @NonNull
public final Intent intent; private final Intent mIntent;
/** The hash prefix of the instant app's domain or null if no host is defined. */ /** The hash prefix of the instant app's domain or null if no host is defined. */
@Nullable @Nullable
public final int[] hostDigestPrefix; private final int[] mHostDigestPrefix;
/** The user requesting the instant application */ /** The user requesting the instant application */
@NonNull @NonNull
public final UserHandle userHandle; private final UserHandle mUserHandle;
/** Whether or not the requesting package was an instant app itself */ /** Whether or not the requesting package was an instant app itself */
public final boolean isRequesterInstantApp; private final boolean mRequesterInstantApp;
/** A unique identifier */ /** A unique identifier */
@NonNull @NonNull
public final String token; private final String mToken;
// Code below generated by codegen v1.0.13. // Code below generated by codegen v1.0.15.
// //
// DO NOT MODIFY! // DO NOT MODIFY!
// CHECKSTYLE:OFF Generated code // CHECKSTYLE:OFF Generated code
@@ -83,7 +83,7 @@ public final class InstantAppRequestInfo implements Parcelable {
* The hash prefix of the instant app's domain or null if no host is defined. * The hash prefix of the instant app's domain or null if no host is defined.
* @param userHandle * @param userHandle
* The user requesting the instant application * The user requesting the instant application
* @param isRequesterInstantApp * @param requesterInstantApp
* Whether or not the requesting package was an instant app itself * Whether or not the requesting package was an instant app itself
* @param token * @param token
* A unique identifier * A unique identifier
@@ -93,23 +93,65 @@ public final class InstantAppRequestInfo implements Parcelable {
@NonNull Intent intent, @NonNull Intent intent,
@Nullable int[] hostDigestPrefix, @Nullable int[] hostDigestPrefix,
@NonNull UserHandle userHandle, @NonNull UserHandle userHandle,
boolean isRequesterInstantApp, boolean requesterInstantApp,
@NonNull String token) { @NonNull String token) {
this.intent = intent; this.mIntent = intent;
com.android.internal.util.AnnotationValidations.validate( com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, intent); NonNull.class, null, mIntent);
this.hostDigestPrefix = hostDigestPrefix; this.mHostDigestPrefix = hostDigestPrefix;
this.userHandle = userHandle; this.mUserHandle = userHandle;
com.android.internal.util.AnnotationValidations.validate( com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, userHandle); NonNull.class, null, mUserHandle);
this.isRequesterInstantApp = isRequesterInstantApp; this.mRequesterInstantApp = requesterInstantApp;
this.token = token; this.mToken = token;
com.android.internal.util.AnnotationValidations.validate( com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, token); NonNull.class, null, mToken);
// onConstructed(); // You can define this method to get a callback // onConstructed(); // You can define this method to get a callback
} }
/**
* The sanitized {@link Intent} used for resolution. A sanitized Intent is an intent with
* potential PII removed from the original intent. Fields removed include extras and the
* host + path of the data, if defined.
*/
@DataClass.Generated.Member
public @NonNull Intent getIntent() {
return mIntent;
}
/**
* The hash prefix of the instant app's domain or null if no host is defined.
*/
@DataClass.Generated.Member
public @Nullable int[] getHostDigestPrefix() {
return mHostDigestPrefix;
}
/**
* The user requesting the instant application
*/
@DataClass.Generated.Member
public @NonNull UserHandle getUserHandle() {
return mUserHandle;
}
/**
* Whether or not the requesting package was an instant app itself
*/
@DataClass.Generated.Member
public boolean isRequesterInstantApp() {
return mRequesterInstantApp;
}
/**
* A unique identifier
*/
@DataClass.Generated.Member
public @NonNull String getToken() {
return mToken;
}
@Override @Override
@DataClass.Generated.Member @DataClass.Generated.Member
public void writeToParcel(@NonNull android.os.Parcel dest, int flags) { public void writeToParcel(@NonNull android.os.Parcel dest, int flags) {
@@ -117,13 +159,13 @@ public final class InstantAppRequestInfo implements Parcelable {
// void parcelFieldName(Parcel dest, int flags) { ... } // void parcelFieldName(Parcel dest, int flags) { ... }
byte flg = 0; byte flg = 0;
if (isRequesterInstantApp) flg |= 0x8; if (mRequesterInstantApp) flg |= 0x8;
if (hostDigestPrefix != null) flg |= 0x2; if (mHostDigestPrefix != null) flg |= 0x2;
dest.writeByte(flg); dest.writeByte(flg);
dest.writeTypedObject(intent, flags); dest.writeTypedObject(mIntent, flags);
if (hostDigestPrefix != null) dest.writeIntArray(hostDigestPrefix); if (mHostDigestPrefix != null) dest.writeIntArray(mHostDigestPrefix);
dest.writeTypedObject(userHandle, flags); dest.writeTypedObject(mUserHandle, flags);
dest.writeString(token); dest.writeString(mToken);
} }
@Override @Override
@@ -138,23 +180,23 @@ public final class InstantAppRequestInfo implements Parcelable {
// static FieldType unparcelFieldName(Parcel in) { ... } // static FieldType unparcelFieldName(Parcel in) { ... }
byte flg = in.readByte(); byte flg = in.readByte();
boolean _isRequesterInstantApp = (flg & 0x8) != 0; boolean requesterInstantApp = (flg & 0x8) != 0;
Intent _intent = (Intent) in.readTypedObject(Intent.CREATOR); Intent intent = (Intent) in.readTypedObject(Intent.CREATOR);
int[] _hostDigestPrefix = (flg & 0x2) == 0 ? null : in.createIntArray(); int[] hostDigestPrefix = (flg & 0x2) == 0 ? null : in.createIntArray();
UserHandle _userHandle = (UserHandle) in.readTypedObject(UserHandle.CREATOR); UserHandle userHandle = (UserHandle) in.readTypedObject(UserHandle.CREATOR);
String _token = in.readString(); String token = in.readString();
this.intent = _intent; this.mIntent = intent;
com.android.internal.util.AnnotationValidations.validate( com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, intent); NonNull.class, null, mIntent);
this.hostDigestPrefix = _hostDigestPrefix; this.mHostDigestPrefix = hostDigestPrefix;
this.userHandle = _userHandle; this.mUserHandle = userHandle;
com.android.internal.util.AnnotationValidations.validate( com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, userHandle); NonNull.class, null, mUserHandle);
this.isRequesterInstantApp = _isRequesterInstantApp; this.mRequesterInstantApp = requesterInstantApp;
this.token = _token; this.mToken = token;
com.android.internal.util.AnnotationValidations.validate( com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, token); NonNull.class, null, mToken);
// onConstructed(); // You can define this method to get a callback // onConstructed(); // You can define this method to get a callback
} }
@@ -174,10 +216,10 @@ public final class InstantAppRequestInfo implements Parcelable {
}; };
@DataClass.Generated( @DataClass.Generated(
time = 1574373347443L, time = 1583964236162L,
codegenVersion = "1.0.13", codegenVersion = "1.0.15",
sourceFile = "frameworks/base/core/java/android/content/pm/InstantAppRequestInfo.java", sourceFile = "frameworks/base/core/java/android/content/pm/InstantAppRequestInfo.java",
inputSignatures = "public final @android.annotation.NonNull android.content.Intent intent\npublic final @android.annotation.Nullable int[] hostDigestPrefix\npublic final @android.annotation.NonNull android.os.UserHandle userHandle\npublic final boolean isRequesterInstantApp\npublic final @android.annotation.NonNull java.lang.String token\nclass InstantAppRequestInfo extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genParcelable=true, genConstructor=true, genAidl=true)") inputSignatures = "private final @android.annotation.NonNull android.content.Intent mIntent\nprivate final @android.annotation.Nullable int[] mHostDigestPrefix\nprivate final @android.annotation.NonNull android.os.UserHandle mUserHandle\nprivate final boolean mRequesterInstantApp\nprivate final @android.annotation.NonNull java.lang.String mToken\nclass InstantAppRequestInfo extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genParcelable=true, genConstructor=true, genAidl=true, genGetters=true)")
@Deprecated @Deprecated
private void __metadata() {} private void __metadata() {}

View File

@@ -92,7 +92,7 @@ final class InstantAppResolverConnection implements DeathRecipient {
IInstantAppResolver target = null; IInstantAppResolver target = null;
try { try {
try { try {
target = getRemoteInstanceLazy(request.token); target = getRemoteInstanceLazy(request.getToken());
} catch (TimeoutException e) { } catch (TimeoutException e) {
throw new ConnectionException(ConnectionException.FAILURE_BIND); throw new ConnectionException(ConnectionException.FAILURE_BIND);
} catch (InterruptedException e) { } catch (InterruptedException e) {
@@ -126,7 +126,7 @@ final class InstantAppResolverConnection implements DeathRecipient {
} }
}; };
try { try {
getRemoteInstanceLazy(request.token) getRemoteInstanceLazy(request.getToken())
.getInstantAppIntentFilterList(request, remoteCallback); .getInstantAppIntentFilterList(request, remoteCallback);
} catch (TimeoutException e) { } catch (TimeoutException e) {
throw new ConnectionException(ConnectionException.FAILURE_BIND); throw new ConnectionException(ConnectionException.FAILURE_BIND);