Prevent editor from closing after account is added
When the ContactEditorAccountsChangedActivity is shown (when creating
a new contact with no default account set) and a new account is added
the editor would close once an account was chosen because a new activity
instance was being created.
Test: manually verify that editor remains open after adding account
while choose account dialog is displayed
Bug 33627801
Change-Id: Icdfbceb0fc2e10619afde4fa772a2efaa21a0c5e
diff --git a/src/com/android/contacts/activities/AttachPhotoActivity.java b/src/com/android/contacts/activities/AttachPhotoActivity.java
index 24f9029..62e6ca4 100644
--- a/src/com/android/contacts/activities/AttachPhotoActivity.java
+++ b/src/com/android/contacts/activities/AttachPhotoActivity.java
@@ -366,7 +366,8 @@
final List<AccountWithDataSet> accounts = AccountInfo.extractAccounts(accountInfos);
if (editorUtils.shouldShowAccountChangedNotification(accounts)) {
- Intent intent = new Intent(this, ContactEditorAccountsChangedActivity.class);
+ Intent intent = new Intent(this, ContactEditorAccountsChangedActivity.class)
+ .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivityForResult(intent, REQUEST_PICK_DEFAULT_ACCOUNT_FOR_NEW_CONTACT);
} else {
// Otherwise, there should be a default account. Then either create a null contact
diff --git a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
index 2ca51f6..2c3c2c8 100644
--- a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
@@ -18,10 +18,8 @@
import android.app.Activity;
import android.app.AlertDialog;
-import android.app.LoaderManager;
import android.content.DialogInterface;
import android.content.Intent;
-import android.content.Loader;
import android.os.Bundle;
import android.provider.ContactsContract.Intents;
import android.view.View;
@@ -36,13 +34,11 @@
import com.android.contacts.editor.ContactEditorUtils;
import com.android.contacts.model.AccountTypeManager;
import com.android.contacts.model.account.AccountInfo;
-import com.android.contacts.model.account.AccountType;
import com.android.contacts.model.account.AccountWithDataSet;
import com.android.contacts.model.account.AccountsLoader;
import com.android.contacts.util.AccountsListAdapter;
import com.android.contacts.util.AccountsListAdapter.AccountListFilter;
import com.android.contacts.util.ImplicitIntentsUtil;
-import com.google.common.util.concurrent.Futures;
import java.util.List;
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index 489cfd1..c1a149b 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -1016,7 +1016,7 @@
if (mEditorUtils.shouldShowAccountChangedNotification(accounts)) {
Intent intent = new Intent(mContext, ContactEditorAccountsChangedActivity.class);
// Prevent a second instance from being started on rotates
- intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
mStatus = Status.SUB_ACTIVITY;
startActivityForResult(intent, REQUEST_CODE_ACCOUNTS_CHANGED);
} else {