From f768d934682ba80da89d454543928e629a44103d Mon Sep 17 00:00:00 2001 From: Winson Date: Fri, 25 Sep 2015 16:12:35 -0700 Subject: [PATCH] Fixing regression in L3 with search bar transition. Change-Id: Ia4155a653012c5d23df21167233fe766e5479347 --- src/com/android/launcher3/Launcher.java | 6 ++- .../LauncherStateTransitionAnimation.java | 39 ++++++++++--------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 84e6b997ac..e97f0172fa 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -3571,8 +3571,12 @@ public class Launcher extends Activity // NO-OP } + public boolean launcherCallbacksProvidesSearch() { + return (mLauncherCallbacks != null && mLauncherCallbacks.providesSearch()); + } + public View getOrCreateQsbBar() { - if (mLauncherCallbacks != null && mLauncherCallbacks.providesSearch()) { + if (launcherCallbacksProvidesSearch()) { return mLauncherCallbacks.getQsbBar(); } diff --git a/src/com/android/launcher3/LauncherStateTransitionAnimation.java b/src/com/android/launcher3/LauncherStateTransitionAnimation.java index cdde8c13fa..5b8af97585 100644 --- a/src/com/android/launcher3/LauncherStateTransitionAnimation.java +++ b/src/com/android/launcher3/LauncherStateTransitionAnimation.java @@ -710,26 +710,27 @@ public class LauncherStateTransitionAnimation { toWorkspaceState.getSearchDropTargetBarState(); if (overlaySearchBar != null) { - if ((toWorkspaceState == Workspace.State.NORMAL) && - (fromWorkspaceState == Workspace.State.NORMAL_HIDDEN)) { - // If we are transitioning from the overlay to the workspace, then show the - // workspace search bar immediately and let the overlay search bar fade out on top - mLauncher.getSearchDropTargetBar().animateToState(toSearchBarState, 0); - } else if (fromWorkspaceState == Workspace.State.NORMAL) { - // If we are transitioning from the workspace to the overlay, then keep the - // workspace search bar visible until the overlay search bar fades in on top - animation.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - mLauncher.getSearchDropTargetBar().animateToState(toSearchBarState, 0); - } - }); - } else { - // Otherwise, then just animate the workspace search bar normally - mLauncher.getSearchDropTargetBar().animateToState(toSearchBarState, duration); + if (mLauncher.launcherCallbacksProvidesSearch()) { + if ((toWorkspaceState == Workspace.State.NORMAL) && + (fromWorkspaceState == Workspace.State.NORMAL_HIDDEN)) { + // If we are transitioning from the overlay to the workspace, then show the + // workspace search bar immediately and let the overlay search bar fade out on + // top + mLauncher.getSearchDropTargetBar().animateToState(toSearchBarState, 0); + return; + } else if (fromWorkspaceState == Workspace.State.NORMAL) { + // If we are transitioning from the workspace to the overlay, then keep the + // workspace search bar visible until the overlay search bar fades in on top + animation.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + mLauncher.getSearchDropTargetBar().animateToState(toSearchBarState, 0); + } + }); + return; + } } - } else { - // If there is no overlay search bar, then just animate the workspace search bar + // Fallback to the default search bar animation otherwise mLauncher.getSearchDropTargetBar().animateToState(toSearchBarState, duration); } }