summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/Workspace.java
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2015-02-13 16:14:33 -0800
committerAdam Cohen <adamcohen@google.com>2015-02-13 16:39:10 -0800
commit80e6beb48ca71a321f667e79fe35a7ab2fb4c2bf (patch)
treefd62e3f7cc61c1e014ec4a941118cb60cdcd49e0 /src/com/android/launcher3/Workspace.java
parentc87775d8e63c7b5722c23ef95c782f574b847d73 (diff)
downloadandroid_packages_apps_Trebuchet-80e6beb48ca71a321f667e79fe35a7ab2fb4c2bf.tar.gz
android_packages_apps_Trebuchet-80e6beb48ca71a321f667e79fe35a7ab2fb4c2bf.tar.bz2
android_packages_apps_Trebuchet-80e6beb48ca71a321f667e79fe35a7ab2fb4c2bf.zip
Ensure that layers are properly removed after animation
Bug 19243980 Change-Id: Ic1d54f92051f7d937878898cae210ec18ecbaff8
Diffstat (limited to 'src/com/android/launcher3/Workspace.java')
-rw-r--r--src/com/android/launcher3/Workspace.java35
1 files changed, 23 insertions, 12 deletions
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 44d77571b..402172717 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -2091,7 +2091,7 @@ public class Workspace extends SmoothPagedView
}
Animator getChangeStateAnimation(final State state, boolean animated,
- ArrayList<View> layerViews) {
+ HashMap<View, Integer> layerViews) {
return getChangeStateAnimation(state, animated, 0, -1, layerViews);
}
@@ -2222,7 +2222,7 @@ public class Workspace extends SmoothPagedView
}
Animator getChangeStateAnimation(final State state, boolean animated, int delay, int snapPage,
- ArrayList<View> layerViews) {
+ HashMap<View, Integer> layerViews) {
if (mState == state) {
return null;
}
@@ -2352,7 +2352,7 @@ public class Workspace extends SmoothPagedView
cl.setShortcutAndWidgetAlpha(mNewAlphas[i]);
} else {
if (layerViews != null) {
- layerViews.add(cl);
+ layerViews.put(cl, Launcher.BUILD_LAYER);
}
if (mOldAlphas[i] != mNewAlphas[i] || currentAlpha != mNewAlphas[i]) {
LauncherViewPropertyAnimator alphaAnim =
@@ -2389,12 +2389,12 @@ public class Workspace extends SmoothPagedView
pageIndicatorAlpha = ValueAnimator.ofFloat(0, 0);
}
- Animator hotseatAlpha = new LauncherViewPropertyAnimator(hotseat)
- .alpha(finalHotseatAndPageIndicatorAlpha).withLayer();
+ LauncherViewPropertyAnimator hotseatAlpha = new LauncherViewPropertyAnimator(hotseat)
+ .alpha(finalHotseatAndPageIndicatorAlpha);
hotseatAlpha.addListener(new AlphaUpdateListener(hotseat));
- Animator overviewPanelAlpha = new LauncherViewPropertyAnimator(overviewPanel)
- .alpha(finalOverviewPanelAlpha).withLayer();
+ LauncherViewPropertyAnimator overviewPanelAlpha =
+ new LauncherViewPropertyAnimator(overviewPanel).alpha(finalOverviewPanelAlpha);
overviewPanelAlpha.addListener(new AlphaUpdateListener(overviewPanel));
// For animation optimations, we may need to provide the Launcher transition
@@ -2402,8 +2402,14 @@ public class Workspace extends SmoothPagedView
hotseat.setLayerType(View.LAYER_TYPE_HARDWARE, null);
overviewPanel.setLayerType(View.LAYER_TYPE_HARDWARE, null);
if (layerViews != null) {
- layerViews.add(hotseat);
- layerViews.add(overviewPanel);
+ // If layerViews is not null, we add these views, and indicate that
+ // the caller can manage layer state.
+ layerViews.put(hotseat, Launcher.BUILD_AND_SET_LAYER);
+ layerViews.put(overviewPanel, Launcher.BUILD_AND_SET_LAYER);
+ } else {
+ // Otherwise let the animator handle layer management.
+ hotseatAlpha.withLayer();
+ overviewPanelAlpha.withLayer();
}
if (workspaceToOverview) {
@@ -2421,12 +2427,17 @@ public class Workspace extends SmoothPagedView
hotseatAlpha.setDuration(duration);
if (searchBar != null) {
- Animator searchBarAlpha = new LauncherViewPropertyAnimator(searchBar)
- .alpha(finalSearchBarAlpha).withLayer();
+ LauncherViewPropertyAnimator searchBarAlpha = new LauncherViewPropertyAnimator(searchBar)
+ .alpha(finalSearchBarAlpha);
searchBarAlpha.addListener(new AlphaUpdateListener(searchBar));
searchBar.setLayerType(View.LAYER_TYPE_HARDWARE, null);
if (layerViews != null) {
- layerViews.add(searchBar);
+ // If layerViews is not null, we add these views, and indicate that
+ // the caller can manage layer state.
+ layerViews.put(searchBar, Launcher.BUILD_AND_SET_LAYER);
+ } else {
+ // Otherwise let the animator handle layer management.
+ searchBarAlpha.withLayer();
}
searchBarAlpha.setDuration(duration);
anim.play(searchBarAlpha);