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.AlertDialog;
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
import android.app.ISearchManager;
|
||||||
import android.app.IWallpaperService;
|
import android.app.IWallpaperService;
|
||||||
import android.app.SearchManager;
|
import android.app.SearchManager;
|
||||||
import android.app.StatusBarManager;
|
import android.app.StatusBarManager;
|
||||||
|
@ -220,6 +221,8 @@ public final class Launcher extends Activity implements View.OnClickListener, On
|
||||||
|
|
||||||
private boolean mDestroyed;
|
private boolean mDestroyed;
|
||||||
|
|
||||||
|
private boolean mIsNewIntent;
|
||||||
|
|
||||||
private boolean mRestoring;
|
private boolean mRestoring;
|
||||||
private boolean mWaitingForResult;
|
private boolean mWaitingForResult;
|
||||||
private boolean mLocaleChanged;
|
private boolean mLocaleChanged;
|
||||||
|
@ -462,8 +465,26 @@ public final class Launcher extends Activity implements View.OnClickListener, On
|
||||||
startLoaders();
|
startLoaders();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure that the search gadget (if any) is in its normal place.
|
// If this was a new intent (i.e., the mIsNewIntent flag got set to true by
|
||||||
stopSearch();
|
// 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
|
@Override
|
||||||
|
@ -931,6 +952,11 @@ public final class Launcher extends Activity implements View.OnClickListener, On
|
||||||
if (Intent.ACTION_MAIN.equals(intent.getAction())) {
|
if (Intent.ACTION_MAIN.equals(intent.getAction())) {
|
||||||
getWindow().closeAllPanels();
|
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 {
|
try {
|
||||||
dismissDialog(DIALOG_CREATE_SHORTCUT);
|
dismissDialog(DIALOG_CREATE_SHORTCUT);
|
||||||
// Unlock the workspace if the dialog was showing
|
// Unlock the workspace if the dialog was showing
|
||||||
|
|
Loading…
Reference in New Issue