Add initial split from GroupedTaskView animation

* Created SplitAnimationController to prevent more
RecentsView bloat
* Extract SplitSelectSource attributes into separate class
* http://recall/-/cMb5xTTxhmZtFt04eYnmQj/eACJq1un8Ef91LgmQblpAw

Bug: 267370106
Change-Id: I5d430c091ac84bbbc30319e7b78711b610a21252
This commit is contained in:
Vinit Nayak
2023-02-27 11:58:16 -08:00
parent f1a0bd61f4
commit aa7bf8b394
8 changed files with 427 additions and 49 deletions

View File

@@ -82,6 +82,7 @@ public class SplitSelectStateController {
private final Context mContext;
private final Handler mHandler;
private final RecentsModel mRecentTasksModel;
private final SplitAnimationController mSplitAnimationController;
private StatsLogManager mStatsLogManager;
private final SystemUiProxy mSystemUiProxy;
private final StateManager mStateManager;
@@ -96,6 +97,11 @@ public class SplitSelectStateController {
private boolean mRecentsAnimationRunning;
/** If {@code true}, animates the existing task view split placeholder view */
private boolean mAnimateCurrentTaskDismissal;
/**
* Acts as a subset of {@link #mAnimateCurrentTaskDismissal}, we can't be dismissing from a
* split pair task view without wanting to animate current task dismissal overall
*/
private boolean mDismissingFromSplitPair;
@Nullable
private UserHandle mUser;
/** If not null, this is the TaskView we want to launch from */
@@ -116,6 +122,7 @@ public class SplitSelectStateController {
mStateManager = stateManager;
mDepthController = depthController;
mRecentTasksModel = recentsModel;
mSplitAnimationController = new SplitAnimationController(this);
}
/**
@@ -399,6 +406,18 @@ public class SplitSelectStateController {
mAnimateCurrentTaskDismissal = animateCurrentTaskDismissal;
}
public boolean isDismissingFromSplitPair() {
return mDismissingFromSplitPair;
}
public void setDismissingFromSplitPair(boolean dismissingFromSplitPair) {
mDismissingFromSplitPair = dismissingFromSplitPair;
}
public SplitAnimationController getSplitAnimationController() {
return mSplitAnimationController;
}
/**
* Requires Shell Transitions
*/
@@ -506,6 +525,7 @@ public class SplitSelectStateController {
mItemInfo = null;
mSplitEvent = null;
mAnimateCurrentTaskDismissal = false;
mDismissingFromSplitPair = false;
}
/**
@@ -532,6 +552,10 @@ public class SplitSelectStateController {
return mInitialTaskId;
}
public int getSecondTaskId() {
return mSecondTaskId;
}
private boolean isSecondTaskIntentSet() {
return (mSecondTaskId != INVALID_TASK_ID || mSecondTaskIntent != null);
}