Fix intent handling from other apps in recovery case
Bug: 5433940
When browser had a crash recovery state, the view intent from
the other app was dropped.
Change-Id: I8eaafa7ad792fa2048ad33886b7394c31ca97e21
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 81ba941..686cfcd 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -262,13 +262,13 @@
void start(final Bundle icicle, final Intent intent) {
boolean noCrashRecovery = intent.getBooleanExtra(NO_CRASH_RECOVERY, false);
if (icicle != null || noCrashRecovery) {
- doStart(icicle, intent);
+ doStart(icicle, intent, false);
} else {
mCrashRecoveryHandler.startRecovery(intent);
}
}
- void doStart(final Bundle icicle, final Intent intent) {
+ void doStart(final Bundle icicle, final Intent intent, final boolean fromCrash) {
// Unless the last browser usage was within 24 hours, destroy any
// remaining incognito tabs.
@@ -296,13 +296,14 @@
GoogleAccountLogin.startLoginIfNeeded(mActivity,
new Runnable() {
@Override public void run() {
- onPreloginFinished(icicle, intent, currentTabId, restoreIncognitoTabs);
+ onPreloginFinished(icicle, intent, currentTabId, restoreIncognitoTabs,
+ fromCrash);
}
});
}
private void onPreloginFinished(Bundle icicle, Intent intent, long currentTabId,
- boolean restoreIncognitoTabs) {
+ boolean restoreIncognitoTabs, boolean fromCrash) {
if (currentTabId == -1) {
BackgroundHandler.execute(new PruneThumbnails(mActivity, null));
final Bundle extra = intent.getExtras();
@@ -346,7 +347,7 @@
setActiveTab(mTabControl.getCurrentTab());
// Handle the intent if needed. If icicle != null, we are restoring
// and the intent will be stale - ignore it.
- if (icicle == null) {
+ if (icicle == null || fromCrash) {
mIntentHandler.onNewIntent(intent);
}
}