Loading api/system-current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -783,11 +783,12 @@ package android.content.pm { public final class InstantAppResolveInfo implements android.os.Parcelable { ctor public InstantAppResolveInfo(android.content.pm.InstantAppResolveInfo.InstantAppDigest, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>, int); ctor public InstantAppResolveInfo(android.content.pm.InstantAppResolveInfo.InstantAppDigest, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>, long); ctor public InstantAppResolveInfo(android.content.pm.InstantAppResolveInfo.InstantAppDigest, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>, long, android.os.Bundle); ctor public InstantAppResolveInfo(java.lang.String, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>); method public int describeContents(); method public byte[] getDigestBytes(); method public int getDigestPrefix(); method public android.os.Bundle getExtras(); method public java.util.List<android.content.pm.InstantAppIntentFilter> getIntentFilters(); method public long getLongVersionCode(); method public java.lang.String getPackageName(); Loading core/java/android/content/Intent.java +10 −0 Original line number Diff line number Diff line Loading @@ -4460,6 +4460,16 @@ public class Intent implements Parcelable, Cloneable { */ public static final String EXTRA_INSTANT_APP_ACTION = "android.intent.extra.INSTANT_APP_ACTION"; /** * A {@link Bundle} of metadata that describes the instanta application that needs to be * installed. This data is populated from the response to * {@link android.content.pm.InstantAppResolveInfo#getExtras()} as provided by the registered * instant application resolver. * @hide */ public static final String EXTRA_INSTANT_APP_EXTRAS = "android.intent.extra.INSTANT_APP_EXTRAS"; /** * The version code of the app to install components from. * @deprecated Use {@link #EXTRA_LONG_VERSION_CODE). Loading core/java/android/content/pm/InstantAppResolveInfo.java +16 −5 Original line number Diff line number Diff line Loading @@ -19,8 +19,7 @@ package android.content.pm; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.content.IntentFilter; import android.net.Uri; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; Loading @@ -45,14 +44,17 @@ public final class InstantAppResolveInfo implements Parcelable { private final List<InstantAppIntentFilter> mFilters; /** The version code of the app that this class resolves to */ private final long mVersionCode; /** Data about the app that should be passed along to the Instant App installer on resolve */ private final Bundle mExtras; public InstantAppResolveInfo(@NonNull InstantAppDigest digest, @Nullable String packageName, @Nullable List<InstantAppIntentFilter> filters, int versionCode) { this(digest, packageName, filters, (long)versionCode); this(digest, packageName, filters, (long) versionCode, null /* extras */); } public InstantAppResolveInfo(@NonNull InstantAppDigest digest, @Nullable String packageName, @Nullable List<InstantAppIntentFilter> filters, long versionCode) { @Nullable List<InstantAppIntentFilter> filters, long versionCode, @Nullable Bundle extras) { // validate arguments if ((packageName == null && (filters != null && filters.size() != 0)) || (packageName != null && (filters == null || filters.size() == 0))) { Loading @@ -67,11 +69,13 @@ public final class InstantAppResolveInfo implements Parcelable { } mPackageName = packageName; mVersionCode = versionCode; mExtras = extras; } public InstantAppResolveInfo(@NonNull String hostName, @Nullable String packageName, @Nullable List<InstantAppIntentFilter> filters) { this(new InstantAppDigest(hostName), packageName, filters, -1 /*versionCode*/); this(new InstantAppDigest(hostName), packageName, filters, -1 /*versionCode*/, null /* extras */); } InstantAppResolveInfo(Parcel in) { Loading @@ -80,6 +84,7 @@ public final class InstantAppResolveInfo implements Parcelable { mFilters = new ArrayList<InstantAppIntentFilter>(); in.readList(mFilters, null /*loader*/); mVersionCode = in.readLong(); mExtras = in.readBundle(); } public byte[] getDigestBytes() { Loading Loading @@ -110,6 +115,11 @@ public final class InstantAppResolveInfo implements Parcelable { return mVersionCode; } @Nullable public Bundle getExtras() { return mExtras; } @Override public int describeContents() { return 0; Loading @@ -121,6 +131,7 @@ public final class InstantAppResolveInfo implements Parcelable { out.writeString(mPackageName); out.writeList(mFilters); out.writeLong(mVersionCode); out.writeBundle(mExtras); } public static final Parcelable.Creator<InstantAppResolveInfo> CREATOR Loading services/core/java/com/android/server/am/ActivityStarter.java +2 −2 Original line number Diff line number Diff line Loading @@ -86,7 +86,6 @@ import android.content.IntentSender; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.AuxiliaryResolveInfo; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.UserInfo; Loading Loading @@ -673,7 +672,8 @@ class ActivityStarter { auxiliaryResponse.failureIntent, callingPackage, verificationBundle, resolvedType, userId, auxiliaryResponse.packageName, auxiliaryResponse.splitName, auxiliaryResponse.installFailureActivity, auxiliaryResponse.versionCode, auxiliaryResponse.token, auxiliaryResponse.needsPhaseTwo); auxiliaryResponse.token, auxiliaryResponse.resolveInfo.getExtras(), auxiliaryResponse.needsPhaseTwo); } void postStartActivityProcessing(ActivityRecord r, int result, ActivityStack targetStack) { Loading services/core/java/com/android/server/pm/InstantAppResolver.java +9 −5 Original line number Diff line number Diff line Loading @@ -40,14 +40,11 @@ import android.content.pm.InstantAppIntentFilter; import android.content.pm.InstantAppResolveInfo; import android.content.pm.InstantAppResolveInfo.InstantAppDigest; import android.metrics.LogMaker; import android.os.Binder; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.RemoteException; import android.util.Log; import android.util.Pair; import android.util.Slog; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto; Loading @@ -56,11 +53,9 @@ import com.android.server.pm.EphemeralResolverConnection.PhaseTwoCallback; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.UUID; import java.util.concurrent.TimeoutException; /** @hide */ public abstract class InstantAppResolver { Loading Loading @@ -161,6 +156,7 @@ public abstract class InstantAppResolver { final String splitName; final long versionCode; final Intent failureIntent; final Bundle extras; if (instantAppResolveInfoList != null && instantAppResolveInfoList.size() > 0) { final AuxiliaryResolveInfo instantAppIntentInfo = InstantAppResolver.filterInstantAppIntent( Loading @@ -172,17 +168,20 @@ public abstract class InstantAppResolver { splitName = instantAppIntentInfo.splitName; versionCode = instantAppIntentInfo.resolveInfo.getVersionCode(); failureIntent = instantAppIntentInfo.failureIntent; extras = instantAppIntentInfo.resolveInfo.getExtras(); } else { packageName = null; splitName = null; versionCode = -1; failureIntent = null; extras = null; } } else { packageName = null; splitName = null; versionCode = -1; failureIntent = null; extras = null; } final Intent installerIntent = buildEphemeralInstallerIntent( Intent.ACTION_RESOLVE_INSTANT_APP_PACKAGE, Loading @@ -197,6 +196,7 @@ public abstract class InstantAppResolver { requestObj.responseObj.installFailureActivity, versionCode, token, extras, false /*needsPhaseTwo*/); installerIntent.setComponent(new ComponentName( instantAppInstaller.packageName, instantAppInstaller.name)); Loading Loading @@ -243,6 +243,7 @@ public abstract class InstantAppResolver { @Nullable ComponentName installFailureActivity, long versionCode, @Nullable String token, @Nullable Bundle extras, boolean needsPhaseTwo) { // Construct the intent that launches the instant installer int flags = origIntent.getFlags(); Loading @@ -259,6 +260,9 @@ public abstract class InstantAppResolver { intent.putExtra(Intent.EXTRA_EPHEMERAL_HOSTNAME, origIntent.getData().getHost()); } intent.putExtra(Intent.EXTRA_INSTANT_APP_ACTION, origIntent.getAction()); if (extras != null) { intent.putExtra(Intent.EXTRA_INSTANT_APP_EXTRAS, extras); } // We have all of the data we need; just start the installer without a second phase if (!needsPhaseTwo) { Loading Loading
api/system-current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -783,11 +783,12 @@ package android.content.pm { public final class InstantAppResolveInfo implements android.os.Parcelable { ctor public InstantAppResolveInfo(android.content.pm.InstantAppResolveInfo.InstantAppDigest, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>, int); ctor public InstantAppResolveInfo(android.content.pm.InstantAppResolveInfo.InstantAppDigest, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>, long); ctor public InstantAppResolveInfo(android.content.pm.InstantAppResolveInfo.InstantAppDigest, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>, long, android.os.Bundle); ctor public InstantAppResolveInfo(java.lang.String, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>); method public int describeContents(); method public byte[] getDigestBytes(); method public int getDigestPrefix(); method public android.os.Bundle getExtras(); method public java.util.List<android.content.pm.InstantAppIntentFilter> getIntentFilters(); method public long getLongVersionCode(); method public java.lang.String getPackageName(); Loading
core/java/android/content/Intent.java +10 −0 Original line number Diff line number Diff line Loading @@ -4460,6 +4460,16 @@ public class Intent implements Parcelable, Cloneable { */ public static final String EXTRA_INSTANT_APP_ACTION = "android.intent.extra.INSTANT_APP_ACTION"; /** * A {@link Bundle} of metadata that describes the instanta application that needs to be * installed. This data is populated from the response to * {@link android.content.pm.InstantAppResolveInfo#getExtras()} as provided by the registered * instant application resolver. * @hide */ public static final String EXTRA_INSTANT_APP_EXTRAS = "android.intent.extra.INSTANT_APP_EXTRAS"; /** * The version code of the app to install components from. * @deprecated Use {@link #EXTRA_LONG_VERSION_CODE). Loading
core/java/android/content/pm/InstantAppResolveInfo.java +16 −5 Original line number Diff line number Diff line Loading @@ -19,8 +19,7 @@ package android.content.pm; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.content.IntentFilter; import android.net.Uri; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; Loading @@ -45,14 +44,17 @@ public final class InstantAppResolveInfo implements Parcelable { private final List<InstantAppIntentFilter> mFilters; /** The version code of the app that this class resolves to */ private final long mVersionCode; /** Data about the app that should be passed along to the Instant App installer on resolve */ private final Bundle mExtras; public InstantAppResolveInfo(@NonNull InstantAppDigest digest, @Nullable String packageName, @Nullable List<InstantAppIntentFilter> filters, int versionCode) { this(digest, packageName, filters, (long)versionCode); this(digest, packageName, filters, (long) versionCode, null /* extras */); } public InstantAppResolveInfo(@NonNull InstantAppDigest digest, @Nullable String packageName, @Nullable List<InstantAppIntentFilter> filters, long versionCode) { @Nullable List<InstantAppIntentFilter> filters, long versionCode, @Nullable Bundle extras) { // validate arguments if ((packageName == null && (filters != null && filters.size() != 0)) || (packageName != null && (filters == null || filters.size() == 0))) { Loading @@ -67,11 +69,13 @@ public final class InstantAppResolveInfo implements Parcelable { } mPackageName = packageName; mVersionCode = versionCode; mExtras = extras; } public InstantAppResolveInfo(@NonNull String hostName, @Nullable String packageName, @Nullable List<InstantAppIntentFilter> filters) { this(new InstantAppDigest(hostName), packageName, filters, -1 /*versionCode*/); this(new InstantAppDigest(hostName), packageName, filters, -1 /*versionCode*/, null /* extras */); } InstantAppResolveInfo(Parcel in) { Loading @@ -80,6 +84,7 @@ public final class InstantAppResolveInfo implements Parcelable { mFilters = new ArrayList<InstantAppIntentFilter>(); in.readList(mFilters, null /*loader*/); mVersionCode = in.readLong(); mExtras = in.readBundle(); } public byte[] getDigestBytes() { Loading Loading @@ -110,6 +115,11 @@ public final class InstantAppResolveInfo implements Parcelable { return mVersionCode; } @Nullable public Bundle getExtras() { return mExtras; } @Override public int describeContents() { return 0; Loading @@ -121,6 +131,7 @@ public final class InstantAppResolveInfo implements Parcelable { out.writeString(mPackageName); out.writeList(mFilters); out.writeLong(mVersionCode); out.writeBundle(mExtras); } public static final Parcelable.Creator<InstantAppResolveInfo> CREATOR Loading
services/core/java/com/android/server/am/ActivityStarter.java +2 −2 Original line number Diff line number Diff line Loading @@ -86,7 +86,6 @@ import android.content.IntentSender; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.AuxiliaryResolveInfo; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.UserInfo; Loading Loading @@ -673,7 +672,8 @@ class ActivityStarter { auxiliaryResponse.failureIntent, callingPackage, verificationBundle, resolvedType, userId, auxiliaryResponse.packageName, auxiliaryResponse.splitName, auxiliaryResponse.installFailureActivity, auxiliaryResponse.versionCode, auxiliaryResponse.token, auxiliaryResponse.needsPhaseTwo); auxiliaryResponse.token, auxiliaryResponse.resolveInfo.getExtras(), auxiliaryResponse.needsPhaseTwo); } void postStartActivityProcessing(ActivityRecord r, int result, ActivityStack targetStack) { Loading
services/core/java/com/android/server/pm/InstantAppResolver.java +9 −5 Original line number Diff line number Diff line Loading @@ -40,14 +40,11 @@ import android.content.pm.InstantAppIntentFilter; import android.content.pm.InstantAppResolveInfo; import android.content.pm.InstantAppResolveInfo.InstantAppDigest; import android.metrics.LogMaker; import android.os.Binder; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.RemoteException; import android.util.Log; import android.util.Pair; import android.util.Slog; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto; Loading @@ -56,11 +53,9 @@ import com.android.server.pm.EphemeralResolverConnection.PhaseTwoCallback; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.UUID; import java.util.concurrent.TimeoutException; /** @hide */ public abstract class InstantAppResolver { Loading Loading @@ -161,6 +156,7 @@ public abstract class InstantAppResolver { final String splitName; final long versionCode; final Intent failureIntent; final Bundle extras; if (instantAppResolveInfoList != null && instantAppResolveInfoList.size() > 0) { final AuxiliaryResolveInfo instantAppIntentInfo = InstantAppResolver.filterInstantAppIntent( Loading @@ -172,17 +168,20 @@ public abstract class InstantAppResolver { splitName = instantAppIntentInfo.splitName; versionCode = instantAppIntentInfo.resolveInfo.getVersionCode(); failureIntent = instantAppIntentInfo.failureIntent; extras = instantAppIntentInfo.resolveInfo.getExtras(); } else { packageName = null; splitName = null; versionCode = -1; failureIntent = null; extras = null; } } else { packageName = null; splitName = null; versionCode = -1; failureIntent = null; extras = null; } final Intent installerIntent = buildEphemeralInstallerIntent( Intent.ACTION_RESOLVE_INSTANT_APP_PACKAGE, Loading @@ -197,6 +196,7 @@ public abstract class InstantAppResolver { requestObj.responseObj.installFailureActivity, versionCode, token, extras, false /*needsPhaseTwo*/); installerIntent.setComponent(new ComponentName( instantAppInstaller.packageName, instantAppInstaller.name)); Loading Loading @@ -243,6 +243,7 @@ public abstract class InstantAppResolver { @Nullable ComponentName installFailureActivity, long versionCode, @Nullable String token, @Nullable Bundle extras, boolean needsPhaseTwo) { // Construct the intent that launches the instant installer int flags = origIntent.getFlags(); Loading @@ -259,6 +260,9 @@ public abstract class InstantAppResolver { intent.putExtra(Intent.EXTRA_EPHEMERAL_HOSTNAME, origIntent.getData().getHost()); } intent.putExtra(Intent.EXTRA_INSTANT_APP_ACTION, origIntent.getAction()); if (extras != null) { intent.putExtra(Intent.EXTRA_INSTANT_APP_EXTRAS, extras); } // We have all of the data we need; just start the installer without a second phase if (!needsPhaseTwo) { Loading