Merge "Hide account container in compact editor." into ub-contactsdialer-a-dev
diff --git a/src/com/android/contacts/editor/CompactRawContactsEditorView.java b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
index 4aa7a94..1eba880 100644
--- a/src/com/android/contacts/editor/CompactRawContactsEditorView.java
+++ b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
@@ -748,10 +748,10 @@
             if (accounts.size() > 1) {
                 addAccountSelector(accountInfo, rawContactDelta);
             } else {
-                addAccountHeader(accountInfo, rawContactDeltas);
+                addAccountHeader(accountInfo);
             }
-        } else {
-            addAccountHeader(accountInfo, rawContactDeltas);
+        } else if (mIsUserProfile || !shouldHideAccountContainer(rawContactDeltas)) {
+            addAccountHeader(accountInfo);
         }
 
         // The raw contact selector should only display linked raw contacts that can be edited in
@@ -788,9 +788,9 @@
         return result;
     }
 
-    // Returns true if there're multiple writable and no read only, or there're both writable and
-    // read only. For ME profile, return false if there's a read only contact and unsaved local one.
-    private boolean shouldHideAccountHeader(RawContactDeltaList rawContactDeltas) {
+    // Returns true if there are multiple writable rawcontacts and no read-only ones,
+    // or there are both writable and read-only rawcontacts.
+    private boolean shouldHideAccountContainer(RawContactDeltaList rawContactDeltas) {
         int writable = 0;
         int readonly = 0;
         for (RawContactDelta rawContactDelta : rawContactDeltas) {
@@ -805,12 +805,8 @@
         return (writable > 1 || (writable > 0 && readonly > 0));
     }
 
-    private void addAccountHeader(Pair<String,String> accountInfo,
-            RawContactDeltaList rawContactDeltas) {
+    private void addAccountHeader(Pair<String,String> accountInfo) {
         mAccountHeaderContainer.setVisibility(View.VISIBLE);
-        if (shouldHideAccountHeader(rawContactDeltas)) {
-            mAccountHeaderContainer.setVisibility(View.GONE);
-        }
 
         // Set the account name
         final String accountName = TextUtils.isEmpty(accountInfo.first)
diff --git a/src/com/android/contacts/editor/ContactEditorBaseFragment.java b/src/com/android/contacts/editor/ContactEditorBaseFragment.java
index 91fc81f..320ebe9 100644
--- a/src/com/android/contacts/editor/ContactEditorBaseFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorBaseFragment.java
@@ -1140,6 +1140,8 @@
             selectAccountAndCreateContact();
 
             readOnlyDisplayName = contact.getDisplayName();
+        } else {
+            mHasNewContact = false;
         }
 
         // This also adds deltas to list.  If readOnlyDisplayName is null at this point it is