From 1dcf21239edb8afbd18124ec9c66ccf657ba5f2d Mon Sep 17 00:00:00 2001 From: Mike LeBeau Date: Mon, 22 Mar 2010 17:40:35 -0700 Subject: Tell SearchManager to stopSearch on long-press of search. Also, do the long-press haptic feedback first, to avoid any slowdown in the responsiveness of that. Fixes http://b/2526697 Change-Id: I607063b67bdde92303ee112663b76d6e4e9a369b --- phone/com/android/internal/policy/impl/PhoneWindow.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/phone/com/android/internal/policy/impl/PhoneWindow.java b/phone/com/android/internal/policy/impl/PhoneWindow.java index 4e630df..c6a528d 100644 --- a/phone/com/android/internal/policy/impl/PhoneWindow.java +++ b/phone/com/android/internal/policy/impl/PhoneWindow.java @@ -29,6 +29,7 @@ import com.android.internal.view.menu.MenuView; import com.android.internal.view.menu.SubMenuBuilder; import android.app.KeyguardManager; +import android.app.SearchManager; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; @@ -150,6 +151,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { private long mVolumeKeyUpTime; private KeyguardManager mKeyguardManager = null; + + private SearchManager mSearchManager = null; private TelephonyManager mTelephonyManager = null; @@ -1237,9 +1240,10 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { Intent intent = new Intent(Intent.ACTION_SEARCH_LONG_PRESS); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); try { + mDecor.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); sendCloseSystemWindows(); + getSearchManager().stopSearch(); getContext().startActivity(intent); - mDecor.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); // Only clear this if we successfully start the // activity; otherwise we will allow the normal short // press action to be performed. @@ -1266,6 +1270,16 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } return mKeyguardManager; } + + /** + * @return A handle to the search manager. + */ + private SearchManager getSearchManager() { + if (mSearchManager == null) { + mSearchManager = (SearchManager) getContext().getSystemService(Context.SEARCH_SERVICE); + } + return mSearchManager; + } /** * A key was released and not handled by anything else in the window. -- cgit v1.2.3