Merge "Allow "Saving to" and linked selectors to be displayed at the same time" into ub-contactsdialer-a-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0c1a83f..3f721b3 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -275,6 +275,15 @@
<!-- Toast displayed when saving a contact failed. [CHAR LIMIT=NONE] -->
<string name="contactSavedErrorToast">Couldn\'t save contact changes.</string>
+ <!-- Toast displayed when unlinking a contact failed. [CHAR LIMIT=NONE] -->
+ <string name="contactUnlinkErrorToast">Couldn\'t unlink contact.</string>
+
+ <!-- Toast displayed when joining a contact failed. [CHAR LIMIT=NONE] -->
+ <string name="contactJoinErrorToast">Couldn\'t join contact.</string>
+
+ <!-- Generic error default clause displayed when saving a contact failed. [CHAR LIMIT=NONE] -->
+ <string name="contactGenericErrorToast">Error saving contact.</string>
+
<!-- Toast displayed when saving a contact photo failed. [CHAR LIMIT=NONE] -->
<string name="contactPhotoSavedErrorToast">Couldn\'t save contact photo changes.</string>
diff --git a/src/com/android/contacts/editor/CompactContactEditorFragment.java b/src/com/android/contacts/editor/CompactContactEditorFragment.java
index 8067df1..9698ada 100644
--- a/src/com/android/contacts/editor/CompactContactEditorFragment.java
+++ b/src/com/android/contacts/editor/CompactContactEditorFragment.java
@@ -19,6 +19,7 @@
import com.android.contacts.ContactSaveService;
import com.android.contacts.R;
import com.android.contacts.activities.CompactContactEditorActivity;
+import com.android.contacts.activities.ContactEditorBaseActivity;
import com.android.contacts.common.model.RawContactDelta;
import com.android.contacts.common.model.ValuesDelta;
import com.android.contacts.common.model.account.AccountWithDataSet;
@@ -161,8 +162,27 @@
SAVE_MODE_EXTRA_KEY, saveMode, isEditingUserProfile(),
((Activity) mContext).getClass(),
CompactContactEditorActivity.ACTION_SAVE_COMPLETED, mUpdatedPhotos);
- mContext.startService(intent);
-
+ try {
+ mContext.startService(intent);
+ } catch (Exception exception) {
+ final int resId;
+ switch (saveMode) {
+ case ContactEditorBaseActivity.ContactEditor.SaveMode.SPLIT:
+ resId = R.string.contactUnlinkErrorToast;
+ break;
+ case ContactEditorBaseActivity.ContactEditor.SaveMode.RELOAD:
+ resId = R.string.contactJoinErrorToast;
+ break;
+ case ContactEditorBaseActivity.ContactEditor.SaveMode.CLOSE:
+ resId = R.string.contactSavedErrorToast;
+ break;
+ default:
+ resId = R.string.contactGenericErrorToast;
+ }
+ Toast.makeText(mContext, resId, Toast.LENGTH_SHORT).show();
+ onCancelEditConfirmed();
+ return false;
+ }
return true;
}