Merge "New list assets"
diff --git a/src/com/android/contacts/model/EntityModifier.java b/src/com/android/contacts/model/EntityModifier.java
index 37267ec..7a19bf8 100644
--- a/src/com/android/contacts/model/EntityModifier.java
+++ b/src/com/android/contacts/model/EntityModifier.java
@@ -443,7 +443,7 @@
 
             final String name = extras.getString(Insert.NAME);
             if (ContactsUtils.isGraphic(name)) {
-                child.put(StructuredName.GIVEN_NAME, name);
+                child.put(StructuredName.DISPLAY_NAME, name);
             }
 
             final String phoneticName = extras.getString(Insert.PHONETIC_NAME);
@@ -456,7 +456,7 @@
             // StructuredPostal
             final DataKind kind = source.getKindForMimetype(StructuredPostal.CONTENT_ITEM_TYPE);
             parseExtras(state, kind, extras, Insert.POSTAL_TYPE, Insert.POSTAL,
-                    StructuredPostal.STREET);
+                    StructuredPostal.FORMATTED_ADDRESS);
         }
 
         {
diff --git a/src/com/android/contacts/views/editor/ContactEditorFragment.java b/src/com/android/contacts/views/editor/ContactEditorFragment.java
index a744d0f..d0f78a5 100644
--- a/src/com/android/contacts/views/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/views/editor/ContactEditorFragment.java
@@ -271,7 +271,7 @@
             } else if (Intent.ACTION_INSERT.equals(mAction)) {
                 if (mListener != null) mListener.setTitleTo(R.string.editContact_title_insert);
 
-                doAddAction();
+                doAddAction(true);
             } else throw new IllegalArgumentException("Unknown Action String " + mAction +
                     ". Only support " + Intent.ACTION_EDIT + " or " + Intent.ACTION_INSERT);
         }
@@ -354,7 +354,7 @@
         bindEditors();
     }
 
-    public void selectAccountAndCreateContact(boolean isNewContact) {
+    private void selectAccountAndCreateContact(boolean isNewContact) {
         final ArrayList<Account> accounts = Sources.getInstance(mContext).getAccounts(true);
         // No Accounts available.  Create a phone-local contact.
         if (accounts.isEmpty()) {
@@ -369,7 +369,8 @@
             return;  // Don't show a dialog.
         }
 
-        final SelectAccountDialogFragment dialog = new SelectAccountDialogFragment(getId());
+        final SelectAccountDialogFragment dialog = new SelectAccountDialogFragment(getId(),
+                isNewContact);
         dialog.show(getActivity(), SelectAccountDialogFragment.TAG);
     }
 
@@ -500,7 +501,7 @@
             case R.id.menu_discard:
                 return doRevertAction();
             case R.id.menu_add_raw_contact:
-                return doAddAction();
+                return doAddAction(false);
             case R.id.menu_delete:
                 return doDeleteAction();
             case R.id.menu_split:
@@ -511,9 +512,9 @@
         return false;
     }
 
-    private boolean doAddAction() {
+    private boolean doAddAction(boolean isNewContact) {
         // Load Accounts async so that we can present them
-        selectAccountAndCreateContact(true);
+        selectAccountAndCreateContact(isNewContact);
 
         return true;
     }
@@ -1599,8 +1600,8 @@
      * Account was chosen in the selector. Create a RawContact for this account now
      */
     @Override
-    public void onAccountChosen(Account account) {
-        createContact(account, false);
+    public void onAccountChosen(Account account, boolean isNewContact) {
+        createContact(account, isNewContact);
     }
 
     /**
diff --git a/src/com/android/contacts/views/editor/SelectAccountDialogFragment.java b/src/com/android/contacts/views/editor/SelectAccountDialogFragment.java
index 66370cf..9ea1955 100644
--- a/src/com/android/contacts/views/editor/SelectAccountDialogFragment.java
+++ b/src/com/android/contacts/views/editor/SelectAccountDialogFragment.java
@@ -44,12 +44,30 @@
  */
 public class SelectAccountDialogFragment extends TargetedDialogFragment {
     public static final String TAG = "PickPhotoDialogFragment";
+    private static final String IS_NEW_CONTACT = "IS_NEW_CONTACT";
+
+    private boolean mIsNewContact;
 
     public SelectAccountDialogFragment() {
     }
 
-    public SelectAccountDialogFragment(int targetFragmentId) {
+    public SelectAccountDialogFragment(int targetFragmentId, boolean isNewContact) {
         super(targetFragmentId);
+        mIsNewContact = isNewContact;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        if (savedInstanceState != null) {
+            mIsNewContact = savedInstanceState.getBoolean(IS_NEW_CONTACT);
+        }
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putBoolean(IS_NEW_CONTACT, mIsNewContact);
     }
 
     public Dialog onCreateDialog(Bundle savedInstanceState) {
@@ -92,7 +110,7 @@
             public void onClick(DialogInterface dialog, int which) {
                 dialog.dismiss();
 
-                targetListener.onAccountChosen(accountAdapter.getItem(which));
+                targetListener.onAccountChosen(accountAdapter.getItem(which), mIsNewContact);
             }
         };
 
@@ -111,7 +129,7 @@
     }
 
     public interface Listener {
-        void onAccountChosen(Account account);
+        void onAccountChosen(Account account, boolean isNewContact);
         void onAccountSelectorCancelled();
     }
 }