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

Commit 70fd052c authored by Himanshu Gupta's avatar Himanshu Gupta
Browse files

Allowing ProxyActivityStarter without result.

This is required in some cases, when we do not want
the Launcher (ProxyActivityStarter) Activity to come
in recents.

Bug: 320664417
Flag: ACONFIG com.android.launcher3.private_space_app_installer_button TEAMFOOD
Test: Manual build and flash.
Change-Id: I94d9dfab19f8a2410fa82adc0c0c22a3ac238a0b
parent c5286026
Loading
Loading
Loading
Loading
+24 −5
Original line number Diff line number Diff line
@@ -53,13 +53,10 @@ public class ProxyActivityStarter extends Activity {

        try {
            if (mParams.intent != null) {
                startActivityForResult(mParams.intent, mParams.requestCode, mParams.options);
                startActivity();
                return;
            } else if (mParams.intentSender != null) {
                startIntentSenderForResult(mParams.intentSender, mParams.requestCode,
                        mParams.fillInIntent, mParams.flagsMask, mParams.flagsValues,
                        mParams.extraFlags,
                        mParams.options);
                startIntentSender();
                return;
            }
        } catch (NullPointerException | ActivityNotFoundException | SecurityException
@@ -83,4 +80,26 @@ public class ProxyActivityStarter extends Activity {
                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
                        | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    }

    private void startActivity() throws SendIntentException {
        if (mParams.requireActivityResult) {
            startActivityForResult(mParams.intent, mParams.requestCode, mParams.options);
        } else {
            startActivity(mParams.intent, mParams.options);
            finishAndRemoveTask();
        }
    }

    private void startIntentSender() throws SendIntentException {
        if (mParams.requireActivityResult) {
            startIntentSenderForResult(mParams.intentSender, mParams.requestCode,
                    mParams.fillInIntent, mParams.flagsMask, mParams.flagsValues,
                    mParams.extraFlags,
                    mParams.options);
        } else {
            startIntentSender(mParams.intentSender, mParams.fillInIntent, mParams.flagsMask,
                    mParams.flagsValues, mParams.extraFlags, mParams.options);
            finishAndRemoveTask();
        }
    }
}
+5 −0
Original line number Diff line number Diff line
@@ -138,6 +138,11 @@ public class ApiWrapper {
                        || Flags.enablePrivateSpaceInstallShortcut())) {
            StartActivityParams params = new StartActivityParams((PendingIntent) null, 0);
            params.intentSender = launcherApps.getAppMarketActivityIntent(packageName, user);
            ActivityOptions options = ActivityOptions.makeBasic()
                    .setPendingIntentBackgroundActivityStartMode(ActivityOptions
                            .MODE_BACKGROUND_ACTIVITY_START_ALLOWED);
            params.options = options.toBundle();
            params.requireActivityResult = false;
            return ProxyActivityStarter.getLaunchIntent(context, params);
        } else {
            return new Intent(Intent.ACTION_VIEW)
+3 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ public class StartActivityParams implements Parcelable {
    public int flagsValues;
    public int extraFlags;
    public Bundle options;
    public boolean requireActivityResult = true;

    public StartActivityParams(Activity activity, int requestCode) {
        this(activity.createPendingResult(requestCode, new Intent(),
@@ -74,6 +75,7 @@ public class StartActivityParams implements Parcelable {
        flagsValues = parcel.readInt();
        extraFlags = parcel.readInt();
        options = parcel.readBundle();
        requireActivityResult = parcel.readInt() != 0;
    }


@@ -94,6 +96,7 @@ public class StartActivityParams implements Parcelable {
        parcel.writeInt(flagsValues);
        parcel.writeInt(extraFlags);
        parcel.writeBundle(options);
        parcel.writeInt(requireActivityResult ? 1 : 0);
    }

    /** Perform the operation on the pendingIntent. */