summaryrefslogtreecommitdiff
path: root/src/com/android/contacts/activities/ContactEditorBaseActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/contacts/activities/ContactEditorBaseActivity.java')
-rw-r--r--src/com/android/contacts/activities/ContactEditorBaseActivity.java19
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();
}