Merge "Fix crash bug when splitting with animations disabled" into tm-dev am: 602b46c399

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/17807433

Change-Id: I18ac8925b7cf520d4d123c6648dc0e7cbaf2a862
Ignore-AOSP-First: this is an automerge
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Jeremy Sim
2022-04-22 20:10:47 +00:00
committed by Automerger Merge Worker

View File

@@ -107,7 +107,6 @@ public final class RecentsViewStateController extends
*/
private void handleSplitSelectionState(@NonNull LauncherState toState,
@Nullable PendingAnimation builder) {
LauncherState currentState = mLauncher.getStateManager().getState();
boolean animate = builder != null;
PagedOrientationHandler orientationHandler =
((RecentsView) mLauncher.getOverviewPanel()).getPagedOrientationHandler();
@@ -116,7 +115,7 @@ public final class RecentsViewStateController extends
TASK_PRIMARY_SPLIT_TRANSLATION, TASK_SECONDARY_SPLIT_TRANSLATION,
mLauncher.getDeviceProfile());
if (isSplitSelectionState(currentState, toState)) {
if (toState == OVERVIEW_SPLIT_SELECT) {
// Animation to "dismiss" selected taskView
PendingAnimation splitSelectInitAnimation = mRecentsView.createSplitSelectInitAnimation(
toState.getTransitionDuration(mLauncher));
@@ -125,30 +124,18 @@ public final class RecentsViewStateController extends
toState.getSplitSelectTranslation(mLauncher), LINEAR);
splitSelectInitAnimation.setFloat(mRecentsView, taskViewsFloat.second, 0, LINEAR);
if (!animate && isSplitSelectionState(currentState, toState)) {
if (!animate) {
splitSelectInitAnimation.buildAnim().start();
} else if (animate &&
isSplitSelectionState(currentState, toState)) {
} else {
builder.add(splitSelectInitAnimation.buildAnim());
}
}
if (isSplitSelectionState(currentState, toState)) {
mRecentsView.applySplitPrimaryScrollOffset();
} else {
mRecentsView.resetSplitPrimaryScrollOffset();
}
}
/**
* @return true if {@param toState} is {@link LauncherState#OVERVIEW_SPLIT_SELECT}
* and {@param fromState} is not {@link LauncherState#OVERVIEW_SPLIT_SELECT}
*/
private boolean isSplitSelectionState(@NonNull LauncherState fromState,
@NonNull LauncherState toState) {
return fromState != OVERVIEW_SPLIT_SELECT && toState == OVERVIEW_SPLIT_SELECT;
}
private void setAlphas(PropertySetter propertySetter, StateAnimationConfig config,
LauncherState state) {
float clearAllButtonAlpha = state.areElementsVisible(mLauncher, CLEAR_ALL_BUTTON) ? 1 : 0;