OSDN Git Service

Do not force the soft keyboard open if the search widget is already at the top of...
authorMike LeBeau <mlebeau@android.com>
Sat, 23 May 2009 01:08:43 +0000 (18:08 -0700)
committerMike LeBeau <mlebeau@android.com>
Sat, 23 May 2009 01:08:43 +0000 (18:08 -0700)
Forcing the soft keyboard open is done at a specific time when animating the
search widget to the top of the screen in order to time the two animations well,
but we were doing it anyway even if the search widget was already at the top of
the screen and didn't need to animate.

Okay, so git does kinda rock when you're on a plane. :)

src/com/android/launcher/Search.java

index 3d09479..96c0022 100644 (file)
@@ -172,24 +172,24 @@ public class Search extends LinearLayout
         mAppSearchData = appSearchData;
         mGlobalSearch = globalSearch;
         
-        // Call up the keyboard before we actually call the search dialog so that it
-        // (hopefully) animates in at about the same time as the widget animation, and
-        // so that it becomes available as soon as possible. Only do this if a hard
-        // keyboard is not currently available.
-        if (getContext().getResources().getConfiguration().hardKeyboardHidden ==
-                Configuration.HARDKEYBOARDHIDDEN_YES) {
-            // Make sure the text field is not focusable, so it's not responsible for
-            // causing the whole view to shift up to accommodate the keyboard.
-            mSearchText.setFocusable(false);
-            
-            InputMethodManager inputManager = (InputMethodManager)
-                    getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
-            inputManager.showSoftInputUnchecked(0, null);
-        }
-        
         if (isAtTop()) {
             showSearchDialog();
         } else {
+            // Call up the keyboard before we actually call the search dialog so that it
+            // (hopefully) animates in at about the same time as the widget animation, and
+            // so that it becomes available as soon as possible. Only do this if a hard
+            // keyboard is not currently available.
+            if (getContext().getResources().getConfiguration().hardKeyboardHidden ==
+                    Configuration.HARDKEYBOARDHIDDEN_YES) {
+                // Make sure the text field is not focusable, so it's not responsible for
+                // causing the whole view to shift up to accommodate the keyboard.
+                mSearchText.setFocusable(false);
+                
+                InputMethodManager inputManager = (InputMethodManager)
+                        getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
+                inputManager.showSoftInputUnchecked(0, null);
+            }
+            
             // Start the animation, unless it has already started.
             if (getAnimation() != mMorphAnimation) {
                 mMorphAnimation.setDuration(getAnimationDuration());