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

Commit ce7a4f30 authored by Liahav Eitan's avatar Liahav Eitan Committed by Automerger Merge Worker
Browse files

Merge "Fix sharing to another profile where an app has multiple targets" into...

Merge "Fix sharing to another profile where an app has multiple targets" into tm-qpr-dev am: 6dae9d46

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19657256



Change-Id: I41807e6379e252fce1930eb3d6ade32af2cf6ed8
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 1f8cb8f5 6dae9d46
Loading
Loading
Loading
Loading
+0 −15
Original line number Diff line number Diff line
@@ -1283,9 +1283,6 @@ public class ResolverActivity extends Activity implements
        }

        if (target != null) {
            if (intent != null && isLaunchingTargetInOtherProfile()) {
                prepareIntentForCrossProfileLaunch(intent);
            }
            safelyStartActivity(target);

            // Rely on the ActivityManager to pop up a dialog regarding app suspension
@@ -1298,15 +1295,6 @@ public class ResolverActivity extends Activity implements
        return true;
    }

    private void prepareIntentForCrossProfileLaunch(Intent intent) {
        intent.fixUris(UserHandle.myUserId());
    }

    private boolean isLaunchingTargetInOtherProfile() {
        return mMultiProfilePagerAdapter.getCurrentUserHandle().getIdentifier()
                != UserHandle.myUserId();
    }

    @VisibleForTesting
    public void safelyStartActivity(TargetInfo cti) {
        // We're dispatching intents that might be coming from legacy apps, so
@@ -1513,9 +1501,6 @@ public class ResolverActivity extends Activity implements

        findViewById(R.id.button_open).setOnClickListener(v -> {
            Intent intent = otherProfileResolveInfo.getResolvedIntent();
            if (intent != null) {
                prepareIntentForCrossProfileLaunch(intent);
            }
            safelyStartActivityAsUser(otherProfileResolveInfo,
                    inactiveAdapter.mResolverListController.getUserHandle());
            finish();
+9 −0
Original line number Diff line number Diff line
@@ -172,12 +172,14 @@ public class DisplayResolveInfo implements TargetInfo, Parcelable {

    @Override
    public boolean startAsCaller(ResolverActivity activity, Bundle options, int userId) {
        prepareIntentForCrossProfileLaunch(mResolvedIntent, userId);
        activity.startActivityAsCaller(mResolvedIntent, options, false, userId);
        return true;
    }

    @Override
    public boolean startAsUser(Activity activity, Bundle options, UserHandle user) {
        prepareIntentForCrossProfileLaunch(mResolvedIntent, user.getIdentifier());
        activity.startActivityAsUser(mResolvedIntent, options, user);
        return false;
    }
@@ -222,6 +224,13 @@ public class DisplayResolveInfo implements TargetInfo, Parcelable {
        }
    };

    private static void prepareIntentForCrossProfileLaunch(Intent intent, int targetUserId) {
        final int currentUserId = UserHandle.myUserId();
        if (targetUserId != currentUserId) {
            intent.fixUris(currentUserId);
        }
    }

    private DisplayResolveInfo(Parcel in) {
        mDisplayLabel = in.readCharSequence();
        mExtendedInfo = in.readCharSequence();