OSDN Git Service

Fixing issue with search bar not being visible.
authorWinson <winsonc@google.com>
Thu, 20 Aug 2015 22:22:18 +0000 (15:22 -0700)
committerWinson Chung <winsonc@google.com>
Thu, 20 Aug 2015 22:29:49 +0000 (22:29 +0000)
- If you queue up two SearchBarDropTarget state transitions one right after
  another, the second animation will skip (since the values haven't started
  animating yet) and the first animation will complete instead, leaving the
  visibility of the search and drop target bars at odds with the current
  bar state.
- Instead, we should cancel all existing animators first, such that if we
  are already in the final state, no animations will run, and the correct
  bars will be visibile.

Bug: 23201830
Change-Id: I1f8e802821ef2b4904a3efa7edbea6ae615479b9

src/com/android/launcher3/SearchDropTargetBar.java

index 1efdfb6..772a334 100644 (file)
@@ -186,7 +186,12 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D
      */
     private void animateViewAlpha(LauncherViewPropertyAnimator animator, View v, float alpha,
             int duration) {
-        if (v != null && Float.compare(v.getAlpha(), alpha) != 0) {
+        if (v == null) {
+            return;
+        }
+
+        animator.cancel();
+        if (Float.compare(v.getAlpha(), alpha) != 0) {
             if (duration > 0) {
                 animator.alpha(alpha).withLayer().setDuration(duration).start();
             } else {