Fixing broken build.

Change-Id: I5c56e2ba9cc8fc439ee37a156d1a6b247ed7e07c
diff --git a/src/com/android/contacts/model/EntityDelta.java b/src/com/android/contacts/model/EntityDelta.java
index f382d2c..a1f3848 100644
--- a/src/com/android/contacts/model/EntityDelta.java
+++ b/src/com/android/contacts/model/EntityDelta.java
@@ -21,24 +21,23 @@
 import com.google.android.collect.Sets;
 
 import android.content.ContentProviderOperation;
+import android.content.ContentProviderOperation.Builder;
 import android.content.ContentValues;
 import android.content.Entity;
-import android.content.ContentProviderOperation.Builder;
 import android.content.Entity.NamedContentValues;
 import android.net.Uri;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.provider.BaseColumns;
-import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
 import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.RawContacts;
-import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
 import android.util.Log;
-import android.view.View;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -241,6 +240,18 @@
         return entry;
     }
 
+    public ArrayList<ContentValues> getContentValues() {
+        ArrayList<ContentValues> values = Lists.newArrayList();
+        for (ArrayList<ValuesDelta> mimeEntries : mEntries.values()) {
+            for (ValuesDelta entry : mimeEntries) {
+                if (!entry.isDelete()) {
+                    values.add(entry.getCompleteValues());
+                }
+            }
+        }
+        return values;
+    }
+
     /**
      * Find entry with the given {@link BaseColumns#_ID} value.
      */
diff --git a/src/com/android/contacts/model/EntityModifier.java b/src/com/android/contacts/model/EntityModifier.java
index c6c97cb..70c88f4 100644
--- a/src/com/android/contacts/model/EntityModifier.java
+++ b/src/com/android/contacts/model/EntityModifier.java
@@ -515,6 +515,20 @@
                 child.put(Note.NOTE, notes);
             }
         }
+
+        // Arbitrary additional data
+        {
+//            ArrayList<ContentValues> values = extras.getParcelableArrayList(Insert.DATA);
+//            if (values != null) {
+//                parseValues(state, values);
+//            }
+        }
+    }
+
+    private static void parseValues(EntityDelta state, ArrayList<ContentValues> values) {
+        for (ContentValues contentValues : values) {
+            String mimeType = contentValues.getAsString(Data.MIMETYPE);
+        }
     }
 
     /**
diff --git a/src/com/android/contacts/views/editor/AggregationSuggestionView.java b/src/com/android/contacts/views/editor/AggregationSuggestionView.java
index 367ed52..8c8adf7 100644
--- a/src/com/android/contacts/views/editor/AggregationSuggestionView.java
+++ b/src/com/android/contacts/views/editor/AggregationSuggestionView.java
@@ -17,8 +17,8 @@
 package com.android.contacts.views.editor;
 
 import com.android.contacts.R;
-import com.android.contacts.model.ContactsSource;
-import com.android.contacts.model.Sources;
+import com.android.contacts.model.BaseAccountType;
+import com.android.contacts.model.AccountTypes;
 import com.android.contacts.views.editor.AggregationSuggestionEngine.RawContact;
 import com.android.contacts.views.editor.AggregationSuggestionEngine.Suggestion;
 import com.google.android.collect.Lists;
@@ -125,14 +125,14 @@
             return false;
         }
 
-        Sources sources = Sources.getInstance(getContext());
+        AccountTypes sources = AccountTypes.getInstance(getContext());
         for (RawContact rawContact : mRawContacts) {
             String accountType = rawContact.accountType;
             if (accountType == null) {
                 return true;
             }
-            ContactsSource source = sources.getInflatedSource(
-                    accountType, ContactsSource.LEVEL_SUMMARY);
+            BaseAccountType source = sources.getInflatedSource(
+                    accountType, BaseAccountType.LEVEL_SUMMARY);
             if (!source.readOnly) {
                 return true;
             }
diff --git a/src/com/android/contacts/views/editor/ContactEditorFragment.java b/src/com/android/contacts/views/editor/ContactEditorFragment.java
index 2deab0d..46f7d38 100644
--- a/src/com/android/contacts/views/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/views/editor/ContactEditorFragment.java
@@ -66,6 +66,7 @@
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
 import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Intents.Insert;
 import android.provider.ContactsContract.RawContacts;
 import android.provider.MediaStore;
 import android.text.TextUtils;
@@ -1209,11 +1210,21 @@
 
                 @Override
                 public void onEditAction(Uri contactLookupUri) {
-                    // Abandon the currently inserted contact and load the suggested one
+                    // Save all the data that has been entered so far
+                    ArrayList<ContentValues> values = mState.get(0).getContentValues();
+
+                    // Abandon the currently inserted contact
                     mState = null;
+
+                    // Load the suggested one
                     load(Intent.ACTION_EDIT, contactLookupUri, Contacts.CONTENT_TYPE, null);
                     mStatus = Status.LOADING;
-                    getLoaderManager().restartLoader(LOADER_DATA, null, mDataLoaderListener);
+                    Bundle extras = null;
+                    if (values.size() != 0) {
+                        extras = new Bundle();
+//                        extras.putParcelableArrayList(Insert.DATA, values);
+                    }
+                    getLoaderManager().restartLoader(LOADER_DATA, extras, mDataLoaderListener);
                 }
             });
             suggestionView.bindSuggestion(suggestion);