diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-02-14 00:29:47 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-02-14 00:29:47 +0000 |
commit | 7d093e75f698db323fe128cd76e0c0bb8492a059 (patch) | |
tree | 365f1ecde48fd44e4ea09f5c5dcce615afbcf676 /src/com/android/launcher3 | |
parent | ef1292149a577f3d4a1207781c177706b6828887 (diff) | |
parent | 2ae9c85bd764b92718e96ac95d73b1fd26c0e74e (diff) | |
download | android_packages_apps_Trebuchet-7d093e75f698db323fe128cd76e0c0bb8492a059.tar.gz android_packages_apps_Trebuchet-7d093e75f698db323fe128cd76e0c0bb8492a059.tar.bz2 android_packages_apps_Trebuchet-7d093e75f698db323fe128cd76e0c0bb8492a059.zip |
Merge "Fixing bug in AnimationLayerSet where it sets the layer type to software at the end of the animation instead fo setting it back to the original value" into ub-launcher3-master
Diffstat (limited to 'src/com/android/launcher3')
-rw-r--r-- | src/com/android/launcher3/anim/AnimationLayerSet.java | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/com/android/launcher3/anim/AnimationLayerSet.java b/src/com/android/launcher3/anim/AnimationLayerSet.java index 42706ffa1..d2f5e78a2 100644 --- a/src/com/android/launcher3/anim/AnimationLayerSet.java +++ b/src/com/android/launcher3/anim/AnimationLayerSet.java @@ -20,23 +20,29 @@ import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.view.View; -import java.util.HashSet; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; /** * Helper class to automatically build view hardware layers for the duration of an animation. */ public class AnimationLayerSet extends AnimatorListenerAdapter { - private final HashSet<View> mViews = new HashSet<>(); + private final HashMap<View, Integer> mViewsToLayerTypeMap = new HashMap<>(); public void addView(View v) { - mViews.add(v); + mViewsToLayerTypeMap.put(v, v.getLayerType()); } @Override public void onAnimationStart(Animator animation) { // Enable all necessary layers - for (View v : mViews) { + Iterator<Map.Entry<View, Integer>> itr = mViewsToLayerTypeMap.entrySet().iterator(); + while (itr.hasNext()) { + Map.Entry<View, Integer> entry = itr.next(); + View v = entry.getKey(); + entry.setValue(v.getLayerType()); v.setLayerType(View.LAYER_TYPE_HARDWARE, null); if (v.isAttachedToWindow() && v.getVisibility() == View.VISIBLE) { v.buildLayer(); @@ -46,8 +52,10 @@ public class AnimationLayerSet extends AnimatorListenerAdapter { @Override public void onAnimationEnd(Animator animation) { - for (View v : mViews) { - v.setLayerType(View.LAYER_TYPE_NONE, null); + Iterator<Map.Entry<View, Integer>> itr = mViewsToLayerTypeMap.entrySet().iterator(); + while (itr.hasNext()) { + Map.Entry<View, Integer> entry = itr.next(); + entry.getKey().setLayerType(entry.getValue(), null); } } } |