summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2013-07-19 23:38:38 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-07-19 23:38:39 +0000
commit3e056d13d2bddc83d30abfd6a8ea17807188d07f (patch)
tree4602d31395a9572f0f5c274e44d6143bf69c690f /src/com/android/launcher3
parentae6f6c67a3aa78d6ebde87321a0abd191aee94e1 (diff)
parent22cba7f9958569a5e4c1dfcce4969daeaa6c898c (diff)
downloadandroid_packages_apps_Trebuchet-3e056d13d2bddc83d30abfd6a8ea17807188d07f.tar.gz
android_packages_apps_Trebuchet-3e056d13d2bddc83d30abfd6a8ea17807188d07f.tar.bz2
android_packages_apps_Trebuchet-3e056d13d2bddc83d30abfd6a8ea17807188d07f.zip
Merge "Adding layout transition for when pages get deleted" into jb-ub-gel-agar
Diffstat (limited to 'src/com/android/launcher3')
-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 98c6fa390..0865411d7 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;
@@ -415,6 +417,7 @@ public class Workspace extends SmoothPagedView
setClipToPadding(false);
setChildrenDrawnWithCacheEnabled(true);
setMinScale(0.5f);
+ setupLayoutTransition();
final Resources res = getResources();
try {
@@ -433,6 +436,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;
@@ -1316,8 +1329,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);
+ }
}
}
@@ -1688,6 +1706,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() {
@@ -1704,6 +1725,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) {