Loading quickstep/src/com/android/launcher3/uioverrides/states/SplitScreenSelectState.java +5 −0 Original line number Diff line number Diff line Loading @@ -53,4 +53,9 @@ public class SplitScreenSelectState extends OverviewState { return SplitAnimationTimings.ABORT_DURATION; } } @Override public boolean shouldPreserveDataStateOnReapply() { return true; } } quickstep/src/com/android/quickstep/views/RecentsView.java +0 −1 Original line number Diff line number Diff line Loading @@ -4578,7 +4578,6 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T return true; } /** TODO(b/181707736) More gracefully handle exiting split selection state */ @SuppressLint("WrongCall") protected void resetFromSplitSelectionState() { if (mSplitSelectSource != null || mSplitHiddenTaskViewIndex != -1) { Loading src/com/android/launcher3/statemanager/BaseState.java +8 −0 Original line number Diff line number Diff line Loading @@ -70,4 +70,12 @@ public interface BaseState<T extends BaseState> { default boolean showTaskThumbnailSplash() { return false; } /** * For this state, whether member variables and other forms of data state should be preserved * or wiped when the state is reapplied. (See {@link StateManager#reapplyState()}) */ default boolean shouldPreserveDataStateOnReapply() { return false; } } src/com/android/launcher3/statemanager/StateManager.java +7 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,13 @@ public class StateManager<STATE_TYPE extends BaseState<STATE_TYPE>> { public void reapplyState(boolean cancelCurrentAnimation) { boolean wasInAnimation = mConfig.currentAnimation != null; if (cancelCurrentAnimation) { // Animation canceling can trigger a cleanup routine, causing problems when we are in a // launcher state that relies on member variable data. So if we are in one of those // states, accelerate the current animation to its end point rather than canceling it // outright. if (mState.shouldPreserveDataStateOnReapply() && mConfig.currentAnimation != null) { mConfig.currentAnimation.end(); } mAtomicAnimationFactory.cancelAllStateElementAnimation(); cancelAnimation(); } Loading Loading
quickstep/src/com/android/launcher3/uioverrides/states/SplitScreenSelectState.java +5 −0 Original line number Diff line number Diff line Loading @@ -53,4 +53,9 @@ public class SplitScreenSelectState extends OverviewState { return SplitAnimationTimings.ABORT_DURATION; } } @Override public boolean shouldPreserveDataStateOnReapply() { return true; } }
quickstep/src/com/android/quickstep/views/RecentsView.java +0 −1 Original line number Diff line number Diff line Loading @@ -4578,7 +4578,6 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T return true; } /** TODO(b/181707736) More gracefully handle exiting split selection state */ @SuppressLint("WrongCall") protected void resetFromSplitSelectionState() { if (mSplitSelectSource != null || mSplitHiddenTaskViewIndex != -1) { Loading
src/com/android/launcher3/statemanager/BaseState.java +8 −0 Original line number Diff line number Diff line Loading @@ -70,4 +70,12 @@ public interface BaseState<T extends BaseState> { default boolean showTaskThumbnailSplash() { return false; } /** * For this state, whether member variables and other forms of data state should be preserved * or wiped when the state is reapplied. (See {@link StateManager#reapplyState()}) */ default boolean shouldPreserveDataStateOnReapply() { return false; } }
src/com/android/launcher3/statemanager/StateManager.java +7 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,13 @@ public class StateManager<STATE_TYPE extends BaseState<STATE_TYPE>> { public void reapplyState(boolean cancelCurrentAnimation) { boolean wasInAnimation = mConfig.currentAnimation != null; if (cancelCurrentAnimation) { // Animation canceling can trigger a cleanup routine, causing problems when we are in a // launcher state that relies on member variable data. So if we are in one of those // states, accelerate the current animation to its end point rather than canceling it // outright. if (mState.shouldPreserveDataStateOnReapply() && mConfig.currentAnimation != null) { mConfig.currentAnimation.end(); } mAtomicAnimationFactory.cancelAllStateElementAnimation(); cancelAnimation(); } Loading