Add workspace page translations for edit state.

Bug: 202971709
Test: manual
Change-Id: Ic807d380053b8cc5aaf521513c308854e1b14a43
This commit is contained in:
Pat Manning
2022-03-09 14:19:10 +00:00
parent a66bbdab86
commit b04dd608bf
3 changed files with 66 additions and 1 deletions

View File

@@ -39,6 +39,7 @@ import static com.android.launcher3.states.StateAnimationConfig.ANIM_HOTSEAT_SCA
import static com.android.launcher3.states.StateAnimationConfig.ANIM_HOTSEAT_TRANSLATE;
import static com.android.launcher3.states.StateAnimationConfig.ANIM_SCRIM_FADE;
import static com.android.launcher3.states.StateAnimationConfig.ANIM_WORKSPACE_FADE;
import static com.android.launcher3.states.StateAnimationConfig.ANIM_WORKSPACE_PAGE_TRANSLATE_X;
import static com.android.launcher3.states.StateAnimationConfig.ANIM_WORKSPACE_SCALE;
import static com.android.launcher3.states.StateAnimationConfig.ANIM_WORKSPACE_TRANSLATE;
import static com.android.launcher3.states.StateAnimationConfig.SKIP_SCRIM;
@@ -49,6 +50,7 @@ import android.view.View;
import android.view.animation.Interpolator;
import com.android.launcher3.LauncherState.PageAlphaProvider;
import com.android.launcher3.LauncherState.PageTranslationProvider;
import com.android.launcher3.LauncherState.ScaleAndTranslation;
import com.android.launcher3.anim.PendingAnimation;
import com.android.launcher3.anim.PropertySetter;
@@ -155,6 +157,12 @@ public class WorkspaceStateTransitionAnimation {
scaleAndTranslation.translationX, translationInterpolator);
propertySetter.setFloat(mWorkspace, VIEW_TRANSLATE_Y,
scaleAndTranslation.translationY, translationInterpolator);
PageTranslationProvider pageTranslationProvider = state.getWorkspacePageTranslationProvider(
mLauncher);
for (int i = 0; i < childCount; i++) {
applyPageTranslation((CellLayout) mWorkspace.getChildAt(i), i, pageTranslationProvider,
propertySetter, config);
}
Interpolator hotseatTranslationInterpolator = config.getInterpolator(
ANIM_HOTSEAT_TRANSLATE, translationInterpolator);
@@ -202,6 +210,16 @@ public class WorkspaceStateTransitionAnimation {
pageAlpha, fadeInterpolator);
}
private void applyPageTranslation(CellLayout cellLayout, int childIndex,
PageTranslationProvider pageTranslationProvider, PropertySetter propertySetter,
StateAnimationConfig config) {
float pageTranslation = pageTranslationProvider.getPageTranslation(childIndex);
Interpolator translationInterpolator = config.getInterpolator(
ANIM_WORKSPACE_PAGE_TRANSLATE_X, pageTranslationProvider.interpolator);
propertySetter.setFloat(cellLayout, VIEW_TRANSLATE_X, pageTranslation,
translationInterpolator);
}
/**
* Returns a spring based animator for the scale property of {@param workspace}.
*/