summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2013-07-19 16:14:00 -0700
committerAdam Cohen <adamcohen@google.com>2013-07-19 16:14:47 -0700
commit22cba7f9958569a5e4c1dfcce4969daeaa6c898c (patch)
tree9a8390c3a1c59ec2c4f685c2efef27e841003f07
parent39a06042556a90c98f55a92bda5811e7d9492d13 (diff)
downloadandroid_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.java28
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) {