Merge "Remove unnecessary Japanese indexer."
diff --git a/src/com/android/contacts/ContactsListActivity.java b/src/com/android/contacts/ContactsListActivity.java
index 5cc0254..f5ed2d7 100644
--- a/src/com/android/contacts/ContactsListActivity.java
+++ b/src/com/android/contacts/ContactsListActivity.java
@@ -1227,6 +1227,7 @@
return new AlertDialog.Builder(this)
.setTitle(R.string.confirm_share_visible_contacts_title)
.setMessage(getString(R.string.confirm_share_visible_contacts_message))
+ .setNegativeButton(android.R.string.cancel, null)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
diff --git a/src/com/android/contacts/ImportVCardActivity.java b/src/com/android/contacts/ImportVCardActivity.java
index 4f2749d..30b6cbf 100644
--- a/src/com/android/contacts/ImportVCardActivity.java
+++ b/src/com/android/contacts/ImportVCardActivity.java
@@ -22,6 +22,7 @@
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.ContentResolver;
+import android.content.ContentUris;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -45,6 +46,7 @@
import android.pim.vcard.exception.VCardNestedException;
import android.pim.vcard.exception.VCardNotSupportedException;
import android.pim.vcard.exception.VCardVersionException;
+import android.provider.ContactsContract.RawContacts;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextUtils;
@@ -189,6 +191,7 @@
public void run() {
boolean shouldCallFinish = true;
mWakeLock.acquire();
+ Uri createdUri = null;
// Some malicious vCard data may make this thread broken
// (e.g. OutOfMemoryError).
// Even in such cases, some should be done.
@@ -238,7 +241,7 @@
mProgressDialogForReadVCard.setIndeterminate(false);
mProgressDialogForReadVCard.setMax(counter.getCount());
String charset = detector.getEstimatedCharset();
- doActuallyReadOneVCard(mUri, null, charset, true, detector,
+ createdUri = doActuallyReadOneVCard(mUri, null, charset, true, detector,
mErrorFileNameList);
} else { // Read multiple files.
mProgressDialogForReadVCard.setProgressNumberFormat(
@@ -262,7 +265,7 @@
// Assume that VCardSourceDetector was able to detect the source.
}
String charset = detector.getEstimatedCharset();
- doActuallyReadOneVCard(uri, mAccount,
+ createdUri = doActuallyReadOneVCard(uri, mAccount,
charset, false, detector, mErrorFileNameList);
mProgressDialogForReadVCard.incrementProgressBy(1);
}
@@ -274,18 +277,18 @@
if (shouldCallFinish && !isFinishing()) {
if (mErrorFileNameList == null || mErrorFileNameList.isEmpty()) {
finish();
- // TODO: Send out ACTION_EDIT intent here to review the
- // incoming contact
if (mNeedReview) {
mNeedReview = false;
Log.v("importVCardActivity", "Prepare to review the imported contact");
- Uri uri = null; // TODO: need get the uri of the
- // incoming contact
- Intent editIntent = new Intent(Intent.ACTION_EDIT, uri);
- if (editIntent != null) {
- //startActivity(editIntent);
- }
+ // get contact_id of this raw_contact
+ final long rawContactId = ContentUris.parseId(createdUri);
+ Uri contactUri = RawContacts.getContactLookupUri(getContentResolver(),
+ ContentUris.withAppendedId(RawContacts.CONTENT_URI,
+ rawContactId));
+
+ Intent viewIntent = new Intent(Intent.ACTION_VIEW, contactUri);
+ startActivity(viewIntent);
}
} else {
StringBuilder builder = new StringBuilder();
@@ -298,7 +301,7 @@
}
builder.append(fileName);
}
-
+
mHandler.post(new DialogDisplayer(
getString(R.string.fail_reason_failed_to_read_files,
builder.toString())));
@@ -307,7 +310,7 @@
}
}
- private boolean doActuallyReadOneVCard(Uri uri, Account account,
+ private Uri doActuallyReadOneVCard(Uri uri, Account account,
String charset, boolean showEntryParseProgress,
VCardSourceDetector detector, List<String> errorFileNameList) {
final Context context = ImportVCardActivity.this;
@@ -321,7 +324,8 @@
charset = VCardConfig.DEFAULT_CHARSET;
builder = new VCardEntryConstructor(null, null, false, vcardType, mAccount);
}
- builder.addEntryHandler(new VCardEntryCommitter(mResolver));
+ VCardEntryCommitter committer = new VCardEntryCommitter(mResolver);
+ builder.addEntryHandler(committer);
if (showEntryParseProgress) {
builder.addEntryHandler(new ProgressShower(mProgressDialogForReadVCard,
context.getString(R.string.reading_vcard_message),
@@ -331,12 +335,12 @@
try {
if (!readOneVCardFile(uri, charset, builder, detector, false, null)) {
- return false;
+ return null;
}
} catch (VCardNestedException e) {
Log.e(LOG_TAG, "Never reach here.");
}
- return true;
+ return committer.getLastCreatedUri();
}
private boolean readOneVCardFile(Uri uri, String charset,
@@ -431,7 +435,7 @@
public static final int IMPORT_MULTIPLE = 1;
public static final int IMPORT_ALL = 2;
public static final int IMPORT_TYPE_SIZE = 3;
-
+
private int mCurrentIndex;
public void onClick(DialogInterface dialog, int which) {
@@ -454,7 +458,7 @@
}
}
}
-
+
private class VCardSelectedListener implements
DialogInterface.OnClickListener, DialogInterface.OnMultiChoiceClickListener {
private int mCurrentIndex;
@@ -472,7 +476,7 @@
if (mSelectedIndexSet != null) {
List<VCardFile> selectedVCardFileList = new ArrayList<VCardFile>();
int size = mAllVCardFileList.size();
- // We'd like to sort the files by its index, so we do not use Set iterator.
+ // We'd like to sort the files by its index, so we do not use Set iterator.
for (int i = 0; i < size; i++) {
if (mSelectedIndexSet.contains(i)) {
selectedVCardFileList.add(mAllVCardFileList.get(i));
@@ -633,7 +637,7 @@
mHandler.post(new DialogDisplayer(R.id.dialog_select_one_vcard));
}
}
-
+
private void importMultipleVCardFromSDCard(final List<VCardFile> selectedVCardFileList) {
mHandler.post(new Runnable() {
public void run() {