Fix wrong index; some fields could not be added. Disabled delete animation.

Change-Id: I6007dcdce7ca3126f05437463258b9c93cd928bb
diff --git a/src/com/android/contacts/ui/widget/ContactEditorView.java b/src/com/android/contacts/ui/widget/ContactEditorView.java
index 0916bc0..ff90f65 100644
--- a/src/com/android/contacts/ui/widget/ContactEditorView.java
+++ b/src/com/android/contacts/ui/widget/ContactEditorView.java
@@ -41,7 +41,6 @@
 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
 import android.text.TextUtils;
 import android.util.AttributeSet;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -225,28 +224,32 @@
 
     public Dialog createDialog(Bundle bundle) {
         if (bundle == null) throw new IllegalArgumentException("bundle must not be null");
-        int dialogId = bundle.getInt(DIALOG_ID_KEY);
+        final int dialogId = bundle.getInt(DIALOG_ID_KEY);
         switch (dialogId) {
             case DIALOG_ID_FIELD_SELECTOR:
-                final ArrayList<CharSequence> items =
+                final ArrayList<KindSectionView> usedFields =
+                    new ArrayList<KindSectionView>(mFields.getChildCount());
+                final ArrayList<CharSequence> usedFieldTitles =
                         new ArrayList<CharSequence>(mFields.getChildCount());
+
                 for (int i = 0; i < mFields.getChildCount(); i++) {
                     final KindSectionView sectionView = (KindSectionView) mFields.getChildAt(i);
                     // not a list and already exists? ignore
                     if (!sectionView.getKind().isList && sectionView.getEditorCount() != 0) {
                         continue;
                     }
-                    items.add(sectionView.getTitle());
+                    usedFieldTitles.add(sectionView.getTitle());
+                    usedFields.add(sectionView);
                 }
                 final DialogInterface.OnClickListener itemClickListener =
                         new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int which) {
-                        final KindSectionView view = (KindSectionView) mFields.getChildAt(which);
+                        final KindSectionView view = usedFields.get(which);
                         view.addItem();
                     }
                 };
                 return new AlertDialog.Builder(getContext())
-                        .setItems(items.toArray(new CharSequence[0]), itemClickListener)
+                        .setItems(usedFieldTitles.toArray(new CharSequence[0]), itemClickListener)
                         .create();
             default:
                 throw new IllegalArgumentException("Invalid dialogId: " + dialogId);
diff --git a/src/com/android/contacts/ui/widget/GenericEditorView.java b/src/com/android/contacts/ui/widget/GenericEditorView.java
index 378f4f4..6068660 100644
--- a/src/com/android/contacts/ui/widget/GenericEditorView.java
+++ b/src/com/android/contacts/ui/widget/GenericEditorView.java
@@ -219,17 +219,17 @@
                     // Keep around in model, but mark as deleted
                     mEntry.markDeleted();
 
-                    final ViewGroupAnimator animator = ViewGroupAnimator.captureView(getRootView());
+//                    final ViewGroupAnimator animator = ViewGroupAnimator.captureView(getRootView());
 
-                    animator.removeView(GenericEditorView.this);
-//                    ((ViewGroup) getParent()).removeView(GenericEditorView.this);
+//                    animator.removeView(GenericEditorView.this);
+                    ((ViewGroup) getParent()).removeView(GenericEditorView.this);
 
                     if (mListener != null) {
                         // Notify listener when present
                         mListener.onDeleted(GenericEditorView.this);
                     }
 
-                    animator.animate();
+//                    animator.animate();
                 }
             });
             addView(mDelete);