Merge "Fix crash bug when splitting with animations disabled" into tm-dev

This commit is contained in:
Jeremy Sim
2022-04-22 20:05:09 +00:00
committed by Android (Google) Code Review

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;