Separate formatted number and original number.
This commit makes sure the mNumber field always contains the number
unformatted, as it is stored in the call log database. Since the field
is used to store the phone number as it is used for placing calls, it
should never be formatted.
Change-Id: I286449aafb959459f82e783742e510e5e01b7570
diff --git a/src/com/android/contacts/CallDetailActivity.java b/src/com/android/contacts/CallDetailActivity.java
index 7f01481..9191b8e 100644
--- a/src/com/android/contacts/CallDetailActivity.java
+++ b/src/com/android/contacts/CallDetailActivity.java
@@ -214,6 +214,7 @@
Uri.encode(mNumber));
Cursor phonesCursor = resolver.query(
phoneUri, PHONES_PROJECTION, null, null, null);
+ String candidateNumberText = mNumber;
try {
if (phonesCursor != null && phonesCursor.moveToFirst()) {
long personId = phonesCursor.getLong(COLUMN_INDEX_ID);
@@ -221,19 +222,20 @@
Contacts.CONTENT_URI, personId);
nameText = phonesCursor.getString(COLUMN_INDEX_NAME);
photoId = phonesCursor.getLong(COLUMN_INDEX_PHOTO_ID);
- mNumber = PhoneNumberUtils.formatNumber(
+ candidateNumberText = PhoneNumberUtils.formatNumber(
phonesCursor.getString(COLUMN_INDEX_NUMBER),
phonesCursor.getString(COLUMN_INDEX_NORMALIZED_NUMBER),
countryIso);
numberType = phonesCursor.getInt(COLUMN_INDEX_TYPE);
numberLabel = phonesCursor.getString(COLUMN_INDEX_LABEL);
} else {
- mNumber = PhoneNumberUtils.formatNumber(mNumber, countryIso);
+ candidateNumberText =
+ PhoneNumberUtils.formatNumber(mNumber, countryIso);
}
} finally {
- if (phonesCursor != null) phonesCursor.close();
+ if (phonesCursor != null) phonesCursor.close();
+ numberText = candidateNumberText;
}
- numberText = mNumber;
// Let user view contact details if they exist, otherwise add option
// to create new contact from this number.