diff options
Diffstat (limited to 'src/com/android/contacts/activities/ContactEditorBaseActivity.java')
-rw-r--r-- | src/com/android/contacts/activities/ContactEditorBaseActivity.java | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/com/android/contacts/activities/ContactEditorBaseActivity.java b/src/com/android/contacts/activities/ContactEditorBaseActivity.java index ec2f9b67b..41b0c6b67 100644 --- a/src/com/android/contacts/activities/ContactEditorBaseActivity.java +++ b/src/com/android/contacts/activities/ContactEditorBaseActivity.java @@ -153,14 +153,17 @@ abstract public class ContactEditorBaseActivity extends ContactsActivity /** * Saves or creates the contact based on the mode, and if successful * finishes the activity. + * + * @param backPressed whether the save was initiated as a result of a back button press + * or because the framework stopped the editor Activity */ - boolean save(int saveMode); + boolean save(int saveMode, boolean backPressed); /** * Invoked after the contact is saved. */ void onSaveCompleted(boolean hadChanges, int saveMode, boolean saveSucceeded, - Uri contactLookupUri, Bundle updatedPhotos); + Uri contactLookupUri, Bundle updatedPhotos, boolean backPressed); /** * Invoked after the contact is joined. @@ -238,7 +241,9 @@ abstract public class ContactEditorBaseActivity extends ContactsActivity ContactEditor.SaveMode.CLOSE), intent.getBooleanExtra(ContactSaveService.EXTRA_SAVE_SUCCEEDED, false), intent.getData(), - (Bundle) intent.getParcelableExtra(ContactSaveService.EXTRA_UPDATED_PHOTOS)); + (Bundle) intent.getParcelableExtra(ContactSaveService.EXTRA_UPDATED_PHOTOS), + intent.getBooleanExtra(ContactEditorFragment.INTENT_EXTRA_SAVE_BACK_PRESSED, + false)); } else if (ACTION_JOIN_COMPLETED.equals(action)) { mFragment.onJoinCompleted(intent.getData()); } @@ -268,11 +273,15 @@ abstract public class ContactEditorBaseActivity extends ContactsActivity @Override public void onSaveFinished(Intent resultIntent) { + final boolean backPressed = resultIntent == null ? false : resultIntent.getBooleanExtra( + ContactEditorBaseFragment.INTENT_EXTRA_SAVE_BACK_PRESSED, false); if (mFinishActivityOnSaveCompleted) { setResult(resultIntent == null ? RESULT_CANCELED : RESULT_OK, resultIntent); } else if (resultIntent != null) { - ImplicitIntentsUtil.startActivityInApp(ContactEditorBaseActivity.this, - resultIntent); + if (backPressed) { + ImplicitIntentsUtil.startActivityInApp(ContactEditorBaseActivity.this, + resultIntent); + } } finish(); } |