Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 159cd024 authored by Patrick Baumann's avatar Patrick Baumann
Browse files

Marking used instant apps fields as System API

Change-Id: I4a907600b9fa75b1789843a9c2e7d2c33aaaff6b
Fixes: 71852699
Bug: 72450666
Bug: 72700831
Test: builds and AIA still functional
parent 43c97a0e
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -822,8 +822,16 @@ package android.content {
    field public static final java.lang.String ACTION_USER_REMOVED = "android.intent.action.USER_REMOVED";
    field public static final java.lang.String ACTION_VOICE_ASSIST = "android.intent.action.VOICE_ASSIST";
    field public static final java.lang.String CATEGORY_LEANBACK_SETTINGS = "android.intent.category.LEANBACK_SETTINGS";
    field public static final java.lang.String EXTRA_CALLING_PACKAGE = "android.intent.extra.CALLING_PACKAGE";
    field public static final java.lang.String EXTRA_FORCE_FACTORY_RESET = "android.intent.extra.FORCE_FACTORY_RESET";
    field public static final java.lang.String EXTRA_INSTANT_APP_ACTION = "android.intent.extra.INSTANT_APP_ACTION";
    field public static final java.lang.String EXTRA_INSTANT_APP_BUNDLES = "android.intent.extra.INSTANT_APP_BUNDLES";
    field public static final java.lang.String EXTRA_INSTANT_APP_EXTRAS = "android.intent.extra.INSTANT_APP_EXTRAS";
    field public static final java.lang.String EXTRA_INSTANT_APP_FAILURE = "android.intent.extra.INSTANT_APP_FAILURE";
    field public static final java.lang.String EXTRA_INSTANT_APP_HOSTNAME = "android.intent.extra.INSTANT_APP_HOSTNAME";
    field public static final java.lang.String EXTRA_INSTANT_APP_SUCCESS = "android.intent.extra.INSTANT_APP_SUCCESS";
    field public static final java.lang.String EXTRA_INSTANT_APP_TOKEN = "android.intent.extra.INSTANT_APP_TOKEN";
    field public static final java.lang.String EXTRA_LONG_VERSION_CODE = "android.intent.extra.LONG_VERSION_CODE";
    field public static final java.lang.String EXTRA_ORIGINATING_UID = "android.intent.extra.ORIGINATING_UID";
    field public static final java.lang.String EXTRA_PACKAGES = "android.intent.extra.PACKAGES";
    field public static final java.lang.String EXTRA_PERMISSION_NAME = "android.intent.extra.PERMISSION_NAME";
@@ -831,6 +839,7 @@ package android.content {
    field public static final java.lang.String EXTRA_REMOTE_CALLBACK = "android.intent.extra.REMOTE_CALLBACK";
    field public static final java.lang.String EXTRA_RESULT_NEEDED = "android.intent.extra.RESULT_NEEDED";
    field public static final java.lang.String EXTRA_UNKNOWN_INSTANT_APP = "android.intent.extra.UNKNOWN_INSTANT_APP";
    field public static final java.lang.String EXTRA_VERIFICATION_BUNDLE = "android.intent.extra.VERIFICATION_BUNDLE";
  }

  public class IntentFilter implements android.os.Parcelable {
@@ -843,7 +852,9 @@ package android.content {
package android.content.pm {

  public class ApplicationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
    method public boolean isInstantApp();
    field public java.lang.String credentialProtectedDataDir;
    field public int targetSandboxVersion;
  }

  public final class InstantAppInfo implements android.os.Parcelable {
+50 −1
Original line number Diff line number Diff line
@@ -4414,32 +4414,77 @@ public class Intent implements Parcelable, Cloneable {

    /**
     * A {@link IntentSender} to start after ephemeral installation success.
     * @deprecated Use {@link #EXTRA_INSTANT_APP_SUCCESS).
     * @removed
     * @hide
     */
    @Deprecated
    public static final String EXTRA_EPHEMERAL_SUCCESS = "android.intent.extra.EPHEMERAL_SUCCESS";

    /**
     * A {@link IntentSender} to start after instant app installation success.
     * @hide
     */
    @SystemApi
    public static final String EXTRA_INSTANT_APP_SUCCESS =
            "android.intent.extra.INSTANT_APP_SUCCESS";

    /**
     * A {@link IntentSender} to start after ephemeral installation failure.
     * @deprecated Use {@link #EXTRA_INSTANT_APP_FAILURE).
     * @removed
     * @hide
     */
    @Deprecated
    public static final String EXTRA_EPHEMERAL_FAILURE = "android.intent.extra.EPHEMERAL_FAILURE";

    /**
     * A {@link IntentSender} to start after instant app installation failure.
     * @hide
     */
    @SystemApi
    public static final String EXTRA_INSTANT_APP_FAILURE =
            "android.intent.extra.INSTANT_APP_FAILURE";

    /**
     * The host name that triggered an ephemeral resolution.
     * @deprecated Use {@link #EXTRA_INSTANT_APP_HOSTNAME).
     * @removed
     * @hide
     */
    @Deprecated
    public static final String EXTRA_EPHEMERAL_HOSTNAME = "android.intent.extra.EPHEMERAL_HOSTNAME";

    /**
     * The host name that triggered an instant app resolution.
     * @hide
     */
    @SystemApi
    public static final String EXTRA_INSTANT_APP_HOSTNAME =
            "android.intent.extra.INSTANT_APP_HOSTNAME";

    /**
     * An opaque token to track ephemeral resolution.
     * @deprecated Use {@link #EXTRA_INSTANT_APP_TOKEN).
     * @removed
     * @hide
     */
    @Deprecated
    public static final String EXTRA_EPHEMERAL_TOKEN = "android.intent.extra.EPHEMERAL_TOKEN";

    /**
     * An opaque token to track instant app resolution.
     * @hide
     */
    @SystemApi
    public static final String EXTRA_INSTANT_APP_TOKEN =
            "android.intent.extra.INSTANT_APP_TOKEN";

    /**
     * The action that triggered an instant application resolution.
     * @hide
     */
    @SystemApi
    public static final String EXTRA_INSTANT_APP_ACTION = "android.intent.extra.INSTANT_APP_ACTION";

    /**
@@ -4457,6 +4502,7 @@ public class Intent implements Parcelable, Cloneable {
     * instant application resolver.
     * @hide
     */
    @SystemApi
    public static final String EXTRA_INSTANT_APP_EXTRAS =
            "android.intent.extra.INSTANT_APP_EXTRAS";

@@ -4482,12 +4528,14 @@ public class Intent implements Parcelable, Cloneable {
     * The version code of the app to install components from.
     * @hide
     */
    @SystemApi
    public static final String EXTRA_LONG_VERSION_CODE = "android.intent.extra.LONG_VERSION_CODE";

    /**
     * The app that triggered the ephemeral installation.
     * The app that triggered the instant app installation.
     * @hide
     */
    @SystemApi
    public static final String EXTRA_CALLING_PACKAGE
            = "android.intent.extra.CALLING_PACKAGE";

@@ -4496,6 +4544,7 @@ public class Intent implements Parcelable, Cloneable {
     * installer may use.
     * @hide
     */
    @SystemApi
    public static final String EXTRA_VERIFICATION_BUNDLE
            = "android.intent.extra.VERIFICATION_BUNDLE";

+6 −1
Original line number Diff line number Diff line
@@ -958,6 +958,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
     * Version of the sandbox the application wants to run in.
     * @hide
     */
    @SystemApi
    public int targetSandboxVersion;

    /**
@@ -1655,7 +1656,11 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
        return (privateFlags & ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK) != 0;
    }

    /** @hide */
    /**
     * True if the application is installed as an instant app.
     * @hide
     */
    @SystemApi
    public boolean isInstantApp() {
        return (privateFlags & ApplicationInfo.PRIVATE_FLAG_INSTANT) != 0;
    }
+12 −4
Original line number Diff line number Diff line
@@ -268,10 +268,14 @@ public abstract class InstantAppResolver {
                | Intent.FLAG_ACTIVITY_NO_HISTORY
                | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
        if (token != null) {
            // TODO(b/72700831): remove populating old extra
            intent.putExtra(Intent.EXTRA_EPHEMERAL_TOKEN, token);
            intent.putExtra(Intent.EXTRA_INSTANT_APP_TOKEN, token);
        }
        if (origIntent.getData() != null) {
            // TODO(b/72700831): remove populating old extra
            intent.putExtra(Intent.EXTRA_EPHEMERAL_HOSTNAME, origIntent.getData().getHost());
            intent.putExtra(Intent.EXTRA_INSTANT_APP_HOSTNAME, origIntent.getData().getHost());
        }
        intent.putExtra(Intent.EXTRA_INSTANT_APP_ACTION, origIntent.getAction());
        intent.putExtra(Intent.EXTRA_INTENT, sanitizedIntent);
@@ -305,8 +309,10 @@ public abstract class InstantAppResolver {
                                            | PendingIntent.FLAG_ONE_SHOT
                                            | PendingIntent.FLAG_IMMUTABLE,
                                    null /*bOptions*/, userId);
                    intent.putExtra(Intent.EXTRA_EPHEMERAL_FAILURE,
                            new IntentSender(failureIntentTarget));
                    IntentSender failureSender = new IntentSender(failureIntentTarget);
                    // TODO(b/72700831): remove populating old extra
                    intent.putExtra(Intent.EXTRA_EPHEMERAL_FAILURE, failureSender);
                    intent.putExtra(Intent.EXTRA_INSTANT_APP_FAILURE, failureSender);
                } catch (RemoteException ignore) { /* ignore; same process */ }
            }

@@ -323,8 +329,10 @@ public abstract class InstantAppResolver {
                                PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_ONE_SHOT
                                        | PendingIntent.FLAG_IMMUTABLE,
                                null /*bOptions*/, userId);
                intent.putExtra(Intent.EXTRA_EPHEMERAL_SUCCESS,
                        new IntentSender(successIntentTarget));
                IntentSender successSender = new IntentSender(successIntentTarget);
                // TODO(b/72700831): remove populating old extra
                intent.putExtra(Intent.EXTRA_EPHEMERAL_SUCCESS, successSender);
                intent.putExtra(Intent.EXTRA_INSTANT_APP_SUCCESS, successSender);
            } catch (RemoteException ignore) { /* ignore; same process */ }
            if (verificationBundle != null) {
                intent.putExtra(Intent.EXTRA_VERIFICATION_BUNDLE, verificationBundle);