diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index c73e07794f..ab7f6226c9 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -482,6 +482,9 @@ public class Launcher extends StatefulActivity mOnboardingPrefs = createOnboardingPrefs(mSharedPrefs); + // TODO: move the SearchConfig to SearchState when new LauncherState is created. + mBaseSearchConfig = new BaseSearchConfig(); + mAppWidgetManager = new WidgetManagerHelper(this); mAppWidgetHolder = createAppWidgetHolder(); mAppWidgetHolder.startListening(); @@ -548,9 +551,6 @@ public class Launcher extends StatefulActivity getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_ADJUST_NOTHING); } setTitle(R.string.home_screen); - - // TODO: move the SearchConfig to SearchState when new LauncherState is created. - mBaseSearchConfig = new BaseSearchConfig(); } protected LauncherOverlayManager getDefaultOverlay() { @@ -1598,7 +1598,6 @@ public class Launcher extends StatefulActivity && AbstractFloatingView.getTopOpenView(this) == null; boolean isActionMain = Intent.ACTION_MAIN.equals(intent.getAction()); boolean internalStateHandled = ACTIVITY_TRACKER.handleNewIntent(this); - hideKeyboard(); if (isActionMain) { if (!internalStateHandled) { diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java index fa2c6e93c0..9930abeb12 100644 --- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java +++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java @@ -141,6 +141,9 @@ public class AllAppsTransitionController private final Launcher mLauncher; private boolean mIsVerticalLayout; + // Whether this class should take care of closing the keyboard. + private boolean mShouldControlKeyboard; + // Animation in this class is controlled by a single variable {@link mProgress}. // Visually, it represents top y coordinate of the all apps container if multiplied with // {@link mShiftRange}. @@ -238,7 +241,7 @@ public class AllAppsTransitionController StateAnimationConfig config, PendingAnimation builder) { if (mLauncher.isInState(ALL_APPS) && !ALL_APPS.equals(toState)) { // For atomic animations, we close the keyboard immediately. - if (!config.userControlled && !mLauncher.getSearchConfig().isKeyboardSyncEnabled()) { + if (!config.userControlled && mShouldControlKeyboard) { mLauncher.getAppsView().getSearchUiManager().getEditText().hideKeyboard(); } @@ -252,7 +255,7 @@ public class AllAppsTransitionController // the keyboard open and then changes their mind and swipes back up, we want the // keyboard to remain open. However an onCancel signal is sent to the listeners // (success = false), so we need to check for that. - if (config.userControlled && success) { + if (config.userControlled && success && mShouldControlKeyboard) { mLauncher.getAppsView().getSearchUiManager().getEditText().hideKeyboard(); } }); @@ -317,6 +320,8 @@ public class AllAppsTransitionController mAppsViewAlpha.setUpdateVisibility(true); mAppsViewTranslationY = new MultiPropertyFactory<>( mAppsView, VIEW_TRANSLATE_Y, APPS_VIEW_INDEX_COUNT, Float::sum); + + mShouldControlKeyboard = !mLauncher.getSearchConfig().isKeyboardSyncEnabled(); } /** @@ -333,7 +338,9 @@ public class AllAppsTransitionController private void onProgressAnimationEnd() { if (Float.compare(mProgress, 1f) == 0) { mAppsView.reset(false /* animate */); - mLauncher.getAppsView().getSearchUiManager().getEditText().hideKeyboard(); + if (mShouldControlKeyboard) { + mLauncher.getAppsView().getSearchUiManager().getEditText().hideKeyboard(); + } } } }