Don't set super primary name on compact editor unless it changes

Also fix the contact being loaded unnecessarily when transitioning
to the full editor.

Bug 21464081

Change-Id: Ic833f64a073898c8524892428512ce65f2f14625
diff --git a/src/com/android/contacts/editor/CompactContactEditorFragment.java b/src/com/android/contacts/editor/CompactContactEditorFragment.java
index 64bcf86..1620ed1 100644
--- a/src/com/android/contacts/editor/CompactContactEditorFragment.java
+++ b/src/com/android/contacts/editor/CompactContactEditorFragment.java
@@ -345,12 +345,9 @@
         if (isInsert) {
             // For inserts, prevent any changes from being saved when the base fragment is destroyed
             mStatus = Status.CLOSING;
-        } else {
-            // Prevent a Toast from being displayed as we transition to the full editor
-            mShowToastAfterSave = false;
-
+        } else if (hasPendingChanges()) {
             // Save whatever is in the form
-            save(SaveMode.RELOAD, /* backPressed =*/ false);
+            save(SaveMode.CLOSE, /* backPressed =*/ false);
         }
 
         // Prepare an Intent to start the expanded editor
diff --git a/src/com/android/contacts/editor/CompactRawContactsEditorView.java b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
index a34c911..df6cc3f 100644
--- a/src/com/android/contacts/editor/CompactRawContactsEditorView.java
+++ b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
@@ -174,13 +174,6 @@
     @Override
     public void onClick(View view) {
         if (view.getId() == R.id.more_fields && mListener != null ) {
-            // We mark the name that was displayed as super primary before expanding
-            // so that a save on the expanded editor (without a name change) does not
-            // cause the displayed name to change.
-            if (mNameValuesDelta != null) {
-                mNameValuesDelta.setSuperPrimary(true);
-            }
-
             mListener.onExpandEditor();
         }
     }
diff --git a/src/com/android/contacts/editor/ContactEditorBaseFragment.java b/src/com/android/contacts/editor/ContactEditorBaseFragment.java
index 6ba7188..65efb04 100644
--- a/src/com/android/contacts/editor/ContactEditorBaseFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorBaseFragment.java
@@ -373,10 +373,6 @@
     // Used to pre-populate the editor with a display name when a user edits a read-only contact.
     protected String mDefaultDisplayName;
 
-    // Whether to show a Toast message after saves have completed.
-    // Does not affect successful toasts shown after joins, which are never displayed.
-    protected boolean mShowToastAfterSave = true;
-
     /**
      * The contact data loader listener.
      */
@@ -1343,7 +1339,7 @@
             Uri contactLookupUri, Bundle updatedPhotos, boolean backPressed, long photoId) {
         if (hadChanges) {
             if (saveSucceeded) {
-                if (saveMode != SaveMode.JOIN && mShowToastAfterSave) {
+                if (saveMode != SaveMode.JOIN) {
                     Toast.makeText(mContext, R.string.contactSavedToast, Toast.LENGTH_SHORT).show();
                 }
             } else {