Shortcut show/hideSearchBar with new conditions.

This is effectively a revert of:
https://googleplex-android-review.googlesource.com/374556

With the new rules, we won't shortcut if:
 - the search bar is in an opposite visibility OR
 - a non-animated change has been requested AND there
   is an ongoing animation.

This makes sure that showSearchBar(false) called after
showSearchBar(true) is not ignored.

Bug: 11105305
Bug: 11237729
Change-Id: I92668dfac072e62506b2872e8bfbe9f707c9cc69
diff --git a/src/com/android/launcher3/SearchDropTargetBar.java b/src/com/android/launcher3/SearchDropTargetBar.java
index 7a61479..435dbda 100644
--- a/src/com/android/launcher3/SearchDropTargetBar.java
+++ b/src/com/android/launcher3/SearchDropTargetBar.java
@@ -138,6 +138,8 @@
      * Shows and hides the search bar.
      */
     public void showSearchBar(boolean animated) {
+        boolean needToCancelOngoingAnimation = mQSBSearchBarAnim.isRunning() && !animated;
+        if (!mIsSearchBarHidden && !needToCancelOngoingAnimation) return;
         if (animated) {
             prepareStartAnimation(mQSBSearchBar);
             mQSBSearchBarAnim.reverse();
@@ -152,6 +154,8 @@
         mIsSearchBarHidden = false;
     }
     public void hideSearchBar(boolean animated) {
+        boolean needToCancelOngoingAnimation = mQSBSearchBarAnim.isRunning() && !animated;
+        if (mIsSearchBarHidden && !needToCancelOngoingAnimation) return;
         if (animated) {
             prepareStartAnimation(mQSBSearchBar);
             mQSBSearchBarAnim.start();