Merge "Rename split classes/variables for consistency" into tm-qpr-dev am: 2339933924
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/18639433 Change-Id: I6d251c1f29775d364890da194f8deb11322044b1 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -575,7 +575,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
|
||||
protected void notifyGestureAnimationStartToRecents() {
|
||||
Task[] runningTasks;
|
||||
if (mIsSwipeForStagedSplit) {
|
||||
if (mIsSwipeForSplit) {
|
||||
int[] splitTaskIds = TopTaskTracker.INSTANCE.get(mContext).getRunningSplitTaskIds();
|
||||
runningTasks = mGestureState.getRunningTask().getPlaceholderTasks(splitTaskIds);
|
||||
} else {
|
||||
@@ -1292,7 +1292,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
HomeAnimationFactory homeAnimFactory =
|
||||
createHomeAnimationFactory(cookies, duration, isTranslucent, appCanEnterPip,
|
||||
runningTaskTarget);
|
||||
mIsSwipingPipToHome = !mIsSwipeForStagedSplit && appCanEnterPip;
|
||||
mIsSwipingPipToHome = !mIsSwipeForSplit && appCanEnterPip;
|
||||
final RectFSpringAnim[] windowAnim;
|
||||
if (mIsSwipingPipToHome) {
|
||||
mSwipePipToHomeAnimator = createWindowAnimationToPip(
|
||||
@@ -1793,7 +1793,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
||||
mSwipePipToHomeAnimator.getFinishTransaction(),
|
||||
mSwipePipToHomeAnimator.getContentOverlay());
|
||||
mIsSwipingPipToHome = false;
|
||||
} else if (mIsSwipeForStagedSplit) {
|
||||
} else if (mIsSwipeForSplit) {
|
||||
// Transaction to hide the task to avoid flicker for entering PiP from split-screen.
|
||||
PictureInPictureSurfaceTransaction tx =
|
||||
new PictureInPictureSurfaceTransaction.Builder()
|
||||
|
||||
@@ -91,7 +91,7 @@ public class LauncherSwipeHandlerV2 extends
|
||||
mActivity.setHintUserWillBeActive();
|
||||
}
|
||||
|
||||
if (!canUseWorkspaceView || appCanEnterPip || mIsSwipeForStagedSplit) {
|
||||
if (!canUseWorkspaceView || appCanEnterPip || mIsSwipeForSplit) {
|
||||
return new LauncherHomeAnimationFactory();
|
||||
}
|
||||
if (workspaceView instanceof LauncherAppWidgetHostView) {
|
||||
|
||||
@@ -34,7 +34,7 @@ import com.android.systemui.shared.recents.model.Task;
|
||||
import com.android.systemui.shared.system.KeyguardManagerCompat;
|
||||
import com.android.wm.shell.recents.IRecentTasksListener;
|
||||
import com.android.wm.shell.util.GroupedRecentTaskInfo;
|
||||
import com.android.wm.shell.util.StagedSplitBounds;
|
||||
import com.android.wm.shell.util.SplitBounds;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
@@ -195,19 +195,19 @@ public class RecentTasksList {
|
||||
tmpLockedUsers.get(task2Key.userId) /* isLocked */);
|
||||
task2.setLastSnapshotData(taskInfo2);
|
||||
}
|
||||
final SplitConfigurationOptions.StagedSplitBounds launcherSplitBounds =
|
||||
convertSplitBounds(rawTask.mStagedSplitBounds);
|
||||
final SplitConfigurationOptions.SplitBounds launcherSplitBounds =
|
||||
convertSplitBounds(rawTask.mSplitBounds);
|
||||
allTasks.add(new GroupTask(task1, task2, launcherSplitBounds));
|
||||
}
|
||||
|
||||
return allTasks;
|
||||
}
|
||||
|
||||
private SplitConfigurationOptions.StagedSplitBounds convertSplitBounds(
|
||||
StagedSplitBounds shellSplitBounds) {
|
||||
private SplitConfigurationOptions.SplitBounds convertSplitBounds(
|
||||
SplitBounds shellSplitBounds) {
|
||||
return shellSplitBounds == null ?
|
||||
null :
|
||||
new SplitConfigurationOptions.StagedSplitBounds(
|
||||
new SplitConfigurationOptions.SplitBounds(
|
||||
shellSplitBounds.leftTopBounds, shellSplitBounds.rightBottomBounds,
|
||||
shellSplitBounds.leftTopTaskId, shellSplitBounds.rightBottomTaskId);
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ import android.content.Context;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagedSplitBounds;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitBounds;
|
||||
import com.android.quickstep.util.AnimatorControllerWithResistance;
|
||||
import com.android.quickstep.util.TaskViewSimulator;
|
||||
import com.android.quickstep.util.TransformParams;
|
||||
@@ -34,7 +34,7 @@ import java.util.ArrayList;
|
||||
*/
|
||||
public class RemoteTargetGluer {
|
||||
private RemoteTargetHandle[] mRemoteTargetHandles;
|
||||
private StagedSplitBounds mStagedSplitBounds;
|
||||
private SplitBounds mSplitBounds;
|
||||
|
||||
/**
|
||||
* Use this constructor if remote targets are split-screen independent
|
||||
@@ -118,18 +118,18 @@ public class RemoteTargetGluer {
|
||||
|
||||
// remoteTargetHandle[0] denotes topLeft task, so we pass in the bottomRight to exclude,
|
||||
// vice versa
|
||||
mStagedSplitBounds = new StagedSplitBounds(
|
||||
mSplitBounds = new SplitBounds(
|
||||
topLeftTarget.startScreenSpaceBounds,
|
||||
bottomRightTarget.startScreenSpaceBounds, splitIds[0], splitIds[1]);
|
||||
mRemoteTargetHandles[0].mTransformParams.setTargetSet(
|
||||
createRemoteAnimationTargetsForTarget(targets, bottomRightTarget));
|
||||
mRemoteTargetHandles[0].mTaskViewSimulator.setPreview(topLeftTarget,
|
||||
mStagedSplitBounds);
|
||||
mSplitBounds);
|
||||
|
||||
mRemoteTargetHandles[1].mTransformParams.setTargetSet(
|
||||
createRemoteAnimationTargetsForTarget(targets, topLeftTarget));
|
||||
mRemoteTargetHandles[1].mTaskViewSimulator.setPreview(bottomRightTarget,
|
||||
mStagedSplitBounds);
|
||||
mSplitBounds);
|
||||
}
|
||||
return mRemoteTargetHandles;
|
||||
}
|
||||
@@ -173,8 +173,8 @@ public class RemoteTargetGluer {
|
||||
return mRemoteTargetHandles;
|
||||
}
|
||||
|
||||
public StagedSplitBounds getStagedSplitBounds() {
|
||||
return mStagedSplitBounds;
|
||||
public SplitBounds getSplitBounds() {
|
||||
return mSplitBounds;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -71,16 +71,14 @@ public abstract class SwipeUpAnimationLogic implements
|
||||
// How much further we can drag past recents, as a factor of mTransitionDragLength.
|
||||
protected float mDragLengthFactor = 1;
|
||||
|
||||
protected boolean mIsSwipeForStagedSplit;
|
||||
protected boolean mIsSwipeForSplit;
|
||||
|
||||
public SwipeUpAnimationLogic(Context context, RecentsAnimationDeviceState deviceState,
|
||||
GestureState gestureState) {
|
||||
mContext = context;
|
||||
mDeviceState = deviceState;
|
||||
mGestureState = gestureState;
|
||||
|
||||
mIsSwipeForStagedSplit =
|
||||
TopTaskTracker.INSTANCE.get(context).getRunningSplitTaskIds().length > 1;
|
||||
mIsSwipeForSplit = TopTaskTracker.INSTANCE.get(context).getRunningSplitTaskIds().length > 1;
|
||||
|
||||
mTargetGluer = new RemoteTargetGluer(mContext, mGestureState.getActivityInterface());
|
||||
mRemoteTargetHandles = mTargetGluer.getRemoteTargetHandles();
|
||||
|
||||
@@ -33,7 +33,7 @@ import com.android.launcher3.util.MainThreadInitializedObject;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagePosition;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StageType;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagedSplitTaskPosition;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitStageInfo;
|
||||
import com.android.launcher3.util.TraceHelper;
|
||||
import com.android.systemui.shared.recents.model.Task;
|
||||
import com.android.systemui.shared.recents.model.Task.TaskKey;
|
||||
@@ -63,8 +63,9 @@ public class TopTaskTracker extends ISplitScreenListener.Stub implements TaskSta
|
||||
// Ordered list with first item being the most recent task.
|
||||
private final LinkedList<RunningTaskInfo> mOrderedTaskList = new LinkedList<>();
|
||||
|
||||
private final StagedSplitTaskPosition mMainStagePosition = new StagedSplitTaskPosition();
|
||||
private final StagedSplitTaskPosition mSideStagePosition = new StagedSplitTaskPosition();
|
||||
|
||||
private final SplitStageInfo mMainStagePosition = new SplitStageInfo();
|
||||
private final SplitStageInfo mSideStagePosition = new SplitStageInfo();
|
||||
private int mPinnedTaskId = INVALID_TASK_ID;
|
||||
|
||||
private TopTaskTracker(Context context) {
|
||||
@@ -144,8 +145,8 @@ public class TopTaskTracker extends ISplitScreenListener.Stub implements TaskSta
|
||||
mPinnedTaskId = INVALID_TASK_ID;
|
||||
}
|
||||
|
||||
private void resetTaskId(StagedSplitTaskPosition taskPosition) {
|
||||
taskPosition.taskId = INVALID_TASK_ID;
|
||||
private void resetTaskId(SplitStageInfo taskPosition) {
|
||||
taskPosition.taskId = -1;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -19,7 +19,7 @@ package com.android.quickstep.util;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagedSplitBounds;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitBounds;
|
||||
import com.android.systemui.shared.recents.model.Task;
|
||||
|
||||
/**
|
||||
@@ -29,13 +29,14 @@ import com.android.systemui.shared.recents.model.Task;
|
||||
public class GroupTask {
|
||||
public @NonNull Task task1;
|
||||
public @Nullable Task task2;
|
||||
public @Nullable StagedSplitBounds mStagedSplitBounds;
|
||||
public @Nullable
|
||||
SplitBounds mSplitBounds;
|
||||
|
||||
public GroupTask(@NonNull Task t1, @Nullable Task t2,
|
||||
@Nullable StagedSplitBounds stagedSplitBounds) {
|
||||
@Nullable SplitBounds splitBounds) {
|
||||
task1 = t1;
|
||||
task2 = t2;
|
||||
mStagedSplitBounds = stagedSplitBounds;
|
||||
mSplitBounds = splitBounds;
|
||||
}
|
||||
|
||||
public GroupTask(@NonNull GroupTask group) {
|
||||
@@ -43,7 +44,7 @@ public class GroupTask {
|
||||
task2 = group.task2 != null
|
||||
? new Task(group.task2)
|
||||
: null;
|
||||
mStagedSplitBounds = group.mStagedSplitBounds;
|
||||
mSplitBounds = group.mSplitBounds;
|
||||
}
|
||||
|
||||
public boolean containsTask(int taskId) {
|
||||
|
||||
@@ -40,7 +40,7 @@ import androidx.annotation.NonNull;
|
||||
import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.anim.PendingAnimation;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagedSplitBounds;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitBounds;
|
||||
import com.android.launcher3.util.TraceHelper;
|
||||
import com.android.quickstep.AnimatedFloat;
|
||||
import com.android.quickstep.BaseActivityInterface;
|
||||
@@ -100,7 +100,7 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy {
|
||||
// Cached calculations
|
||||
private boolean mLayoutValid = false;
|
||||
private int mOrientationStateId;
|
||||
private StagedSplitBounds mStagedSplitBounds;
|
||||
private SplitBounds mSplitBounds;
|
||||
private boolean mDrawsBelowRecents;
|
||||
private boolean mIsGridTask;
|
||||
private int mTaskRectTranslationX;
|
||||
@@ -152,13 +152,13 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy {
|
||||
}
|
||||
|
||||
Rect fullTaskSize;
|
||||
if (mStagedSplitBounds != null) {
|
||||
if (mSplitBounds != null) {
|
||||
// The task rect changes according to the staged split task sizes, but recents
|
||||
// fullscreen scale and pivot remains the same since the task fits into the existing
|
||||
// sized task space bounds
|
||||
fullTaskSize = new Rect(mTaskRect);
|
||||
mOrientationState.getOrientationHandler()
|
||||
.setSplitTaskSwipeRect(mDp, mTaskRect, mStagedSplitBounds, mStagePosition);
|
||||
.setSplitTaskSwipeRect(mDp, mTaskRect, mSplitBounds, mStagePosition);
|
||||
mTaskRect.offset(mTaskRectTranslationX, mTaskRectTranslationY);
|
||||
} else {
|
||||
fullTaskSize = mTaskRect;
|
||||
@@ -180,10 +180,10 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy {
|
||||
*
|
||||
* @param splitInfo set to {@code null} when not in staged split mode
|
||||
*/
|
||||
public void setPreview(RemoteAnimationTargetCompat runningTarget, StagedSplitBounds splitInfo) {
|
||||
public void setPreview(RemoteAnimationTargetCompat runningTarget, SplitBounds splitInfo) {
|
||||
setPreview(runningTarget);
|
||||
mStagedSplitBounds = splitInfo;
|
||||
if (mStagedSplitBounds == null) {
|
||||
mSplitBounds = splitInfo;
|
||||
if (mSplitBounds == null) {
|
||||
mStagePosition = STAGE_POSITION_UNDEFINED;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.touch.PagedOrientationHandler;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagedSplitBounds;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitBounds;
|
||||
import com.android.systemui.shared.recents.model.Task;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -103,7 +103,7 @@ public final class DigitalWellBeingToast {
|
||||
*/
|
||||
private float mModalOffset = 0f;
|
||||
@Nullable
|
||||
private StagedSplitBounds mStagedSplitBounds;
|
||||
private SplitBounds mSplitBounds;
|
||||
private int mSplitBannerConfig = SPLIT_BANNER_FULLSCREEN;
|
||||
private float mSplitOffsetTranslationY;
|
||||
private float mSplitOffsetTranslationX;
|
||||
@@ -164,9 +164,9 @@ public final class DigitalWellBeingToast {
|
||||
});
|
||||
}
|
||||
|
||||
public void setSplitConfiguration(StagedSplitBounds stagedSplitBounds) {
|
||||
mStagedSplitBounds = stagedSplitBounds;
|
||||
if (mStagedSplitBounds == null
|
||||
public void setSplitConfiguration(SplitBounds splitBounds) {
|
||||
mSplitBounds = splitBounds;
|
||||
if (mSplitBounds == null
|
||||
|| !mActivity.getDeviceProfile().isTablet
|
||||
|| mTaskView.isFocusedTask()) {
|
||||
mSplitBannerConfig = SPLIT_BANNER_FULLSCREEN;
|
||||
@@ -180,11 +180,11 @@ public final class DigitalWellBeingToast {
|
||||
}
|
||||
|
||||
// For landscape grid, for 30% width we only show icon, otherwise show icon and time
|
||||
if (mTask.key.id == mStagedSplitBounds.leftTopTaskId) {
|
||||
mSplitBannerConfig = mStagedSplitBounds.leftTaskPercent < THRESHOLD_LEFT_ICON_ONLY ?
|
||||
if (mTask.key.id == mSplitBounds.leftTopTaskId) {
|
||||
mSplitBannerConfig = mSplitBounds.leftTaskPercent < THRESHOLD_LEFT_ICON_ONLY ?
|
||||
SPLIT_GRID_BANNER_SMALL : SPLIT_GRID_BANNER_LARGE;
|
||||
} else {
|
||||
mSplitBannerConfig = mStagedSplitBounds.leftTaskPercent > THRESHOLD_RIGHT_ICON_ONLY ?
|
||||
mSplitBannerConfig = mSplitBounds.leftTaskPercent > THRESHOLD_RIGHT_ICON_ONLY ?
|
||||
SPLIT_GRID_BANNER_SMALL : SPLIT_GRID_BANNER_LARGE;
|
||||
}
|
||||
}
|
||||
@@ -321,7 +321,7 @@ public final class DigitalWellBeingToast {
|
||||
PagedOrientationHandler orientationHandler = mTaskView.getPagedOrientationHandler();
|
||||
Pair<Float, Float> translations = orientationHandler
|
||||
.getDwbLayoutTranslations(mTaskView.getMeasuredWidth(),
|
||||
mTaskView.getMeasuredHeight(), mStagedSplitBounds, deviceProfile,
|
||||
mTaskView.getMeasuredHeight(), mSplitBounds, deviceProfile,
|
||||
mTaskView.getThumbnails(), mTask.key.id, mBanner);
|
||||
mSplitOffsetTranslationX = translations.first;
|
||||
mSplitOffsetTranslationY = translations.second;
|
||||
|
||||
@@ -254,7 +254,7 @@ public class FloatingTaskView extends FrameLayout {
|
||||
* offscreen).
|
||||
*/
|
||||
void centerIconView(IconView iconView, float onScreenRectCenterX, float onScreenRectCenterY) {
|
||||
mOrientationHandler.updateStagedSplitIconParams(iconView, onScreenRectCenterX,
|
||||
mOrientationHandler.updateSplitIconParams(iconView, onScreenRectCenterX,
|
||||
onScreenRectCenterY, mFullscreenParams.mScaleX, mFullscreenParams.mScaleY,
|
||||
iconView.getDrawableWidth(), iconView.getDrawableHeight(),
|
||||
mActivity.getDeviceProfile(), mStagePosition);
|
||||
|
||||
@@ -17,7 +17,7 @@ import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.util.RunnableList;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagedSplitBounds;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitBounds;
|
||||
import com.android.launcher3.util.TransformingTouchDelegate;
|
||||
import com.android.quickstep.RecentsModel;
|
||||
import com.android.quickstep.TaskIconCache;
|
||||
@@ -53,7 +53,7 @@ public class GroupedTaskView extends TaskView {
|
||||
private CancellableTask mIconLoadRequest2;
|
||||
private final float[] mIcon2CenterCoords = new float[2];
|
||||
private TransformingTouchDelegate mIcon2TouchDelegate;
|
||||
@Nullable private StagedSplitBounds mSplitBoundsConfig;
|
||||
@Nullable private SplitBounds mSplitBoundsConfig;
|
||||
private final DigitalWellBeingToast mDigitalWellBeingToast2;
|
||||
|
||||
public GroupedTaskView(Context context) {
|
||||
@@ -78,7 +78,7 @@ public class GroupedTaskView extends TaskView {
|
||||
}
|
||||
|
||||
public void bind(Task primary, Task secondary, RecentsOrientedState orientedState,
|
||||
@Nullable StagedSplitBounds splitBoundsConfig) {
|
||||
@Nullable SplitBounds splitBoundsConfig) {
|
||||
super.bind(primary, orientedState);
|
||||
mSecondaryTask = secondary;
|
||||
mTaskIdContainer[1] = secondary.key.id;
|
||||
@@ -126,8 +126,8 @@ public class GroupedTaskView extends TaskView {
|
||||
}
|
||||
}
|
||||
|
||||
public void updateSplitBoundsConfig(StagedSplitBounds stagedSplitBounds) {
|
||||
mSplitBoundsConfig = stagedSplitBounds;
|
||||
public void updateSplitBoundsConfig(SplitBounds splitBounds) {
|
||||
mSplitBoundsConfig = splitBounds;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ import com.android.launcher3.util.MultiValueAlpha;
|
||||
import com.android.launcher3.util.ResourceBasedOverride.Overrides;
|
||||
import com.android.launcher3.util.RunnableList;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagePosition;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagedSplitBounds;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitBounds;
|
||||
import com.android.launcher3.util.Themes;
|
||||
import com.android.launcher3.util.TranslateEdgeEffect;
|
||||
import com.android.launcher3.util.ViewPool;
|
||||
@@ -625,7 +625,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
@Nullable
|
||||
private View mSecondSplitHiddenView;
|
||||
@Nullable
|
||||
private StagedSplitBounds mSplitBoundsConfig;
|
||||
private SplitBounds mSplitBoundsConfig;
|
||||
private final Toast mSplitToast = Toast.makeText(getContext(),
|
||||
R.string.toast_split_select_app, Toast.LENGTH_SHORT);
|
||||
private final Toast mSplitUnsupportedToast = Toast.makeText(getContext(),
|
||||
@@ -1448,11 +1448,11 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
|
||||
if (hasMultipleTasks) {
|
||||
boolean firstTaskIsLeftTopTask =
|
||||
groupTask.mStagedSplitBounds.leftTopTaskId == groupTask.task1.key.id;
|
||||
groupTask.mSplitBounds.leftTopTaskId == groupTask.task1.key.id;
|
||||
Task leftTopTask = firstTaskIsLeftTopTask ? groupTask.task1 : groupTask.task2;
|
||||
Task rightBottomTask = firstTaskIsLeftTopTask ? groupTask.task2 : groupTask.task1;
|
||||
((GroupedTaskView) taskView).bind(leftTopTask, rightBottomTask, mOrientationState,
|
||||
groupTask.mStagedSplitBounds);
|
||||
groupTask.mSplitBounds);
|
||||
} else {
|
||||
taskView.bind(groupTask.task1, mOrientationState);
|
||||
}
|
||||
@@ -4492,7 +4492,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||
RemoteTargetGluer gluer = new RemoteTargetGluer(getContext(), getSizeStrategy());
|
||||
mRemoteTargetHandles = gluer.assignTargetsForSplitScreen(
|
||||
getContext(), recentsAnimationTargets);
|
||||
mSplitBoundsConfig = gluer.getStagedSplitBounds();
|
||||
mSplitBoundsConfig = gluer.getSplitBounds();
|
||||
// Add release check to the targets from the RemoteTargetGluer and not the targets
|
||||
// passed in because in the event we're in split screen, we use the passed in targets
|
||||
// to create new RemoteAnimationTargets in assignTargetsForSplitScreen(), and the
|
||||
|
||||
@@ -53,7 +53,7 @@ import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagePosition;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagedSplitBounds;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitBounds;
|
||||
import com.android.launcher3.views.BaseDragLayer;
|
||||
|
||||
import java.util.Collections;
|
||||
@@ -312,7 +312,7 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler {
|
||||
|
||||
@Override
|
||||
public Pair<Float, Float> getDwbLayoutTranslations(int taskViewWidth,
|
||||
int taskViewHeight, StagedSplitBounds splitBounds, DeviceProfile deviceProfile,
|
||||
int taskViewHeight, SplitBounds splitBounds, DeviceProfile deviceProfile,
|
||||
View[] thumbnailViews, int desiredTaskId, View banner) {
|
||||
boolean isRtl = banner.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
|
||||
float translationX = 0;
|
||||
@@ -425,7 +425,7 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStagedSplitIconParams(View out, float onScreenRectCenterX,
|
||||
public void updateSplitIconParams(View out, float onScreenRectCenterX,
|
||||
float onScreenRectCenterY, float fullscreenScaleX, float fullscreenScaleY,
|
||||
int drawableWidth, int drawableHeight, DeviceProfile dp,
|
||||
@StagePosition int stagePosition) {
|
||||
@@ -470,7 +470,7 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler {
|
||||
|
||||
@Override
|
||||
public void setSplitTaskSwipeRect(DeviceProfile dp, Rect outRect,
|
||||
StagedSplitBounds splitInfo, int desiredStagePosition) {
|
||||
SplitBounds splitInfo, int desiredStagePosition) {
|
||||
float topLeftTaskPercent = splitInfo.appsStackedVertically
|
||||
? splitInfo.topTaskPercent
|
||||
: splitInfo.leftTaskPercent;
|
||||
@@ -487,7 +487,7 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler {
|
||||
|
||||
@Override
|
||||
public void measureGroupedTaskViewThumbnailBounds(View primarySnapshot, View secondarySnapshot,
|
||||
int parentWidth, int parentHeight, StagedSplitBounds splitBoundsConfig,
|
||||
int parentWidth, int parentHeight, SplitBounds splitBoundsConfig,
|
||||
DeviceProfile dp, boolean isRtl) {
|
||||
int spaceAboveSnapshot = dp.overviewTaskThumbnailTopMarginPx;
|
||||
int totalThumbnailHeight = parentHeight - spaceAboveSnapshot;
|
||||
@@ -529,7 +529,7 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler {
|
||||
public void setSplitIconParams(View primaryIconView, View secondaryIconView,
|
||||
int taskIconHeight, int primarySnapshotWidth, int primarySnapshotHeight,
|
||||
int groupedTaskViewHeight, int groupedTaskViewWidth, boolean isRtl,
|
||||
DeviceProfile deviceProfile, StagedSplitBounds splitConfig) {
|
||||
DeviceProfile deviceProfile, SplitBounds splitConfig) {
|
||||
FrameLayout.LayoutParams primaryIconParams =
|
||||
(FrameLayout.LayoutParams) primaryIconView.getLayoutParams();
|
||||
FrameLayout.LayoutParams secondaryIconParams =
|
||||
|
||||
@@ -36,7 +36,7 @@ import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagePosition;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagedSplitBounds;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitBounds;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -129,7 +129,7 @@ public interface PagedOrientationHandler {
|
||||
* @param dp The device profile, used to report rotation and hardware insets.
|
||||
* @param stagePosition 0 if the staging area is pinned to top/left, 1 for bottom/right.
|
||||
*/
|
||||
void updateStagedSplitIconParams(View out, float onScreenRectCenterX,
|
||||
void updateSplitIconParams(View out, float onScreenRectCenterX,
|
||||
float onScreenRectCenterY, float fullscreenScaleX, float fullscreenScaleY,
|
||||
int drawableWidth, int drawableHeight, DeviceProfile dp,
|
||||
@StagePosition int stagePosition);
|
||||
@@ -163,12 +163,12 @@ public interface PagedOrientationHandler {
|
||||
* @param desiredStagePosition Which stage position (topLeft/rightBottom) we want to resize
|
||||
* outRect for
|
||||
*/
|
||||
void setSplitTaskSwipeRect(DeviceProfile dp, Rect outRect, StagedSplitBounds splitInfo,
|
||||
void setSplitTaskSwipeRect(DeviceProfile dp, Rect outRect, SplitBounds splitInfo,
|
||||
@SplitConfigurationOptions.StagePosition int desiredStagePosition);
|
||||
|
||||
void measureGroupedTaskViewThumbnailBounds(View primarySnapshot, View secondarySnapshot,
|
||||
int parentWidth, int parentHeight,
|
||||
StagedSplitBounds splitBoundsConfig, DeviceProfile dp, boolean isRtl);
|
||||
SplitBounds splitBoundsConfig, DeviceProfile dp, boolean isRtl);
|
||||
|
||||
// Overview TaskMenuView methods
|
||||
void setTaskIconParams(FrameLayout.LayoutParams iconParams,
|
||||
@@ -176,7 +176,7 @@ public interface PagedOrientationHandler {
|
||||
void setSplitIconParams(View primaryIconView, View secondaryIconView,
|
||||
int taskIconHeight, int primarySnapshotWidth, int primarySnapshotHeight,
|
||||
int groupedTaskViewHeight, int groupedTaskViewWidth, boolean isRtl,
|
||||
DeviceProfile deviceProfile, StagedSplitBounds splitConfig);
|
||||
DeviceProfile deviceProfile, SplitBounds splitConfig);
|
||||
|
||||
/*
|
||||
* The following two methods try to center the TaskMenuView in landscape by finding the center
|
||||
@@ -217,7 +217,7 @@ public interface PagedOrientationHandler {
|
||||
* @return A Pair of Floats representing the proper x and y translations.
|
||||
*/
|
||||
Pair<Float, Float> getDwbLayoutTranslations(int taskViewWidth,
|
||||
int taskViewHeight, StagedSplitBounds splitBounds, DeviceProfile deviceProfile,
|
||||
int taskViewHeight, SplitBounds splitBounds, DeviceProfile deviceProfile,
|
||||
View[] thumbnailViews, int desiredTaskId, View banner);
|
||||
|
||||
// The following are only used by TaskViewTouchHandler.
|
||||
|
||||
@@ -54,7 +54,7 @@ import com.android.launcher3.util.DisplayController;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagePosition;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagedSplitBounds;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitBounds;
|
||||
import com.android.launcher3.views.BaseDragLayer;
|
||||
|
||||
import java.util.List;
|
||||
@@ -317,7 +317,7 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler {
|
||||
|
||||
@Override
|
||||
public Pair<Float, Float> getDwbLayoutTranslations(int taskViewWidth,
|
||||
int taskViewHeight, StagedSplitBounds splitBounds, DeviceProfile deviceProfile,
|
||||
int taskViewHeight, SplitBounds splitBounds, DeviceProfile deviceProfile,
|
||||
View[] thumbnailViews, int desiredTaskId, View banner) {
|
||||
float translationX = 0;
|
||||
float translationY = 0;
|
||||
@@ -470,7 +470,7 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStagedSplitIconParams(View out, float onScreenRectCenterX,
|
||||
public void updateSplitIconParams(View out, float onScreenRectCenterX,
|
||||
float onScreenRectCenterY, float fullscreenScaleX, float fullscreenScaleY,
|
||||
int drawableWidth, int drawableHeight, DeviceProfile dp,
|
||||
@StagePosition int stagePosition) {
|
||||
@@ -580,7 +580,7 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler {
|
||||
|
||||
@Override
|
||||
public void setSplitTaskSwipeRect(DeviceProfile dp, Rect outRect,
|
||||
StagedSplitBounds splitInfo, int desiredStagePosition) {
|
||||
SplitBounds splitInfo, int desiredStagePosition) {
|
||||
boolean isLandscape = dp.isLandscape;
|
||||
float topLeftTaskPercent = splitInfo.appsStackedVertically
|
||||
? splitInfo.topTaskPercent
|
||||
@@ -606,7 +606,7 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler {
|
||||
|
||||
@Override
|
||||
public void measureGroupedTaskViewThumbnailBounds(View primarySnapshot, View secondarySnapshot,
|
||||
int parentWidth, int parentHeight, StagedSplitBounds splitBoundsConfig,
|
||||
int parentWidth, int parentHeight, SplitBounds splitBoundsConfig,
|
||||
DeviceProfile dp, boolean isRtl) {
|
||||
int spaceAboveSnapshot = dp.overviewTaskThumbnailTopMarginPx;
|
||||
int totalThumbnailHeight = parentHeight - spaceAboveSnapshot;
|
||||
@@ -666,7 +666,7 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler {
|
||||
public void setSplitIconParams(View primaryIconView, View secondaryIconView,
|
||||
int taskIconHeight, int primarySnapshotWidth, int primarySnapshotHeight,
|
||||
int groupedTaskViewHeight, int groupedTaskViewWidth, boolean isRtl,
|
||||
DeviceProfile deviceProfile, StagedSplitBounds splitConfig) {
|
||||
DeviceProfile deviceProfile, SplitBounds splitConfig) {
|
||||
FrameLayout.LayoutParams primaryIconParams =
|
||||
(FrameLayout.LayoutParams) primaryIconView.getLayoutParams();
|
||||
FrameLayout.LayoutParams secondaryIconParams =
|
||||
|
||||
@@ -39,7 +39,7 @@ import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.StagedSplitBounds;
|
||||
import com.android.launcher3.util.SplitConfigurationOptions.SplitBounds;
|
||||
import com.android.launcher3.views.BaseDragLayer;
|
||||
|
||||
import java.util.Collections;
|
||||
@@ -110,7 +110,7 @@ public class SeascapePagedViewHandler extends LandscapePagedViewHandler {
|
||||
|
||||
@Override
|
||||
public Pair<Float, Float> getDwbLayoutTranslations(int taskViewWidth,
|
||||
int taskViewHeight, StagedSplitBounds splitBounds, DeviceProfile deviceProfile,
|
||||
int taskViewHeight, SplitBounds splitBounds, DeviceProfile deviceProfile,
|
||||
View[] thumbnailViews, int desiredTaskId, View banner) {
|
||||
boolean isRtl = banner.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
|
||||
float translationX = 0;
|
||||
@@ -203,7 +203,7 @@ public class SeascapePagedViewHandler extends LandscapePagedViewHandler {
|
||||
public void setSplitIconParams(View primaryIconView, View secondaryIconView,
|
||||
int taskIconHeight, int primarySnapshotWidth, int primarySnapshotHeight,
|
||||
int groupedTaskViewHeight, int groupedTaskViewWidth, boolean isRtl,
|
||||
DeviceProfile deviceProfile, StagedSplitBounds splitConfig) {
|
||||
DeviceProfile deviceProfile, SplitBounds splitConfig) {
|
||||
super.setSplitIconParams(primaryIconView, secondaryIconView, taskIconHeight,
|
||||
primarySnapshotWidth, primarySnapshotHeight, groupedTaskViewHeight,
|
||||
groupedTaskViewWidth, isRtl, deviceProfile, splitConfig);
|
||||
|
||||
@@ -96,7 +96,7 @@ public final class SplitConfigurationOptions {
|
||||
*
|
||||
* If you make changes here, consider making the same changes there
|
||||
*/
|
||||
public static class StagedSplitBounds {
|
||||
public static class SplitBounds {
|
||||
public final Rect leftTopBounds;
|
||||
public final Rect rightBottomBounds;
|
||||
/** This rect represents the actual gap between the two apps */
|
||||
@@ -124,7 +124,7 @@ public final class SplitConfigurationOptions {
|
||||
public final int leftTopTaskId;
|
||||
public final int rightBottomTaskId;
|
||||
|
||||
public StagedSplitBounds(Rect leftTopBounds, Rect rightBottomBounds, int leftTopTaskId,
|
||||
public SplitBounds(Rect leftTopBounds, Rect rightBottomBounds, int leftTopTaskId,
|
||||
int rightBottomTaskId) {
|
||||
this.leftTopBounds = leftTopBounds;
|
||||
this.rightBottomBounds = rightBottomBounds;
|
||||
@@ -163,7 +163,7 @@ public final class SplitConfigurationOptions {
|
||||
}
|
||||
}
|
||||
|
||||
public static class StagedSplitTaskPosition {
|
||||
public static class SplitStageInfo {
|
||||
public int taskId = -1;
|
||||
@StagePosition
|
||||
public int stagePosition = STAGE_POSITION_UNDEFINED;
|
||||
|
||||
Reference in New Issue
Block a user