Merge change I44f9de96 into eclair-mr2

* changes:
  Don't crash even when voiceMailNumber is null, which is a valid condition.
diff --git a/src/com/android/contacts/ExportVCardActivity.java b/src/com/android/contacts/ExportVCardActivity.java
index baf2371..dd1ecc3 100644
--- a/src/com/android/contacts/ExportVCardActivity.java
+++ b/src/com/android/contacts/ExportVCardActivity.java
@@ -36,6 +36,14 @@
 import java.util.HashSet;
 import java.util.Set;
 
+/**
+ * Class for exporting vCard.
+ *
+ * Note that this Activity assumes that the instance is a "one-shot Activity", which will be
+ * finished (with the method {@link Activity#finish()}) after the export and never reuse
+ * any Dialog in the instance. So this code is careless about the management around managed
+ * dialogs stuffs (like how onCreateDialog() is used).
+ */
 public class ExportVCardActivity extends Activity {
     private static final String LOG_TAG = "ExportVCardActivity";
 
diff --git a/src/com/android/contacts/ImportVCardActivity.java b/src/com/android/contacts/ImportVCardActivity.java
index 1a08137..eb99c95 100644
--- a/src/com/android/contacts/ImportVCardActivity.java
+++ b/src/com/android/contacts/ImportVCardActivity.java
@@ -90,6 +90,11 @@
 /**
  * Class for importing vCard. Several user interaction will be required while reading
  * (selecting a file, waiting a moment, etc.)
+ *
+ * Note that this Activity assumes that the instance is a "one-shot Activity", which will be
+ * finished (with the method {@link Activity#finish()}) after the import and never reuse
+ * any Dialog in the instance. So this code is careless about the management around managed
+ * dialogs stuffs (like how onCreateDialog() is used).
  */
 public class ImportVCardActivity extends Activity {
     private static final String LOG_TAG = "ImportVCardActivity";
@@ -677,20 +682,6 @@
         return builder.create();
     }
 
-    private Dialog getReadingVCardDialog() {
-        if (mProgressDialogForReadVCard == null) {
-            String title = getString(R.string.reading_vcard_title);
-            String message = getString(R.string.reading_vcard_message);
-            mProgressDialogForReadVCard = new ProgressDialog(this);
-            mProgressDialogForReadVCard.setTitle(title);
-            mProgressDialogForReadVCard.setMessage(message);
-            mProgressDialogForReadVCard.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
-            mProgressDialogForReadVCard.setOnCancelListener(mVCardReadThread);
-            mVCardReadThread.start();
-        }
-        return mProgressDialogForReadVCard;
-    }
-
     @Override
     protected void onCreate(Bundle bundle) {
         super.onCreate(bundle);
@@ -752,7 +743,17 @@
                 return getVCardFileSelectDialog(false);
             }
             case R.id.dialog_reading_vcard: {
-                return getReadingVCardDialog();
+                if (mProgressDialogForReadVCard == null) {
+                    String title = getString(R.string.reading_vcard_title);
+                    String message = getString(R.string.reading_vcard_message);
+                    mProgressDialogForReadVCard = new ProgressDialog(this);
+                    mProgressDialogForReadVCard.setTitle(title);
+                    mProgressDialogForReadVCard.setMessage(message);
+                    mProgressDialogForReadVCard.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
+                    mProgressDialogForReadVCard.setOnCancelListener(mVCardReadThread);
+                    mVCardReadThread.start();
+                }
+                return mProgressDialogForReadVCard;
             }
             case R.id.dialog_io_exception: {
                 String message = (getString(R.string.scanning_sdcard_failed_message,