Refactored to StructuredPostal and RES_PACKAGE.

Matched framework change that refactored StructuredPostal
and RES_PACKAGE, also removal of Groups.PACKAGE_ID.
diff --git a/src/com/android/contacts/ContactEntryAdapter.java b/src/com/android/contacts/ContactEntryAdapter.java
index ae373cf..3b28b19 100644
--- a/src/com/android/contacts/ContactEntryAdapter.java
+++ b/src/com/android/contacts/ContactEntryAdapter.java
@@ -38,7 +38,7 @@
         Aggregates.PHOTO_ID, //2
         Data._ID, //3
         Data.CONTACT_ID, //4
-        Contacts.PACKAGE, //5
+        Data.RES_PACKAGE, //5
         Data.MIMETYPE, //6
         Data.IS_PRIMARY, //7
         Data.IS_SUPER_PRIMARY, //8
diff --git a/src/com/android/contacts/ContactsListActivity.java b/src/com/android/contacts/ContactsListActivity.java
index ed1e39a..ad78f95 100644
--- a/src/com/android/contacts/ContactsListActivity.java
+++ b/src/com/android/contacts/ContactsListActivity.java
@@ -47,7 +47,7 @@
 import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.Photo;
-import android.provider.ContactsContract.CommonDataKinds.Postal;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
 import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.Intents;
 import android.provider.ContactsContract.Intents.UI;
@@ -231,9 +231,9 @@
 
     static final String[] POSTALS_PROJECTION = new String[] {
         Data._ID, //0
-        CommonDataKinds.Postal.TYPE, //1
-        CommonDataKinds.Postal.LABEL, //2
-        CommonDataKinds.Postal.DATA, //3
+        CommonDataKinds.StructuredPostal.TYPE, //1
+        CommonDataKinds.StructuredPostal.LABEL, //2
+        CommonDataKinds.StructuredPostal.DATA, //3
         Aggregates.DISPLAY_NAME, // 4
     };
     static final int POSTAL_ID_COLUMN_INDEX = 0;
@@ -361,7 +361,7 @@
                 mMode = MODE_PICK_AGGREGATE;
             } else if (Phone.CONTENT_TYPE.equals(type)) {
                 mMode = MODE_PICK_PHONE;
-            } else if (Postal.CONTENT_TYPE.equals(type)) {
+            } else if (StructuredPostal.CONTENT_TYPE.equals(type)) {
                 mMode = MODE_PICK_POSTAL;
             }
         } else if (Intent.ACTION_CREATE_SHORTCUT.equals(action)) {
@@ -373,7 +373,7 @@
                 mMode = MODE_PICK_OR_CREATE_AGGREGATE;
             } else if (Phone.CONTENT_ITEM_TYPE.equals(type)) {
                 mMode = MODE_PICK_PHONE;
-            } else if (Postal.CONTENT_ITEM_TYPE.equals(type)) {
+            } else if (StructuredPostal.CONTENT_ITEM_TYPE.equals(type)) {
                 mMode = MODE_PICK_POSTAL;
             }
         } else if (Intent.ACTION_INSERT_OR_EDIT.equals(action)) {
@@ -1098,7 +1098,7 @@
                 break;
 
             case MODE_PICK_POSTAL:
-                mQueryHandler.startQuery(QUERY_TOKEN, null, Postal.CONTENT_URI,
+                mQueryHandler.startQuery(QUERY_TOKEN, null, StructuredPostal.CONTENT_URI,
                         POSTALS_PROJECTION, null, null, getSortOrder(POSTALS_PROJECTION));
                 break;
 
@@ -1325,7 +1325,7 @@
             switch (mMode) {
                 case MODE_PICK_POSTAL:
                     mLocalizedLabels = EditContactActivity.getLabelsForMimetype(mContext,
-                            CommonDataKinds.Postal.CONTENT_ITEM_TYPE);
+                            CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE);
                     mDisplaySectionHeaders = false;
                     break;
                 case MODE_PICK_PHONE:
@@ -1560,7 +1560,7 @@
                     dataColumnIndex = POSTAL_ADDRESS_COLUMN_INDEX;
                     typeColumnIndex = POSTAL_TYPE_COLUMN_INDEX;
                     labelColumnIndex = POSTAL_LABEL_COLUMN_INDEX;
-                    defaultType = Postal.TYPE_HOME;
+                    defaultType = StructuredPostal.TYPE_HOME;
                     break;
                 }
                 default: {
diff --git a/src/com/android/contacts/ContactsUtils.java b/src/com/android/contacts/ContactsUtils.java
index 1db4a1e..5b944cb 100644
--- a/src/com/android/contacts/ContactsUtils.java
+++ b/src/com/android/contacts/ContactsUtils.java
@@ -36,7 +36,7 @@
 import android.provider.ContactsContract.CommonDataKinds.Organization;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.Photo;
-import android.provider.ContactsContract.CommonDataKinds.Postal;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
 import android.provider.Im.ProviderNames;
 import android.database.Cursor;
 import android.text.TextUtils;
@@ -64,9 +64,9 @@
         } else if (Email.CONTENT_ITEM_TYPE.equals(mimeType)) {
             colType = cursor.getColumnIndex(Email.TYPE);
             colLabel = cursor.getColumnIndex(Email.LABEL);
-        } else if (Postal.CONTENT_ITEM_TYPE.equals(mimeType)) {
-            colType = cursor.getColumnIndex(Postal.TYPE);
-            colLabel = cursor.getColumnIndex(Postal.LABEL);
+        } else if (StructuredPostal.CONTENT_ITEM_TYPE.equals(mimeType)) {
+            colType = cursor.getColumnIndex(StructuredPostal.TYPE);
+            colLabel = cursor.getColumnIndex(StructuredPostal.LABEL);
         } else if (Organization.CONTENT_ITEM_TYPE.equals(mimeType)) {
             colType = cursor.getColumnIndex(Organization.TYPE);
             colLabel = cursor.getColumnIndex(Organization.LABEL);
@@ -95,9 +95,9 @@
             defaultType = Email.TYPE_HOME;
             customType = Email.TYPE_CUSTOM;
             arrayResId = com.android.internal.R.array.emailAddressTypes;
-        } else if (Postal.CONTENT_ITEM_TYPE.equals(mimetype)) {
-            defaultType = Postal.TYPE_HOME;
-            customType = Postal.TYPE_CUSTOM;
+        } else if (StructuredPostal.CONTENT_ITEM_TYPE.equals(mimetype)) {
+            defaultType = StructuredPostal.TYPE_HOME;
+            customType = StructuredPostal.TYPE_CUSTOM;
             arrayResId = com.android.internal.R.array.postalAddressTypes;
         } else if (Organization.CONTENT_ITEM_TYPE.equals(mimetype)) {
             defaultType = Organization.TYPE_WORK;
diff --git a/src/com/android/contacts/DisplayGroupsActivity.java b/src/com/android/contacts/DisplayGroupsActivity.java
index c468655..269ed0b 100644
--- a/src/com/android/contacts/DisplayGroupsActivity.java
+++ b/src/com/android/contacts/DisplayGroupsActivity.java
@@ -366,12 +366,12 @@
             mCursor.moveToPosition(-1);
             while (mCursor.moveToNext()) {
                 final int position = mCursor.getPosition();
-                final long packageId = mCursor.getLong(Projections.COL_PACKAGE_ID);
+                final long packageId = mCursor.getLong(Projections.COL_ID);
                 totalContacts += mCursor.getInt(Projections.COL_SUMMARY_COUNT);
                 if (group == null || packageId != group.packageId) {
                     group = new Group();
                     group.packageId = packageId;
-                    group.packageName = mCursor.getString(Projections.COL_PACKAGE);
+                    group.packageName = mCursor.getString(Projections.COL_RES_PACKAGE);
                     group.firstPos = position;
                     group.label = group.packageName;
 
@@ -517,9 +517,9 @@
 
             // Read title, but override with string resource when present
             CharSequence title = mCursor.getString(Projections.COL_TITLE);
-            if (!mCursor.isNull(Projections.COL_TITLE_RESOURCE)) {
-                final String packageName = mCursor.getString(Projections.COL_PACKAGE);
-                final int titleRes = mCursor.getInt(Projections.COL_TITLE_RESOURCE);
+            if (!mCursor.isNull(Projections.COL_RES_TITLE)) {
+                final String packageName = mCursor.getString(Projections.COL_RES_PACKAGE);
+                final int titleRes = mCursor.getInt(Projections.COL_RES_TITLE);
                 try {
                     title = mExternalRes.getText(packageName, titleRes);
                 } catch (NameNotFoundException e) {
@@ -610,25 +610,24 @@
 
         public static final String[] PROJ_SUMMARY = new String[] {
             Groups._ID,
-            Groups.PACKAGE_ID,
-            Groups.PACKAGE,
             Groups.TITLE,
-            Groups.TITLE_RESOURCE,
+            Groups.RES_PACKAGE,
+            Groups.TITLE_RES,
             Groups.GROUP_VISIBLE,
             Groups.SUMMARY_COUNT,
             Groups.SUMMARY_WITH_PHONES,
         };
 
-        public static final String SORT_ORDER = Groups.PACKAGE + " ASC";
+        public static final String SORT_ORDER = Groups.ACCOUNT_TYPE + " ASC, "
+                + Groups.ACCOUNT_NAME + " ASC";
 
         public static final int COL_ID = 0;
-        public static final int COL_PACKAGE_ID = 1;
-        public static final int COL_PACKAGE = 2;
-        public static final int COL_TITLE = 3;
-        public static final int COL_TITLE_RESOURCE = 4;
-        public static final int COL_GROUP_VISIBLE = 5;
-        public static final int COL_SUMMARY_COUNT = 6;
-        public static final int COL_SUMMARY_WITH_PHONES = 7;
+        public static final int COL_TITLE = 1;
+        public static final int COL_RES_PACKAGE = 2;
+        public static final int COL_RES_TITLE = 3;
+        public static final int COL_GROUP_VISIBLE = 4;
+        public static final int COL_SUMMARY_COUNT = 5;
+        public static final int COL_SUMMARY_WITH_PHONES = 6;
 
     }
 
diff --git a/src/com/android/contacts/EditContactActivity.java b/src/com/android/contacts/EditContactActivity.java
index 32b55ef..4a62dd5 100644
--- a/src/com/android/contacts/EditContactActivity.java
+++ b/src/com/android/contacts/EditContactActivity.java
@@ -61,8 +61,8 @@
 import android.provider.ContactsContract.CommonDataKinds.Organization;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.Photo;
-import android.provider.ContactsContract.CommonDataKinds.Postal;
 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
 import android.provider.ContactsContract.Data;
 import android.telephony.PhoneNumberFormattingTextWatcher;
 import android.text.Editable;
@@ -142,7 +142,7 @@
     private static final int DEFAULT_EMAIL_TYPE = Email.TYPE_HOME;
 
     /** The default type for a postal address that is added via an intent */
-    private static final int DEFAULT_POSTAL_TYPE = Postal.TYPE_HOME;
+    private static final int DEFAULT_POSTAL_TYPE = StructuredPostal.TYPE_HOME;
 
     private int mState; // saved across instances
     private boolean mInsert; // saved across instances
@@ -861,7 +861,7 @@
             return resources.getStringArray(android.R.array.phoneTypes);
         } else if (mimetype.equals(Email.CONTENT_ITEM_TYPE)) {
             return resources.getStringArray(android.R.array.emailAddressTypes);
-        } else if (mimetype.equals(Postal.CONTENT_ITEM_TYPE)) {
+        } else if (mimetype.equals(StructuredPostal.CONTENT_ITEM_TYPE)) {
             return resources.getStringArray(android.R.array.postalAddressTypes);
         } else if (mimetype.equals(Im.CONTENT_ITEM_TYPE)) {
             return resources.getStringArray(android.R.array.imProtocols);
@@ -1277,7 +1277,7 @@
                 mNoteEntries.add(entry);
             } else if (mimetype.equals(CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
                     || mimetype.equals(CommonDataKinds.Email.CONTENT_ITEM_TYPE)
-                    || mimetype.equals(CommonDataKinds.Postal.CONTENT_ITEM_TYPE)
+                    || mimetype.equals(CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
                     || mimetype.equals(CommonDataKinds.Im.CONTENT_ITEM_TYPE)) {
                 int type = aggCursor.getInt(DATA_1_COLUMN);
                 String data = aggCursor.getString(DATA_2_COLUMN);
@@ -1301,7 +1301,7 @@
                     if (isSuperPrimary) {
                         mPrimaryEmailAdded = true;
                     }
-                } else if (mimetype.equals(CommonDataKinds.Postal.CONTENT_ITEM_TYPE)) {
+                } else if (mimetype.equals(CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)) {
                     entry = EditEntry.newPostalEntry(this, label, type, data, uri, id);
                     entry.isPrimary = isSuperPrimary;
                     mPostalEntries.add(entry);
@@ -1930,7 +1930,7 @@
             v.setText(ContactsUtils.getDisplayLabel(context, mimetype, type, label));
             if (mimetype.equals(Im.CONTENT_ITEM_TYPE) && type >= 0) {
                 v.setText(getLabelsForMimetype(activity, mimetype)[type]);
-            } else if (mimetype.equals(Postal.CONTENT_ITEM_TYPE)) {
+            } else if (mimetype.equals(StructuredPostal.CONTENT_ITEM_TYPE)) {
                 v.setMaxLines(3);
             }
             v.setOnClickListener(activity);
@@ -1991,12 +1991,12 @@
                     values.put(CommonDataKinds.Im.PROTOCOL,
                             ContactsUtils.encodeCustomImProtocol(label.toString()));
                 }
-            } else if (mimetype.equals(CommonDataKinds.Postal.CONTENT_ITEM_TYPE)) {
-                if (type != Postal.TYPE_CUSTOM) {
+            } else if (mimetype.equals(CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)) {
+                if (type != StructuredPostal.TYPE_CUSTOM) {
                     labelString = null;
                 }
-                values.put(Postal.LABEL, labelString);
-                values.put(Postal.TYPE, type);
+                values.put(StructuredPostal.LABEL, labelString);
+                values.put(StructuredPostal.TYPE, type);
             } else if (mimetype.equals(CommonDataKinds.Organization.CONTENT_ITEM_TYPE)) {
                 if (type != Organization.TYPE_CUSTOM) {
                     labelString = null;
@@ -2181,8 +2181,8 @@
                 String label, int type, String data, Uri uri, long id) {
             EditEntry entry = new EditEntry(activity, label, type, data, uri, id);
             entry.hint = activity.getString(R.string.ghostData_postal);
-            entry.column = Postal.DATA;
-            entry.mimetype = Postal.CONTENT_ITEM_TYPE;
+            entry.column = StructuredPostal.DATA;
+            entry.mimetype = StructuredPostal.CONTENT_ITEM_TYPE;
             entry.contentType = EditorInfo.TYPE_CLASS_TEXT
                     | EditorInfo.TYPE_TEXT_VARIATION_POSTAL_ADDRESS
                     | EditorInfo.TYPE_TEXT_FLAG_CAP_WORDS
diff --git a/src/com/android/contacts/FastTrackWindow.java b/src/com/android/contacts/FastTrackWindow.java
index f61b73e..0413110 100644
--- a/src/com/android/contacts/FastTrackWindow.java
+++ b/src/com/android/contacts/FastTrackWindow.java
@@ -576,7 +576,7 @@
      */
     private void handleData(Cursor cursor) {
         final int colId = cursor.getColumnIndex(Data._ID);
-        final int colPackage = cursor.getColumnIndex(Contacts.PACKAGE);
+        final int colPackage = cursor.getColumnIndex(Data.RES_PACKAGE);
         final int colMimeType = cursor.getColumnIndex(Data.MIMETYPE);
         final int colPhoto = cursor.getColumnIndex(Photo.PHOTO);
 
diff --git a/src/com/android/contacts/SocialStreamActivity.java b/src/com/android/contacts/SocialStreamActivity.java
index 24587fa..679424d 100644
--- a/src/com/android/contacts/SocialStreamActivity.java
+++ b/src/com/android/contacts/SocialStreamActivity.java
@@ -76,7 +76,7 @@
 
     private static final String[] PROJ_ACTIVITIES = new String[] {
         Activities._ID,
-        Activities.PACKAGE,
+        Activities.RES_PACKAGE,
         Activities.MIMETYPE,
         Activities.AUTHOR_CONTACT_ID,
         Contacts.AGGREGATE_ID,
diff --git a/src/com/android/contacts/SplitAggregateView.java b/src/com/android/contacts/SplitAggregateView.java
index fde2b86..ef6b4f4 100644
--- a/src/com/android/contacts/SplitAggregateView.java
+++ b/src/com/android/contacts/SplitAggregateView.java
@@ -50,12 +50,12 @@
 public class SplitAggregateView extends ListView {
 
     private static final String[] AGGREGATE_DATA_PROJECTION = new String[] {
-            Data.MIMETYPE, Contacts.PACKAGE, Data.CONTACT_ID, Data.DATA1, Data.DATA2,
+            Data.MIMETYPE, Data.RES_PACKAGE, Data.CONTACT_ID, Data.DATA1, Data.DATA2,
             Data.IS_PRIMARY, StructuredName.DISPLAY_NAME
     };
 
     private static final int COL_MIMETYPE = 0;
-    private static final int COL_PACKAGE = 1;
+    private static final int COL_RES_PACKAGE = 1;
     private static final int COL_CONTACT_ID = 2;
     private static final int COL_DATA1 = 3;
     private static final int COL_DATA2 = 4;
@@ -104,7 +104,7 @@
      */
     private static class ContactInfo implements Comparable<ContactInfo> {
         final long contactId;
-        String packageName;
+        String resPackage;
         String name;
         String phone;
         String email;
@@ -131,7 +131,7 @@
         }
 
         public int compareTo(ContactInfo another) {
-            return packageName.compareTo(another.packageName);
+            return resPackage.compareTo(another.resPackage);
         }
     }
 
@@ -151,7 +151,7 @@
                 if (info == null) {
                     info = new ContactInfo(contactId);
                     contactInfos.put(contactId, info);
-                    info.packageName = cursor.getString(COL_PACKAGE);
+                    info.resPackage = cursor.getString(COL_RES_PACKAGE);
                 }
 
                 String mimetype = cursor.getString(COL_MIMETYPE);
@@ -253,7 +253,7 @@
             cache.name.setText(info.name);
             cache.additionalData.setText(info.getAdditionalData());
 
-            Bitmap sourceBitmap = getSourceIcon(info.packageName);
+            Bitmap sourceBitmap = getSourceIcon(info.resPackage);
             if (sourceBitmap != null) {
                 cache.sourceIcon.setImageBitmap(sourceBitmap);
             } else {
diff --git a/src/com/android/contacts/TypePrecedence.java b/src/com/android/contacts/TypePrecedence.java
index 4518102..d348fef 100644
--- a/src/com/android/contacts/TypePrecedence.java
+++ b/src/com/android/contacts/TypePrecedence.java
@@ -20,7 +20,7 @@
 import android.provider.ContactsContract.CommonDataKinds.Im;
 import android.provider.ContactsContract.CommonDataKinds.Organization;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.CommonDataKinds.Postal;
+import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
 
 /**
  * This class contains utility functions for determining the precedence of different types
@@ -49,10 +49,10 @@
             Email.TYPE_OTHER};
 
     private static final int[] TYPE_PRECEDENCE_POSTAL = {
-            Postal.TYPE_CUSTOM,
-            Postal.TYPE_HOME,
-            Postal.TYPE_WORK,
-            Postal.TYPE_OTHER};
+            StructuredPostal.TYPE_CUSTOM,
+            StructuredPostal.TYPE_HOME,
+            StructuredPostal.TYPE_WORK,
+            StructuredPostal.TYPE_OTHER};
 
     private static final int[] TYPE_PRECEDENCE_IM = {
             Im.TYPE_CUSTOM,
@@ -93,7 +93,7 @@
             return TYPE_PRECEDENCE_PHONES;
         } else if (mimetype.equals(Email.CONTENT_ITEM_TYPE)) {
             return TYPE_PRECEDENCE_EMAIL;
-        } else if (mimetype.equals(Postal.CONTENT_ITEM_TYPE)) {
+        } else if (mimetype.equals(StructuredPostal.CONTENT_ITEM_TYPE)) {
             return TYPE_PRECEDENCE_POSTAL;
         } else if (mimetype.equals(Im.CONTENT_ITEM_TYPE)) {
             return TYPE_PRECEDENCE_IM;
diff --git a/src/com/android/contacts/ViewContactActivity.java b/src/com/android/contacts/ViewContactActivity.java
index 46cd26b..35710b5 100644
--- a/src/com/android/contacts/ViewContactActivity.java
+++ b/src/com/android/contacts/ViewContactActivity.java
@@ -390,7 +390,7 @@
             if (entry.primaryIcon == -1) {
                 menu.add(0, MENU_ITEM_MAKE_DEFAULT, 0, R.string.menu_makeDefaultEmail);
             }
-        } else if (entry.mimetype.equals(CommonDataKinds.Postal.CONTENT_ITEM_TYPE)) {
+        } else if (entry.mimetype.equals(CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)) {
             menu.add(0, 0, 0, R.string.menu_viewAddress).setIntent(entry.intent);
         }
         // TODO(emillar): add back with group support.
@@ -722,7 +722,7 @@
 
                 if (mimetype.equals(CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
                         || mimetype.equals(CommonDataKinds.Email.CONTENT_ITEM_TYPE)
-                        || mimetype.equals(CommonDataKinds.Postal.CONTENT_ITEM_TYPE)
+                        || mimetype.equals(CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)
                         || mimetype.equals(CommonDataKinds.Im.CONTENT_ITEM_TYPE)) {
                     final int type = aggCursor.getInt(DATA_1_COLUMN);
                     final String label = aggCursor.getString(DATA_3_COLUMN);
@@ -783,7 +783,7 @@
                         }
                         mEmailEntries.add(entry);
                     // Build postal entries
-                    } else if (mimetype.equals(CommonDataKinds.Postal.CONTENT_ITEM_TYPE)) {
+                    } else if (mimetype.equals(CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)) {
                         entry.label = buildActionString(R.string.actionMap,
                                 ContactsUtils.getDisplayLabel(this, mimetype, type, label), true);
                         entry.data = data;