Removing the menu option to create a new contact in the editor

Bug: 3224187
Change-Id: I16e7ff91483b7ad78597c60682c9190e97fdf1fa
diff --git a/res/menu/edit.xml b/res/menu/edit.xml
index 379908b..9eefa6b 100644
--- a/res/menu/edit.xml
+++ b/res/menu/edit.xml
@@ -30,11 +30,6 @@
         android:showAsAction="always" />
 
     <item
-        android:id="@+id/menu_add_raw_contact"
-        android:icon="@drawable/ic_menu_add_contact_holo_light"
-        android:title="@string/menu_newContact" />
-
-    <item
         android:id="@+id/menu_delete"
         android:icon="@drawable/ic_menu_trash_holo_light"
         android:title="@string/menu_deleteContact" />
diff --git a/src/com/android/contacts/views/detail/ContactDetailFragment.java b/src/com/android/contacts/views/detail/ContactDetailFragment.java
index 9fdb59e..1e9998f 100644
--- a/src/com/android/contacts/views/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/views/detail/ContactDetailFragment.java
@@ -1078,7 +1078,7 @@
                     return;  // Don't show a dialog.
                 }
 
-                final SelectAccountDialogFragment dialog = new SelectAccountDialogFragment(true);
+                final SelectAccountDialogFragment dialog = new SelectAccountDialogFragment();
                 dialog.setTargetFragment(this, 0);
                 dialog.show(getFragmentManager(), SelectAccountDialogFragment.TAG);
                 break;
@@ -1091,7 +1091,7 @@
     }
 
     @Override
-    public void onAccountChosen(Account account, boolean isNewContact) {
+    public void onAccountChosen(Account account) {
         createCopy(account);
     }
 
diff --git a/src/com/android/contacts/views/editor/ContactEditorFragment.java b/src/com/android/contacts/views/editor/ContactEditorFragment.java
index 4bdd22c..732f982 100644
--- a/src/com/android/contacts/views/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/views/editor/ContactEditorFragment.java
@@ -286,10 +286,11 @@
 
                 if (account != null) {
                     // Account specified in Intent
-                    createContact(account, true);
+                    createContact(account);
                 } else {
                     // No Account specified. Let the user choose
-                    doAddAction(true);
+                    // Load Accounts async so that we can present them
+                    selectAccountAndCreateContact();
                 }
             } else throw new IllegalArgumentException("Unknown Action String " + mAction +
                     ". Only support " + Intent.ACTION_EDIT + " or " + Intent.ACTION_INSERT);
@@ -392,22 +393,22 @@
         }
     }
 
-    private void selectAccountAndCreateContact(boolean isNewContact) {
+    private void selectAccountAndCreateContact() {
         final ArrayList<Account> accounts = AccountTypes.getInstance(mContext).getAccounts(true);
         // No Accounts available.  Create a phone-local contact.
         if (accounts.isEmpty()) {
-            createContact(null, isNewContact);
+            createContact(null);
             return;  // Don't show a dialog.
         }
 
         // In the common case of a single account being writable, auto-select
         // it without showing a dialog.
         if (accounts.size() == 1) {
-            createContact(accounts.get(0), isNewContact);
+            createContact(accounts.get(0));
             return;  // Don't show a dialog.
         }
 
-        final SelectAccountDialogFragment dialog = new SelectAccountDialogFragment(isNewContact);
+        final SelectAccountDialogFragment dialog = new SelectAccountDialogFragment();
         dialog.setTargetFragment(this, 0);
         dialog.show(getFragmentManager(), SelectAccountDialogFragment.TAG);
     }
@@ -415,9 +416,8 @@
     /**
      * @param account may be null to signal a device-local contact should
      *     be created.
-     * @param prefillFromIntent If this is set, the intent extras will be used to prefill the fields
      */
-    private void createContact(Account account, boolean prefillFromIntent) {
+    private void createContact(Account account) {
         final AccountTypes sources = AccountTypes.getInstance(mContext);
         final ContentValues values = new ContentValues();
         if (account != null) {
@@ -433,8 +433,7 @@
         final AccountType source = sources.getInflatedSource(
                 account != null ? account.type : null,
                 AccountType.LEVEL_CONSTRAINTS);
-        EntityModifier.parseExtras(mContext, source, insert,
-                prefillFromIntent ? mIntentExtras : null);
+        EntityModifier.parseExtras(mContext, source, insert, mIntentExtras);
 
         // Ensure we have some default fields (if the source does not supper a field,
         // ensureKind will not add it, so it is safe to add e.g. Event)
@@ -557,8 +556,6 @@
                 return doSaveAction(SaveMode.CLOSE);
             case R.id.menu_discard:
                 return doRevertAction();
-            case R.id.menu_add_raw_contact:
-                return doAddAction(false);
             case R.id.menu_delete:
                 return doDeleteAction();
             case R.id.menu_split:
@@ -569,13 +566,6 @@
         return false;
     }
 
-    private boolean doAddAction(boolean isNewContact) {
-        // Load Accounts async so that we can present them
-        selectAccountAndCreateContact(isNewContact);
-
-        return true;
-    }
-
     /**
      * Delete the entire contact currently being edited, which usually asks for
      * user confirmation before continuing.
@@ -1728,8 +1718,8 @@
      * Account was chosen in the selector. Create a RawContact for this account now
      */
     @Override
-    public void onAccountChosen(Account account, boolean isNewContact) {
-        createContact(account, isNewContact);
+    public void onAccountChosen(Account account) {
+        createContact(account);
     }
 
     /**
diff --git a/src/com/android/contacts/views/editor/SelectAccountDialogFragment.java b/src/com/android/contacts/views/editor/SelectAccountDialogFragment.java
index 32e88d8..8130695 100644
--- a/src/com/android/contacts/views/editor/SelectAccountDialogFragment.java
+++ b/src/com/android/contacts/views/editor/SelectAccountDialogFragment.java
@@ -36,31 +36,10 @@
  */
 public class SelectAccountDialogFragment extends DialogFragment {
     public static final String TAG = "SelectAccountDialogFragment";
-    private static final String IS_NEW_CONTACT = "IS_NEW_CONTACT";
-
-    private boolean mIsNewContact;
 
     public SelectAccountDialogFragment() {
     }
 
-    public SelectAccountDialogFragment(boolean isNewContact) {
-        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);
-    }
-
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
@@ -75,7 +54,7 @@
                 dialog.dismiss();
 
                 final Listener target = (Listener) getTargetFragment();
-                target.onAccountChosen(accountAdapter.getItem(which), mIsNewContact);
+                target.onAccountChosen(accountAdapter.getItem(which));
             }
         };
 
@@ -93,7 +72,7 @@
     }
 
     public interface Listener {
-        void onAccountChosen(Account account, boolean isNewContact);
+        void onAccountChosen(Account account);
         void onAccountSelectorCancelled();
     }
 }