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

Commit 831f5ee7 authored by Jeff Chang's avatar Jeff Chang Committed by Android (Google) Code Review
Browse files

Merge "Launch split task with correct UserHandle" into tm-qpr-dev

parents 06b1d8c1 9f27fa36
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.UserHandle;
import android.util.Log;
import android.view.View;

@@ -71,7 +72,7 @@ public interface QuickstepSystemShortcut {
            RecentsView recentsView = mTarget.getOverviewPanel();
            recentsView.initiateSplitSelect(
                    new SplitSelectSource(mOriginalView, new BitmapDrawable(bitmap), intent,
                            mPosition));
                            mPosition, mItemInfo.user));
        }
    }

@@ -81,13 +82,15 @@ public interface QuickstepSystemShortcut {
        public final Drawable drawable;
        public final Intent intent;
        public final SplitPositionOption position;
        public final UserHandle user;

        public SplitSelectSource(View view, Drawable drawable, Intent intent,
                SplitPositionOption position) {
                SplitPositionOption position, UserHandle user) {
            this.view = view;
            this.drawable = drawable;
            this.intent = intent;
            this.position = position;
            this.user = user;
        }
    }
}
+13 −4
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.os.UserHandle;
import android.text.TextUtils;
import android.view.RemoteAnimationAdapter;
import android.view.SurfaceControl;
@@ -77,6 +78,8 @@ public class SplitSelectStateController {
    private int mSecondTaskId = INVALID_TASK_ID;
    private String mSecondTaskPackageName;
    private boolean mRecentsAnimationRunning;
    @Nullable
    private UserHandle mUser;
    /** If not null, this is the TaskView we want to launch from */
    @Nullable
    private GroupedTaskView mLaunchingTaskView;
@@ -97,12 +100,15 @@ public class SplitSelectStateController {
        mInitialTaskId = taskId;
        mStagePosition = stagePosition;
        mInitialTaskIntent = null;
        mUser = null;
    }

    public void setInitialTaskSelect(Intent intent, @StagePosition int stagePosition) {
    public void setInitialTaskSelect(Intent intent, @StagePosition int stagePosition,
            @Nullable UserHandle user) {
        mInitialTaskIntent = intent;
        mStagePosition = stagePosition;
        mInitialTaskId = INVALID_TASK_ID;
        mUser = user;
    }

    /**
@@ -120,9 +126,12 @@ public class SplitSelectStateController {
        } else {
            fillInIntent = null;
        }
        final PendingIntent pendingIntent =
                mInitialTaskIntent == null ? null : PendingIntent.getActivity(mContext, 0,
                        mInitialTaskIntent, FLAG_MUTABLE);

        final PendingIntent pendingIntent = mInitialTaskIntent == null ? null : (mUser != null
                ? PendingIntent.getActivityAsUser(mContext, 0, mInitialTaskIntent,
                FLAG_MUTABLE, null /* options */, mUser)
                : PendingIntent.getActivity(mContext, 0, mInitialTaskIntent, FLAG_MUTABLE));

        launchTasks(mInitialTaskId, pendingIntent, fillInIntent, mSecondTaskId, mStagePosition,
                callback, false /* freezeTaskList */, DEFAULT_SPLIT_RATIO);
    }
+1 −1
Original line number Diff line number Diff line
@@ -4098,7 +4098,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
    public void initiateSplitSelect(QuickstepSystemShortcut.SplitSelectSource splitSelectSource) {
        mSplitSelectSource = splitSelectSource;
        mSplitSelectStateController.setInitialTaskSelect(splitSelectSource.intent,
                splitSelectSource.position.stagePosition);
                splitSelectSource.position.stagePosition, splitSelectSource.user);
    }

    public PendingAnimation createSplitSelectInitAnimation(int duration) {