summaryrefslogtreecommitdiff
path: root/src/com/android/contacts/activities
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/contacts/activities')
-rw-r--r--src/com/android/contacts/activities/CompactContactEditorActivity.java2
-rw-r--r--src/com/android/contacts/activities/ContactEditorActivity.java2
-rw-r--r--src/com/android/contacts/activities/ContactEditorBaseActivity.java19
3 files changed, 16 insertions, 7 deletions
diff --git a/src/com/android/contacts/activities/CompactContactEditorActivity.java b/src/com/android/contacts/activities/CompactContactEditorActivity.java
index fcbb70ee7..c45c261b3 100644
--- a/src/com/android/contacts/activities/CompactContactEditorActivity.java
+++ b/src/com/android/contacts/activities/CompactContactEditorActivity.java
@@ -60,7 +60,7 @@ public class CompactContactEditorActivity extends ContactEditorBaseActivity {
@Override
public void onBackPressed() {
if (mFragment != null) {
- mFragment.save(ContactEditor.SaveMode.CLOSE);
+ mFragment.save(ContactEditor.SaveMode.CLOSE, /* backPressed =*/ true);
}
}
}
diff --git a/src/com/android/contacts/activities/ContactEditorActivity.java b/src/com/android/contacts/activities/ContactEditorActivity.java
index a9b75d989..800a26756 100644
--- a/src/com/android/contacts/activities/ContactEditorActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorActivity.java
@@ -54,7 +54,7 @@ public class ContactEditorActivity extends ContactEditorBaseActivity
@Override
public void onBackPressed() {
if (mFragment != null) {
- mFragment.save(ContactEditor.SaveMode.COMPACT);
+ mFragment.save(ContactEditor.SaveMode.COMPACT, /* backPressed =*/ true);
}
}
}
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();
}