diff options
author | Adam Cohen <adamcohen@google.com> | 2013-07-19 16:14:00 -0700 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2013-07-19 16:14:47 -0700 |
commit | 22cba7f9958569a5e4c1dfcce4969daeaa6c898c (patch) | |
tree | 9a8390c3a1c59ec2c4f685c2efef27e841003f07 | |
parent | 39a06042556a90c98f55a92bda5811e7d9492d13 (diff) | |
download | android_packages_apps_Trebuchet-22cba7f9958569a5e4c1dfcce4969daeaa6c898c.tar.gz android_packages_apps_Trebuchet-22cba7f9958569a5e4c1dfcce4969daeaa6c898c.tar.bz2 android_packages_apps_Trebuchet-22cba7f9958569a5e4c1dfcce4969daeaa6c898c.zip |
Adding layout transition for when pages get deleted
-> Fixing NPE
Change-Id: I1e0cb057ff65c2b8831a2e10652acb6db10e50e3
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 7129325a5..0d647e333 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -18,6 +18,7 @@ package com.android.launcher3; import android.animation.Animator; import android.animation.AnimatorSet; +import android.animation.LayoutTransition; import android.animation.ObjectAnimator; import android.animation.TimeInterpolator; import android.animation.ValueAnimator; @@ -99,6 +100,7 @@ public class Workspace extends SmoothPagedView private float mWallpaperScrollRatio = 1.0f; + private LayoutTransition mLayoutTransition; private final WallpaperManager mWallpaperManager; private IBinder mWindowToken; private static final float WALLPAPER_SCREENS_SPAN = 2f; @@ -411,6 +413,7 @@ public class Workspace extends SmoothPagedView setClipToPadding(false); setChildrenDrawnWithCacheEnabled(true); setMinScale(0.5f); + setupLayoutTransition(); final Resources res = getResources(); try { @@ -429,6 +432,16 @@ public class Workspace extends SmoothPagedView mFlingThresholdVelocity = (int) (FLING_THRESHOLD_VELOCITY * mDensity); } + private void setupLayoutTransition() { + // We want to show layout transitions when pages are deleted, to close the gap. + mLayoutTransition = new LayoutTransition(); + mLayoutTransition.enableTransitionType(LayoutTransition.DISAPPEARING); + mLayoutTransition.enableTransitionType(LayoutTransition.CHANGE_DISAPPEARING); + mLayoutTransition.disableTransitionType(LayoutTransition.APPEARING); + mLayoutTransition.disableTransitionType(LayoutTransition.CHANGE_APPEARING); + setLayoutTransition(mLayoutTransition); + } + @Override protected int getScrollMode() { return SmoothPagedView.X_LARGE_MODE; @@ -1312,8 +1325,13 @@ public class Workspace extends SmoothPagedView (getScrollForPage(index + 1) - getScrollForPage(index)); setBackgroundAlpha(progress * 0.8f); - mLauncher.getHotseat().setTranslationX(translationX); - getPageIndicator().setTranslationX(translationX); + + if (mLauncher.getHotseat() != null) { + mLauncher.getHotseat().setTranslationX(translationX); + } + if (getPageIndicator() != null) { + getPageIndicator().setTranslationX(translationX); + } } } @@ -1684,6 +1702,9 @@ public class Workspace extends SmoothPagedView ((CellLayout) getChildAt(i)).setUseActiveGlowBackground(true); } showOutlines(); + + // Reordering handles its own animations, disable the automatic ones. + setLayoutTransition(null); } protected void onEndReordering() { @@ -1700,6 +1721,9 @@ public class Workspace extends SmoothPagedView mScreenOrder.add(getIdForScreen(cl)); } mLauncher.getModel().updateWorkspaceScreenOrder(mLauncher, mScreenOrder); + + // Re-enable auto layout transitions for page deletion. + setLayoutTransition(mLayoutTransition); } Animator getChangeStateAnimation(final State state, boolean animated, int delay) { |