summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2017-02-14 00:29:47 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-02-14 00:29:47 +0000
commit7d093e75f698db323fe128cd76e0c0bb8492a059 (patch)
tree365f1ecde48fd44e4ea09f5c5dcce615afbcf676 /src/com/android/launcher3
parentef1292149a577f3d4a1207781c177706b6828887 (diff)
parent2ae9c85bd764b92718e96ac95d73b1fd26c0e74e (diff)
downloadandroid_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.java20
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);
}
}
}