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
This commit is contained in:
Mike LeBeau
2010-03-22 17:40:35 -07:00
parent cf59a0b72d
commit bfd25cacf8

View File

@@ -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 {
sendCloseSystemWindows();
getContext().startActivity(intent);
mDecor.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
sendCloseSystemWindows();
getSearchManager().stopSearch();
getContext().startActivity(intent);
// 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.