Close the search dialog when user gets to Home by pressing home button,
but still keep it up if the user pressed e.g. back button.
This commit is contained in:
parent
93e9515348
commit
736cf281f4
|
@ -20,6 +20,7 @@ import android.app.Activity;
|
|||
import android.app.AlertDialog;
|
||||
import android.app.Application;
|
||||
import android.app.Dialog;
|
||||
import android.app.ISearchManager;
|
||||
import android.app.IWallpaperService;
|
||||
import android.app.SearchManager;
|
||||
import android.app.StatusBarManager;
|
||||
|
@ -220,6 +221,8 @@ public final class Launcher extends Activity implements View.OnClickListener, On
|
|||
|
||||
private boolean mDestroyed;
|
||||
|
||||
private boolean mIsNewIntent;
|
||||
|
||||
private boolean mRestoring;
|
||||
private boolean mWaitingForResult;
|
||||
private boolean mLocaleChanged;
|
||||
|
@ -462,8 +465,26 @@ public final class Launcher extends Activity implements View.OnClickListener, On
|
|||
startLoaders();
|
||||
}
|
||||
|
||||
// Make sure that the search gadget (if any) is in its normal place.
|
||||
stopSearch();
|
||||
// If this was a new intent (i.e., the mIsNewIntent flag got set to true by
|
||||
// onNewIntent), then close the search dialog if needed, because it probably
|
||||
// came from the user pressing 'home' (rather than, for example, pressing 'back').
|
||||
if (mIsNewIntent) {
|
||||
// Post to a handler so that this happens after the search dialog tries to open
|
||||
// itself again.
|
||||
mWorkspace.post(new Runnable() {
|
||||
public void run() {
|
||||
ISearchManager searchManagerService = ISearchManager.Stub.asInterface(
|
||||
ServiceManager.getService(Context.SEARCH_SERVICE));
|
||||
try {
|
||||
searchManagerService.stopSearch();
|
||||
} catch (RemoteException e) {
|
||||
e(LOG_TAG, "error stopping search", e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
mIsNewIntent = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -931,6 +952,11 @@ public final class Launcher extends Activity implements View.OnClickListener, On
|
|||
if (Intent.ACTION_MAIN.equals(intent.getAction())) {
|
||||
getWindow().closeAllPanels();
|
||||
|
||||
// Set this flag so that onResume knows to close the search dialog if it's open,
|
||||
// because this was a new intent (thus a press of 'home' or some such) rather than
|
||||
// for example onResume being called when the user pressed the 'back' button.
|
||||
mIsNewIntent = true;
|
||||
|
||||
try {
|
||||
dismissDialog(DIALOG_CREATE_SHORTCUT);
|
||||
// Unlock the workspace if the dialog was showing
|
||||
|
|
Loading…
Reference in New Issue