Fix http://b/issue?id=2086484 and http://b/issue?id=2087539

Change-Id: I392e52ac821a2eabd40c26024dbc587e6e63236f
diff --git a/src/com/android/contacts/ContactsUtils.java b/src/com/android/contacts/ContactsUtils.java
index 7611026..76f885e 100644
--- a/src/com/android/contacts/ContactsUtils.java
+++ b/src/com/android/contacts/ContactsUtils.java
@@ -21,6 +21,8 @@
 import com.android.contacts.ui.FastTrackWindow;
 
 import java.io.ByteArrayInputStream;
+
+import android.provider.Contacts.People.Phones;
 import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.RawContacts;
 
@@ -36,15 +38,13 @@
 import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
-import android.graphics.drawable.Drawable;
-import android.provider.Contacts;
-import android.provider.Contacts.Photos;
 import android.provider.ContactsContract.CommonDataKinds.Email;
 import android.provider.ContactsContract.CommonDataKinds.Im;
 import android.provider.ContactsContract.CommonDataKinds.Organization;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.Photo;
 import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
+import android.provider.ContactsContract.Contacts;
 import android.provider.Im.ProviderNames;
 import android.database.Cursor;
 import android.text.TextUtils;
@@ -260,6 +260,49 @@
         return contactId;
     }
 
+    public static String querySuperPrimaryPhone(ContentResolver cr, long contactId) {
+        Cursor c = null;
+        String phone = null;
+        try {
+            Uri baseUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
+            Uri dataUri = Uri.withAppendedPath(baseUri, "data");
+
+            c = cr.query(dataUri,
+                    new String[] {Phone.NUMBER},
+                    Data.MIMETYPE + "=" + Phone.MIMETYPE +
+                        " AND " + Data.IS_SUPER_PRIMARY + "=1",
+                    null, null);
+            if (c != null && c.moveToFirst()) {
+                // Just return the first one.
+                phone = c.getString(0);
+            }
+        } finally {
+            if (c != null) {
+                c.close();
+            }
+        }
+        return phone;
+    }
+
+    public static long queryForRawContactId(ContentResolver cr, long contactId) {
+        Cursor rawContactIdCursor = null;
+        long rawContactId = -1;
+        try {
+            rawContactIdCursor = cr.query(RawContacts.CONTENT_URI,
+                    new String[] {RawContacts._ID},
+                    RawContacts.CONTACT_ID + "=" + contactId, null, null);
+            if (rawContactIdCursor != null && rawContactIdCursor.moveToFirst()) {
+                // Just return the first one.
+                rawContactId = rawContactIdCursor.getLong(0);
+            }
+        } finally {
+            if (rawContactIdCursor != null) {
+                rawContactIdCursor.close();
+            }
+        }
+        return rawContactId;
+    }
+
 
     /**
      * Utility for creating a standard tab indicator view.