summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xapi/system-current.txt14
-rw-r--r--core/java/android/app/InstantAppResolverService.java27
-rw-r--r--core/java/android/content/pm/InstantAppRequestInfo.java120
-rw-r--r--services/core/java/com/android/server/pm/InstantAppResolverConnection.java4
4 files changed, 105 insertions, 60 deletions
diff --git a/api/system-current.txt b/api/system-current.txt
index 0661424da988..1f228cab339e 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -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(@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 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(@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 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 {
@@ -2043,13 +2043,13 @@ package android.content.pm {
public final class InstantAppRequestInfo implements android.os.Parcelable {
ctor public InstantAppRequestInfo(@NonNull android.content.Intent, @Nullable int[], @NonNull android.os.UserHandle, boolean, @NonNull String);
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);
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 {
diff --git a/core/java/android/app/InstantAppResolverService.java b/core/java/android/app/InstantAppResolverService.java
index 0cd030e0f699..4c847dbf9224 100644
--- a/core/java/android/app/InstantAppResolverService.java
+++ b/core/java/android/app/InstantAppResolverService.java
@@ -16,6 +16,7 @@
package android.app;
+import android.annotation.MainThread;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
@@ -225,11 +226,12 @@ public abstract class InstantAppResolverService extends Service {
*
* @see InstantAppResolveInfo
*/
+ @MainThread
public void onGetInstantAppResolveInfo(@NonNull InstantAppRequestInfo request,
@NonNull InstantAppResolutionCallback callback) {
// If not overridden, forward to the old method.
- onGetInstantAppResolveInfo(request.intent, request.hostDigestPrefix, request.userHandle,
- request.token, callback);
+ onGetInstantAppResolveInfo(request.getIntent(), request.getHostDigestPrefix(),
+ request.getUserHandle(), request.getToken(), callback);
}
/**
@@ -241,11 +243,12 @@ public abstract class InstantAppResolverService extends Service {
* @param request The parameters for this resolution request
* @param callback The {@link InstantAppResolutionCallback} to provide results to.
*/
+ @MainThread
public void onGetInstantAppIntentFilter(@NonNull InstantAppRequestInfo request,
@NonNull InstantAppResolutionCallback callback) {
// If not overridden, forward to the old method.
- onGetInstantAppIntentFilter(request.intent, request.hostDigestPrefix, request.userHandle,
- request.token, callback);
+ onGetInstantAppIntentFilter(request.getIntent(), request.getHostDigestPrefix(),
+ request.getUserHandle(), request.getToken(), callback);
}
/**
@@ -268,7 +271,7 @@ public abstract class InstantAppResolverService extends Service {
public void getInstantAppResolveInfoList(InstantAppRequestInfo request, int sequence,
IRemoteCallback callback) {
if (DEBUG_INSTANT) {
- Slog.v(TAG, "[" + request.token + "] Phase1 called; posting");
+ Slog.v(TAG, "[" + request.getToken() + "] Phase1 called; posting");
}
final SomeArgs args = SomeArgs.obtain();
args.arg1 = request;
@@ -281,7 +284,7 @@ public abstract class InstantAppResolverService extends Service {
public void getInstantAppIntentFilterList(InstantAppRequestInfo request,
IRemoteCallback callback) {
if (DEBUG_INSTANT) {
- Slog.v(TAG, "[" + request.token + "] Phase2 called; posting");
+ Slog.v(TAG, "[" + request.getToken() + "] Phase2 called; posting");
}
final SomeArgs args = SomeArgs.obtain();
args.arg1 = request;
@@ -336,9 +339,9 @@ public abstract class InstantAppResolverService extends Service {
args.recycle();
final int sequence = message.arg1;
if (DEBUG_INSTANT) {
- Slog.d(TAG, "[" + request.token + "] Phase1 request;"
- + " prefix: " + Arrays.toString(request.hostDigestPrefix)
- + ", userId: " + request.userHandle.getIdentifier());
+ Slog.d(TAG, "[" + request.getToken() + "] Phase1 request;"
+ + " prefix: " + Arrays.toString(request.getHostDigestPrefix())
+ + ", userId: " + request.getUserHandle().getIdentifier());
}
onGetInstantAppResolveInfo(request,
new InstantAppResolutionCallback(sequence, callback));
@@ -350,9 +353,9 @@ public abstract class InstantAppResolverService extends Service {
final IRemoteCallback callback = (IRemoteCallback) args.arg2;
args.recycle();
if (DEBUG_INSTANT) {
- Slog.d(TAG, "[" + request.token + "] Phase2 request;"
- + " prefix: " + Arrays.toString(request.hostDigestPrefix)
- + ", userId: " + request.userHandle.getIdentifier());
+ Slog.d(TAG, "[" + request.getToken() + "] Phase2 request;"
+ + " prefix: " + Arrays.toString(request.getHostDigestPrefix())
+ + ", userId: " + request.getUserHandle().getIdentifier());
}
onGetInstantAppIntentFilter(request,
new InstantAppResolutionCallback(-1 /*sequence*/, callback));
diff --git a/core/java/android/content/pm/InstantAppRequestInfo.java b/core/java/android/content/pm/InstantAppRequestInfo.java
index 83d55361ff2a..c531632cd0e1 100644
--- a/core/java/android/content/pm/InstantAppRequestInfo.java
+++ b/core/java/android/content/pm/InstantAppRequestInfo.java
@@ -31,7 +31,7 @@ import com.android.internal.util.DataClass;
* @hide
*/
@SystemApi
-@DataClass(genParcelable = true, genConstructor = true, genAidl = true)
+@DataClass(genParcelable = true, genConstructor = true, genAidl = true, genGetters = true)
public final class InstantAppRequestInfo implements Parcelable {
/**
@@ -40,26 +40,26 @@ public final class InstantAppRequestInfo implements Parcelable {
* host + path of the data, if defined.
*/
@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. */
@Nullable
- public final int[] hostDigestPrefix;
+ private final int[] mHostDigestPrefix;
/** The user requesting the instant application */
@NonNull
- public final UserHandle userHandle;
+ private final UserHandle mUserHandle;
/** Whether or not the requesting package was an instant app itself */
- public final boolean isRequesterInstantApp;
+ private final boolean mRequesterInstantApp;
/** A unique identifier */
@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!
// 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.
* @param userHandle
* The user requesting the instant application
- * @param isRequesterInstantApp
+ * @param requesterInstantApp
* Whether or not the requesting package was an instant app itself
* @param token
* A unique identifier
@@ -93,23 +93,65 @@ public final class InstantAppRequestInfo implements Parcelable {
@NonNull Intent intent,
@Nullable int[] hostDigestPrefix,
@NonNull UserHandle userHandle,
- boolean isRequesterInstantApp,
+ boolean requesterInstantApp,
@NonNull String token) {
- this.intent = intent;
+ this.mIntent = intent;
com.android.internal.util.AnnotationValidations.validate(
- NonNull.class, null, intent);
- this.hostDigestPrefix = hostDigestPrefix;
- this.userHandle = userHandle;
+ NonNull.class, null, mIntent);
+ this.mHostDigestPrefix = hostDigestPrefix;
+ this.mUserHandle = userHandle;
com.android.internal.util.AnnotationValidations.validate(
- NonNull.class, null, userHandle);
- this.isRequesterInstantApp = isRequesterInstantApp;
- this.token = token;
+ NonNull.class, null, mUserHandle);
+ this.mRequesterInstantApp = requesterInstantApp;
+ this.mToken = token;
com.android.internal.util.AnnotationValidations.validate(
- NonNull.class, null, token);
+ NonNull.class, null, mToken);
// 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
@DataClass.Generated.Member
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) { ... }
byte flg = 0;
- if (isRequesterInstantApp) flg |= 0x8;
- if (hostDigestPrefix != null) flg |= 0x2;
+ if (mRequesterInstantApp) flg |= 0x8;
+ if (mHostDigestPrefix != null) flg |= 0x2;
dest.writeByte(flg);
- dest.writeTypedObject(intent, flags);
- if (hostDigestPrefix != null) dest.writeIntArray(hostDigestPrefix);
- dest.writeTypedObject(userHandle, flags);
- dest.writeString(token);
+ dest.writeTypedObject(mIntent, flags);
+ if (mHostDigestPrefix != null) dest.writeIntArray(mHostDigestPrefix);
+ dest.writeTypedObject(mUserHandle, flags);
+ dest.writeString(mToken);
}
@Override
@@ -138,23 +180,23 @@ public final class InstantAppRequestInfo implements Parcelable {
// static FieldType unparcelFieldName(Parcel in) { ... }
byte flg = in.readByte();
- boolean _isRequesterInstantApp = (flg & 0x8) != 0;
- Intent _intent = (Intent) in.readTypedObject(Intent.CREATOR);
- int[] _hostDigestPrefix = (flg & 0x2) == 0 ? null : in.createIntArray();
- UserHandle _userHandle = (UserHandle) in.readTypedObject(UserHandle.CREATOR);
- String _token = in.readString();
+ boolean requesterInstantApp = (flg & 0x8) != 0;
+ Intent intent = (Intent) in.readTypedObject(Intent.CREATOR);
+ int[] hostDigestPrefix = (flg & 0x2) == 0 ? null : in.createIntArray();
+ UserHandle userHandle = (UserHandle) in.readTypedObject(UserHandle.CREATOR);
+ String token = in.readString();
- this.intent = _intent;
+ this.mIntent = intent;
com.android.internal.util.AnnotationValidations.validate(
- NonNull.class, null, intent);
- this.hostDigestPrefix = _hostDigestPrefix;
- this.userHandle = _userHandle;
+ NonNull.class, null, mIntent);
+ this.mHostDigestPrefix = hostDigestPrefix;
+ this.mUserHandle = userHandle;
com.android.internal.util.AnnotationValidations.validate(
- NonNull.class, null, userHandle);
- this.isRequesterInstantApp = _isRequesterInstantApp;
- this.token = _token;
+ NonNull.class, null, mUserHandle);
+ this.mRequesterInstantApp = requesterInstantApp;
+ this.mToken = token;
com.android.internal.util.AnnotationValidations.validate(
- NonNull.class, null, token);
+ NonNull.class, null, mToken);
// onConstructed(); // You can define this method to get a callback
}
@@ -174,10 +216,10 @@ public final class InstantAppRequestInfo implements Parcelable {
};
@DataClass.Generated(
- time = 1574373347443L,
- codegenVersion = "1.0.13",
+ time = 1583964236162L,
+ codegenVersion = "1.0.15",
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
private void __metadata() {}
diff --git a/services/core/java/com/android/server/pm/InstantAppResolverConnection.java b/services/core/java/com/android/server/pm/InstantAppResolverConnection.java
index 0fe2eb1e6f4b..a9a4589fdb94 100644
--- a/services/core/java/com/android/server/pm/InstantAppResolverConnection.java
+++ b/services/core/java/com/android/server/pm/InstantAppResolverConnection.java
@@ -92,7 +92,7 @@ final class InstantAppResolverConnection implements DeathRecipient {
IInstantAppResolver target = null;
try {
try {
- target = getRemoteInstanceLazy(request.token);
+ target = getRemoteInstanceLazy(request.getToken());
} catch (TimeoutException e) {
throw new ConnectionException(ConnectionException.FAILURE_BIND);
} catch (InterruptedException e) {
@@ -126,7 +126,7 @@ final class InstantAppResolverConnection implements DeathRecipient {
}
};
try {
- getRemoteInstanceLazy(request.token)
+ getRemoteInstanceLazy(request.getToken())
.getInstantAppIntentFilterList(request, remoteCallback);
} catch (TimeoutException e) {
throw new ConnectionException(ConnectionException.FAILURE_BIND);