Merge change I623d3ba1 into eclair

* changes:
  Placeholder mdpi assets
diff --git a/res/layout-finger/contacts_list_item_photo.xml b/res/layout-finger/contacts_list_item_photo.xml
index 527463f..b15c586 100644
--- a/res/layout-finger/contacts_list_item_photo.xml
+++ b/res/layout-finger/contacts_list_item_photo.xml
@@ -75,18 +75,18 @@
             </LinearLayout>
         </LinearLayout>
 
-        <android.widget.FasttrackBadgeWidget android:id="@+id/photo"
+        <android.widget.QuickContactBadge android:id="@+id/photo"
             android:layout_alignParentLeft="true"
             android:layout_centerVertical="true"
             android:layout_marginRight="8dip"
-            style="@*android:style/Widget.FasttrackBadgeWidget.WindowMedium" />
+            style="@*android:style/Widget.QuickContactBadge.WindowMedium" />
         />
 
-        <ImageView android:id="@+id/noFastTrackphoto"
+        <ImageView android:id="@+id/noQuickContactPhoto"
             android:layout_alignParentLeft="true"
             android:layout_centerVertical="true"
             android:layout_marginRight="8dip"
-            style="@*android:style/Widget.FasttrackBadgeWidget.WindowMedium"
+            style="@*android:style/Widget.QuickContactBadge.WindowMedium"
             android:background="@null" />
         />
 
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 1ea5409..407d1c5 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -772,10 +772,10 @@
     <string name="scanning_sdcard_failed_title">Scanning SD card failed</string>
 
     <!-- Dialog message shown when searching VCard data failed. -->
-    <string name="scanning_sdcard_failed_message">Scanning SD card failed</string>
+    <string name="scanning_sdcard_failed_message">Scanning SD card failed (Reason: \"<xliff:g id="fail_reason">%s</xliff:g>\")</string>
 
     <!-- The failed reason: "I/O Error" -->
-    <string name="fail_reason_io_error">I/O Error (Reason: \"<xliff:g id="fail_reason">%s</xliff:g>\")</string>
+    <string name="fail_reason_io_error">I/O Error</string>
 
     <!-- The failed reason: "Failed to parse VCard data" -->
     <string name="fail_reason_vcard_parse_error">Failed to parse vCard for unexpected reason</string>
@@ -784,7 +784,7 @@
     <string name="fail_reason_vcard_not_supported_error">Failed to parse vCard though it seems in valid format, since the current implementation does not support it</string>
 
     <!-- The failed reason: "There is no VCard file" -->
-    <string name="fail_reason_no_vcard_file">No vCard file found on SD dard</string>
+    <string name="fail_reason_no_vcard_file">No vCard file found on the SD card</string>
 
     <!-- The failed reason: "There is no valid VCard entry in the file(s)" -->
     <string name="fail_reason_no_vcard_entry">No valid vCard entry found for your selection</string>
diff --git a/src/com/android/contacts/ContactsListActivity.java b/src/com/android/contacts/ContactsListActivity.java
index f164289..c228178 100644
--- a/src/com/android/contacts/ContactsListActivity.java
+++ b/src/com/android/contacts/ContactsListActivity.java
@@ -93,7 +93,7 @@
 import android.widget.AdapterView;
 import android.widget.AlphabetIndexer;
 import android.widget.ArrayAdapter;
-import android.widget.FasttrackBadgeWidget;
+import android.widget.QuickContactBadge;
 import android.widget.Filter;
 import android.widget.ImageView;
 import android.widget.ListView;
@@ -553,7 +553,6 @@
             return;
         }
 
-
         if (JOIN_AGGREGATE.equals(action)) {
             mMode = MODE_JOIN_CONTACT;
             mQueryAggregateId = intent.getLongExtra(EXTRA_AGGREGATE_ID, -1);
@@ -1562,10 +1561,14 @@
         mQueryHandler.setLoadingJoinSuggestions(false);
 
         String[] projection = getProjectionForQuery();
-        Uri uri = getUriToQuery().buildUpon()
-                .appendQueryParameter(ContactsContract.REQUESTING_PACKAGE_PARAM_KEY,
-                        getCallingPackage())
-                .build();
+        String callingPackage = getCallingPackage();
+        Uri uri = getUriToQuery();
+        if (!TextUtils.isEmpty(callingPackage)) {
+            uri = uri.buildUpon()
+                    .appendQueryParameter(ContactsContract.REQUESTING_PACKAGE_PARAM_KEY,
+                            callingPackage)
+                    .build();
+        }
 
         // Kick off the new query
         switch (mMode) {
@@ -1914,7 +1917,7 @@
         public TextView dataView;
         public CharArrayBuffer dataBuffer = new CharArrayBuffer(128);
         public ImageView presenceView;
-        public FasttrackBadgeWidget photoView;
+        public QuickContactBadge photoView;
         public ImageView nonFastTrackPhotoView;
     }
 
@@ -1926,7 +1929,7 @@
             this.position = position;
             this.photoId = photoId;
         }
-        public FasttrackBadgeWidget photoView;
+        public QuickContactBadge photoView;
     }
 
     private final class ContactItemListAdapter extends ResourceCursorAdapter
@@ -2217,11 +2220,8 @@
             cache.labelView = (TextView) view.findViewById(R.id.label);
             cache.dataView = (TextView) view.findViewById(R.id.data);
             cache.presenceView = (ImageView) view.findViewById(R.id.presence);
-            cache.photoView = (FasttrackBadgeWidget) view.findViewById(R.id.photo);
-            if (cache.photoView != null) {
-                cache.photoView.setExcludeMimes(new String[] {Contacts.CONTENT_ITEM_TYPE});
-            }
-            cache.nonFastTrackPhotoView = (ImageView) view.findViewById(R.id.noFastTrackphoto);
+            cache.photoView = (QuickContactBadge) view.findViewById(R.id.photo);
+            cache.nonFastTrackPhotoView = (ImageView) view.findViewById(R.id.noQuickContactPhoto);
             view.setTag(cache);
 
             return view;
diff --git a/src/com/android/contacts/ExportVCardActivity.java b/src/com/android/contacts/ExportVCardActivity.java
index 08f43c1..7c088ea 100644
--- a/src/com/android/contacts/ExportVCardActivity.java
+++ b/src/com/android/contacts/ExportVCardActivity.java
@@ -26,7 +26,6 @@
 import android.os.Handler;
 import android.os.PowerManager;
 import android.pim.vcard.VCardComposer;
-import android.provider.ContactsContract.Contacts;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -148,10 +147,12 @@
                 }
 
                 composer = new VCardComposer(ExportVCardActivity.this, mVCardTypeStr, true);
-                // composer = new VCardComposer(ExportVCardActivity,
-                // VCardConfig.VCARD_TYPE_V30_JAPANESE_UTF8, true);
+                /*int vcardType = (VCardConfig.VCARD_TYPE_V21_GENERIC |
+                        VCardConfig.FLAG_USE_QP_TO_PRIMARY_PROPERTIES);
+                composer = new VCardComposer(ExportVCardActivity.this, vcardType, true);*/
+
                 composer.addHandler(composer.new HandlerForOutputStream(outputStream));
- 
+
                 if (!composer.init()) {
                     final String errorReason = composer.getErrorReason();
                     Log.e(LOG_TAG, "initialization of vCard composer failed: " + errorReason);
diff --git a/src/com/android/contacts/ImportVCardActivity.java b/src/com/android/contacts/ImportVCardActivity.java
index 64b5727..1dacd62 100644
--- a/src/com/android/contacts/ImportVCardActivity.java
+++ b/src/com/android/contacts/ImportVCardActivity.java
@@ -358,8 +358,8 @@
                     errorFileNameList.add(canonicalPath);
                 } else {
                     mHandler.post(new DialogDisplayer(
-                            getString(R.string.fail_reason_io_error,
-                                    e.getMessage())));
+                            getString(R.string.fail_reason_io_error) +
+                                    ": " + e.getLocalizedMessage()));
                 }
                 return false;
             } catch (VCardNotSupportedException e) {
diff --git a/src/com/android/contacts/model/GoogleSource.java b/src/com/android/contacts/model/GoogleSource.java
index b6f1e29..6706ec0 100644
--- a/src/com/android/contacts/model/GoogleSource.java
+++ b/src/com/android/contacts/model/GoogleSource.java
@@ -41,7 +41,7 @@
 import java.util.ArrayList;
 
 public class GoogleSource extends FallbackSource {
-    public static final String ACCOUNT_TYPE = "com.google.GAIA";
+    public static final String ACCOUNT_TYPE = "com.google";
     public GoogleSource(String resPackageName) {
         this.accountType = ACCOUNT_TYPE;
         this.resPackageName = null;