diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 6a478ce..1dc0235 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -316,7 +316,7 @@
             android:theme="@style/CustomContactListFilterTheme" />
 
         <activity
-            android:name=".ui.ShowOrCreateActivity"
+            android:name=".activities.ShowOrCreateActivity"
             android:theme="@style/FullyTranslucent">
 
             <intent-filter>
@@ -330,7 +330,7 @@
         <!-- Used to show QuickContact window over a translucent activity, which is a
              temporary hack until we add better framework support. -->
         <activity
-            android:name=".ui.QuickContactActivity"
+            android:name=".quickcontact.QuickContactActivity"
             android:theme="@style/FullyTranslucent.QuickContact"
             android:launchMode="singleTop"
             android:excludeFromRecents="true"
diff --git a/res/layout-xlarge/aggregation_suggestions_item.xml b/res/layout-xlarge/aggregation_suggestions_item.xml
index 517c7e4..abda55e 100644
--- a/res/layout-xlarge/aggregation_suggestions_item.xml
+++ b/res/layout-xlarge/aggregation_suggestions_item.xml
@@ -18,7 +18,7 @@
 -->
 
 <view xmlns:android="http://schemas.android.com/apk/res/android"
-    class="com.android.contacts.ui.widget.AggregationSuggestionView"
+    class="com.android.contacts.quickcontact.widget.AggregationSuggestionView"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="horizontal"
diff --git a/res/layout-xlarge/item_contact_editor.xml b/res/layout-xlarge/item_contact_editor.xml
index a8386f3..f44e4c3 100644
--- a/res/layout-xlarge/item_contact_editor.xml
+++ b/res/layout-xlarge/item_contact_editor.xml
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 
-<com.android.contacts.views.editor.ContactEditorView
+<com.android.contacts.views.editor.RawContactEditorView
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:ex="http://schemas.android.com/apk/res/com.android.contacts"
     android:layout_width="match_parent"
@@ -122,7 +122,7 @@
                 ex:layout_narrowRightMargin="50dip"
                 >
 
-                <com.android.contacts.views.editor.GenericEditorView
+                <com.android.contacts.views.editor.FieldEditorView
                     android:id="@+id/edit_name"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -163,4 +163,4 @@
             android:layout_marginTop="10dip"
         />
     </LinearLayout>
-</com.android.contacts.views.editor.ContactEditorView>
+</com.android.contacts.views.editor.RawContactEditorView>
diff --git a/res/layout/aggregation_suggestions_item.xml b/res/layout/aggregation_suggestions_item.xml
index 06d153e..bda9e1d 100644
--- a/res/layout/aggregation_suggestions_item.xml
+++ b/res/layout/aggregation_suggestions_item.xml
@@ -18,7 +18,7 @@
 -->
 
 <view xmlns:android="http://schemas.android.com/apk/res/android"
-    class="com.android.contacts.ui.widget.AggregationSuggestionView"
+    class="com.android.contacts.quickcontact.widget.AggregationSuggestionView"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="horizontal"
diff --git a/res/layout/item_contact_editor.xml b/res/layout/item_contact_editor.xml
index 51a38a0..4d9e26b 100644
--- a/res/layout/item_contact_editor.xml
+++ b/res/layout/item_contact_editor.xml
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 
-<com.android.contacts.views.editor.ContactEditorView
+<com.android.contacts.views.editor.RawContactEditorView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -96,7 +96,7 @@
 
         </FrameLayout>
 
-        <com.android.contacts.views.editor.GenericEditorView
+        <com.android.contacts.views.editor.FieldEditorView
             android:id="@+id/edit_name"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -135,4 +135,4 @@
             android:layout_marginTop="10dip"
         />
     </LinearLayout>
-</com.android.contacts.views.editor.ContactEditorView>
+</com.android.contacts.views.editor.RawContactEditorView>
diff --git a/res/layout/item_read_only_contact_editor.xml b/res/layout/item_read_only_contact_editor.xml
index b7895a5..eb8ec7f 100644
--- a/res/layout/item_read_only_contact_editor.xml
+++ b/res/layout/item_read_only_contact_editor.xml
@@ -15,7 +15,7 @@
 -->
 
 <!-- placed inside act_edit as tabcontent -->
-<com.android.contacts.views.editor.ReadOnlyContactEditorView
+<com.android.contacts.views.editor.ReadOnlyRawContactEditorView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -150,4 +150,4 @@
         />
     </LinearLayout>
 
-</com.android.contacts.views.editor.ReadOnlyContactEditorView>
+</com.android.contacts.views.editor.ReadOnlyRawContactEditorView>
diff --git a/res/layout/quickcontact.xml b/res/layout/quickcontact.xml
index 340ca3f..34bbc9a 100644
--- a/res/layout/quickcontact.xml
+++ b/res/layout/quickcontact.xml
@@ -16,7 +16,7 @@
 
 <view
     xmlns:android="http://schemas.android.com/apk/res/android"
-    class="com.android.contacts.ui.QuickContactWindow$RootLayout"
+    class="com.android.contacts.quickcontact.QuickContactWindow$RootLayout"
     android:id="@+id/root"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
diff --git a/res/layout/quickcontact_item.xml b/res/layout/quickcontact_item.xml
index f9e4736..ca57d66 100644
--- a/res/layout/quickcontact_item.xml
+++ b/res/layout/quickcontact_item.xml
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 
-<com.android.contacts.ui.CheckableImageView
+<com.android.contacts.quickcontact.CheckableImageView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="59dip"
     android:layout_height="51dip"
diff --git a/src/com/android/contacts/ui/ShowOrCreateActivity.java b/src/com/android/contacts/activities/ShowOrCreateActivity.java
similarity index 98%
rename from src/com/android/contacts/ui/ShowOrCreateActivity.java
rename to src/com/android/contacts/activities/ShowOrCreateActivity.java
index 23919f0..5eb7106 100755
--- a/src/com/android/contacts/ui/ShowOrCreateActivity.java
+++ b/src/com/android/contacts/activities/ShowOrCreateActivity.java
@@ -14,11 +14,10 @@
  * limitations under the License.
  */
 
-package com.android.contacts.ui;
+package com.android.contacts.activities;
 
 import com.android.contacts.ContactsSearchManager;
 import com.android.contacts.R;
-import com.android.contacts.activities.ContactBrowserActivity;
 import com.android.contacts.util.Constants;
 import com.android.contacts.util.NotifyingAsyncQueryHandler;
 
diff --git a/src/com/android/contacts/ui/CheckableImageView.java b/src/com/android/contacts/quickcontact/CheckableImageView.java
similarity index 97%
rename from src/com/android/contacts/ui/CheckableImageView.java
rename to src/com/android/contacts/quickcontact/CheckableImageView.java
index 1f94e20..d1b75cb 100644
--- a/src/com/android/contacts/ui/CheckableImageView.java
+++ b/src/com/android/contacts/quickcontact/CheckableImageView.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.contacts.ui;
+package com.android.contacts.quickcontact;
 
 import android.content.Context;
 import android.util.AttributeSet;
diff --git a/src/com/android/contacts/ui/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
similarity index 98%
rename from src/com/android/contacts/ui/QuickContactActivity.java
rename to src/com/android/contacts/quickcontact/QuickContactActivity.java
index 7f6e39b..97df680 100644
--- a/src/com/android/contacts/ui/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.contacts.ui;
+package com.android.contacts.quickcontact;
 
 import android.app.Activity;
 import android.content.ContentUris;
diff --git a/src/com/android/contacts/ui/QuickContactWindow.java b/src/com/android/contacts/quickcontact/QuickContactWindow.java
similarity index 99%
rename from src/com/android/contacts/ui/QuickContactWindow.java
rename to src/com/android/contacts/quickcontact/QuickContactWindow.java
index 7bd3c39..b615f60 100644
--- a/src/com/android/contacts/ui/QuickContactWindow.java
+++ b/src/com/android/contacts/quickcontact/QuickContactWindow.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.contacts.ui;
+package com.android.contacts.quickcontact;
 
 import com.android.contacts.Collapser;
 import com.android.contacts.ContactPresenceIconUtil;
diff --git a/src/com/android/contacts/views/editor/BaseContactEditorView.java b/src/com/android/contacts/views/editor/BaseRawContactEditorView.java
similarity index 94%
rename from src/com/android/contacts/views/editor/BaseContactEditorView.java
rename to src/com/android/contacts/views/editor/BaseRawContactEditorView.java
index f459708..d3d034d 100644
--- a/src/com/android/contacts/views/editor/BaseContactEditorView.java
+++ b/src/com/android/contacts/views/editor/BaseRawContactEditorView.java
@@ -44,17 +44,17 @@
  * adding {@link Data} rows or changing {@link EditType}, are performed through
  * {@link EntityModifier} to ensure that {@link ContactsSource} are enforced.
  */
-public abstract class BaseContactEditorView extends LinearLayout {
+public abstract class BaseRawContactEditorView extends LinearLayout {
     protected LayoutInflater mInflater;
 
     protected PhotoEditorView mPhoto;
     protected boolean mHasPhotoEditor = false;
 
-    public BaseContactEditorView(Context context) {
+    public BaseRawContactEditorView(Context context) {
         super(context);
     }
 
-    public BaseContactEditorView(Context context, AttributeSet attrs) {
+    public BaseRawContactEditorView(Context context, AttributeSet attrs) {
         super(context, attrs);
     }
 
diff --git a/src/com/android/contacts/views/editor/ContactEditorFragment.java b/src/com/android/contacts/views/editor/ContactEditorFragment.java
index 6674f64..87744ca 100644
--- a/src/com/android/contacts/views/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/views/editor/ContactEditorFragment.java
@@ -437,12 +437,12 @@
                     ContactsSource.LEVEL_CONSTRAINTS);
             final long rawContactId = values.getAsLong(RawContacts._ID);
 
-            final BaseContactEditorView editor;
+            final BaseRawContactEditorView editor;
             if (!source.readOnly) {
-                editor = (BaseContactEditorView) inflater.inflate(R.layout.item_contact_editor,
+                editor = (BaseRawContactEditorView) inflater.inflate(R.layout.item_contact_editor,
                         mContent, false);
             } else {
-                editor = (BaseContactEditorView) inflater.inflate(
+                editor = (BaseRawContactEditorView) inflater.inflate(
                         R.layout.item_read_only_contact_editor, mContent, false);
             }
             final PhotoEditorView photoEditor = editor.getPhotoEditor();
@@ -475,9 +475,9 @@
             mContent.addView(editor);
             editor.setState(entity, source, mViewIdGenerator);
 
-            if (editor instanceof ContactEditorView) {
-                final ContactEditorView rawContactEditor = (ContactEditorView) editor;
-                final GenericEditorView nameEditor = rawContactEditor.getNameEditor();
+            if (editor instanceof RawContactEditorView) {
+                final RawContactEditorView rawContactEditor = (RawContactEditorView) editor;
+                final FieldEditorView nameEditor = rawContactEditor.getNameEditor();
                 nameEditor.setEditorListener(new EditorListener() {
 
                     @Override
@@ -514,7 +514,7 @@
 
         int editorCount = mContent.getChildCount();
         for (int i = 0; i < editorCount; i++) {
-            BaseContactEditorView editor = (BaseContactEditorView) mContent.getChildAt(i);
+            BaseRawContactEditorView editor = (BaseRawContactEditorView) mContent.getChildAt(i);
             editor.setGroupMetaData(mGroupMetaData);
         }
     }
@@ -1026,8 +1026,8 @@
     }
 
 
-    private void onContactNameChange(int request, final ContactEditorView rawContactEditor,
-            GenericEditorView nameEditor) {
+    private void onContactNameChange(int request, final RawContactEditorView rawContactEditor,
+            FieldEditorView nameEditor) {
 
         switch (request) {
             case EditorListener.EDITOR_FORM_CHANGED:
@@ -1053,7 +1053,7 @@
         }
     }
 
-    private void switchFromFullNameToStructuredName(GenericEditorView nameEditor) {
+    private void switchFromFullNameToStructuredName(FieldEditorView nameEditor) {
         ValuesDelta values = nameEditor.getValues();
 
         String displayName = values.getAsString(StructuredName.DISPLAY_NAME);
@@ -1085,7 +1085,7 @@
         }
     }
 
-    private void switchFromStructuredNameToFullName(GenericEditorView nameEditor) {
+    private void switchFromStructuredNameToFullName(FieldEditorView nameEditor) {
         ValuesDelta values = nameEditor.getValues();
 
         Uri.Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath(
@@ -1132,7 +1132,7 @@
     /**
      * Triggers an asynchronous search for aggregation suggestions.
      */
-    public void acquireAggregationSuggestions(ContactEditorView rawContactEditor) {
+    public void acquireAggregationSuggestions(RawContactEditorView rawContactEditor) {
         long rawContactId = rawContactEditor.getRawContactId();
         if (mAggregationSuggestionsRawContactId != rawContactId
                 && mAggregationSuggestionView != null) {
@@ -1150,7 +1150,7 @@
             mAggregationSuggestionEngine.start();
         }
 
-        GenericEditorView nameEditor = rawContactEditor.getNameEditor();
+        FieldEditorView nameEditor = rawContactEditor.getNameEditor();
         mAggregationSuggestionEngine.onNameChange(nameEditor.getValues());
     }
 
@@ -1448,7 +1448,7 @@
      * Sets the photo stored in mPhoto and writes it to the RawContact with the given id
      */
     private void setPhoto(long rawContact, Bitmap photo) {
-        BaseContactEditorView requestingEditor = getContactEditorView(rawContact);
+        BaseRawContactEditorView requestingEditor = getContactEditorView(rawContact);
         if (requestingEditor != null) {
             requestingEditor.setPhotoBitmap(photo);
         } else {
@@ -1459,11 +1459,11 @@
     /**
      * Finds raw contact editor view for the given rawContactId.
      */
-    public BaseContactEditorView getContactEditorView(long rawContactId) {
+    public BaseRawContactEditorView getContactEditorView(long rawContactId) {
         for (int i = 0; i < mContent.getChildCount(); i++) {
             final View childView = mContent.getChildAt(i);
-            if (childView instanceof BaseContactEditorView) {
-                final BaseContactEditorView editor = (BaseContactEditorView) childView;
+            if (childView instanceof BaseRawContactEditorView) {
+                final BaseRawContactEditorView editor = (BaseRawContactEditorView) childView;
                 if (editor.getRawContactId() == rawContactId) {
                     return editor;
                 }
@@ -1595,8 +1595,8 @@
         int count = mContent.getChildCount();
         for (int i = 0; i < count; i++) {
             final View childView = mContent.getChildAt(i);
-            if (childView instanceof BaseContactEditorView) {
-                final BaseContactEditorView editor = (BaseContactEditorView) childView;
+            if (childView instanceof BaseRawContactEditorView) {
+                final BaseRawContactEditorView editor = (BaseRawContactEditorView) childView;
                 final PhotoEditorView photoEditor = editor.getPhotoEditor();
                 photoEditor.setSuperPrimary(editor.getRawContactId() == rawContactId);
             }
@@ -1612,9 +1612,9 @@
         final int editorCount = mContent.getChildCount();
         for (int i = 0; i < editorCount; i++) {
             final View child = mContent.getChildAt(i);
-            if (child instanceof BaseContactEditorView) {
-                final BaseContactEditorView editor =
-                    (BaseContactEditorView) child;
+            if (child instanceof BaseRawContactEditorView) {
+                final BaseRawContactEditorView editor =
+                    (BaseRawContactEditorView) child;
                 if (editor.getRawContactId() == rawContactId) {
                     editor.setPhotoBitmap(null);
                     break;
diff --git a/src/com/android/contacts/views/editor/GenericEditorView.java b/src/com/android/contacts/views/editor/FieldEditorView.java
similarity index 97%
rename from src/com/android/contacts/views/editor/GenericEditorView.java
rename to src/com/android/contacts/views/editor/FieldEditorView.java
index 94868cb..3212ab9 100644
--- a/src/com/android/contacts/views/editor/GenericEditorView.java
+++ b/src/com/android/contacts/views/editor/FieldEditorView.java
@@ -42,20 +42,16 @@
 import android.text.TextWatcher;
 import android.util.AttributeSet;
 import android.view.Gravity;
-import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.inputmethod.EditorInfo;
-import android.widget.ArrayAdapter;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.ImageButton;
 import android.widget.LinearLayout;
-import android.widget.ListAdapter;
 import android.widget.PopupMenu;
-import android.widget.TextView;
 
 import java.util.List;
 
@@ -64,7 +60,7 @@
  * the entry. Uses {@link ValuesDelta} to read any existing
  * {@link Entity} values, and to correctly write any changes values.
  */
-public class GenericEditorView extends ViewGroup implements Editor, DialogShowingView {
+public class FieldEditorView extends ViewGroup implements Editor, DialogShowingView {
     private static final String DIALOG_ID_KEY = "dialog_id";
     private static final int DIALOG_ID_CUSTOM = 1;
 
@@ -94,15 +90,15 @@
 
 
 
-    public GenericEditorView(Context context) {
+    public FieldEditorView(Context context) {
         super(context);
     }
 
-    public GenericEditorView(Context context, AttributeSet attrs) {
+    public FieldEditorView(Context context, AttributeSet attrs) {
         super(context, attrs);
     }
 
-    public GenericEditorView(Context context, AttributeSet attrs, int defStyle) {
+    public FieldEditorView(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
     }
 
@@ -243,11 +239,11 @@
                     // Keep around in model, but mark as deleted
                     mEntry.markDeleted();
 
-                    ((ViewGroup) getParent()).removeView(GenericEditorView.this);
+                    ((ViewGroup) getParent()).removeView(FieldEditorView.this);
 
                     if (mListener != null) {
                         // Notify listener when present
-                        mListener.onDeleted(GenericEditorView.this);
+                        mListener.onDeleted(FieldEditorView.this);
                     }
                 }
             });
@@ -287,7 +283,7 @@
                         View newFocusView = findViewById(focusedViewId);
                         if (newFocusView == null || newFocusView.getVisibility() == GONE) {
                             // find first visible child
-                            newFocusView = GenericEditorView.this;
+                            newFocusView = FieldEditorView.this;
                         }
                         if (newFocusView != null) {
                             newFocusView.requestFocus();
diff --git a/src/com/android/contacts/views/editor/KindSectionView.java b/src/com/android/contacts/views/editor/KindSectionView.java
index 044e6b2..5e65b0f 100644
--- a/src/com/android/contacts/views/editor/KindSectionView.java
+++ b/src/com/android/contacts/views/editor/KindSectionView.java
@@ -27,11 +27,8 @@
 import android.provider.ContactsContract.Data;
 import android.text.TextUtils;
 import android.util.AttributeSet;
-import android.util.DisplayMetrics;
-import android.util.TypedValue;
 import android.view.View;
 import android.view.ViewGroup;
-import android.view.WindowManager;
 import android.widget.ImageButton;
 import android.widget.LinearLayout;
 import android.widget.TextView;
@@ -144,7 +141,7 @@
     private View createEditorView(ValuesDelta entry) {
         final View view;
         if (mKind.editorClass == null) {
-            view = new GenericEditorView(mContext);
+            view = new FieldEditorView(mContext);
         } else {
             try {
                 view = mKind.editorClass.getConstructor(Context.class).newInstance(
diff --git a/src/com/android/contacts/views/editor/ContactEditorView.java b/src/com/android/contacts/views/editor/RawContactEditorView.java
similarity index 96%
rename from src/com/android/contacts/views/editor/ContactEditorView.java
rename to src/com/android/contacts/views/editor/RawContactEditorView.java
index 4eec842..cb25eed 100644
--- a/src/com/android/contacts/views/editor/ContactEditorView.java
+++ b/src/com/android/contacts/views/editor/RawContactEditorView.java
@@ -58,9 +58,9 @@
  * adding {@link Data} rows or changing {@link EditType}, are performed through
  * {@link EntityModifier} to ensure that {@link ContactsSource} are enforced.
  */
-public class ContactEditorView extends BaseContactEditorView {
+public class RawContactEditorView extends BaseRawContactEditorView {
     private View mPhotoStub;
-    private GenericEditorView mName;
+    private FieldEditorView mName;
     private GroupMembershipView mGroupMembershipView;
 
     private ViewGroup mFields;
@@ -76,11 +76,11 @@
 
     private long mRawContactId = -1;
 
-    public ContactEditorView(Context context) {
+    public RawContactEditorView(Context context) {
         super(context);
     }
 
-    public ContactEditorView(Context context, AttributeSet attrs) {
+    public RawContactEditorView(Context context, AttributeSet attrs) {
         super(context, attrs);
     }
 
@@ -96,7 +96,7 @@
 
         final int photoSize = getResources().getDimensionPixelSize(R.dimen.edit_photo_size);
 
-        mName = (GenericEditorView)findViewById(R.id.edit_name);
+        mName = (FieldEditorView)findViewById(R.id.edit_name);
         mName.setMinimumHeight(photoSize);
         mName.setDeletable(false);
 
@@ -216,7 +216,7 @@
         }
     }
 
-    public GenericEditorView getNameEditor() {
+    public FieldEditorView getNameEditor() {
         return mName;
     }
 
diff --git a/src/com/android/contacts/views/editor/ReadOnlyContactEditorView.java b/src/com/android/contacts/views/editor/ReadOnlyRawContactEditorView.java
similarity index 94%
rename from src/com/android/contacts/views/editor/ReadOnlyContactEditorView.java
rename to src/com/android/contacts/views/editor/ReadOnlyRawContactEditorView.java
index 5a0e896..933b281 100644
--- a/src/com/android/contacts/views/editor/ReadOnlyContactEditorView.java
+++ b/src/com/android/contacts/views/editor/ReadOnlyRawContactEditorView.java
@@ -19,22 +19,17 @@
 import com.android.contacts.ContactsUtils;
 import com.android.contacts.R;
 import com.android.contacts.model.ContactsSource;
-import com.android.contacts.model.EntityDelta;
-import com.android.contacts.model.EntityModifier;
 import com.android.contacts.model.ContactsSource.DataKind;
-import com.android.contacts.model.ContactsSource.EditType;
+import com.android.contacts.model.EntityDelta;
 import com.android.contacts.model.EntityDelta.ValuesDelta;
-import com.android.contacts.views.editor.Editor.EditorListener;
+import com.android.contacts.model.EntityModifier;
 
 import android.content.Context;
-import android.content.Entity;
-import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.Data;
-import android.provider.ContactsContract.RawContacts;
 import android.provider.ContactsContract.CommonDataKinds.Email;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.Photo;
 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.RawContacts;
 import android.telephony.PhoneNumberUtils;
 import android.text.TextUtils;
 import android.util.AttributeSet;
@@ -49,7 +44,7 @@
 /**
  * Custom view that displays read-only contacts in the edit screen.
  */
-class ReadOnlyContactEditorView extends BaseContactEditorView {
+class ReadOnlyRawContactEditorView extends BaseRawContactEditorView {
 
     private View mPhotoStub;
     private TextView mName;
@@ -64,11 +59,11 @@
 
     private long mRawContactId = -1;
 
-    public ReadOnlyContactEditorView(Context context) {
+    public ReadOnlyRawContactEditorView(Context context) {
         super(context);
     }
 
-    public ReadOnlyContactEditorView(Context context, AttributeSet attrs) {
+    public ReadOnlyRawContactEditorView(Context context, AttributeSet attrs) {
         super(context, attrs);
     }
 
diff --git a/src/com/android/contacts/views/editor/SelectAccountDialogFragment.java b/src/com/android/contacts/views/editor/SelectAccountDialogFragment.java
index 77552bc..1089602 100644
--- a/src/com/android/contacts/views/editor/SelectAccountDialogFragment.java
+++ b/src/com/android/contacts/views/editor/SelectAccountDialogFragment.java
@@ -25,11 +25,8 @@
 import android.app.Dialog;
 import android.app.DialogFragment;
 import android.app.Fragment;
-import android.content.Context;
 import android.content.DialogInterface;
-import android.graphics.Color;
 import android.os.Bundle;
-import android.view.ContextThemeWrapper;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
diff --git a/src/com/android/contacts/views/editor/ViewIdGenerator.java b/src/com/android/contacts/views/editor/ViewIdGenerator.java
index ded46fc..8622ded 100644
--- a/src/com/android/contacts/views/editor/ViewIdGenerator.java
+++ b/src/com/android/contacts/views/editor/ViewIdGenerator.java
@@ -26,7 +26,7 @@
 
 /**
  * A class that provides unique view ids for {@link ContentEditorView}, {@link KindSectionView},
- * {@link GenericEditorView} and {@link EditView} on {@link EditContactActivity}.
+ * {@link FieldEditorView} and {@link EditView} on {@link EditContactActivity}.
  * It is used to assign a unique but consistent id to each view across {@link EditContactActivity}'s
  * lifecycle, so that we can re-construct view state (e.g. focused view) when the screen rotates.
  *
