Merge "Fixes NPE with 3p entries in QuickContact"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 6cbe798..9bd4621 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -313,6 +313,11 @@
Clicking this view causes Quick Contacts to close. [CHAR LIMIT=NONE] -->
<string name="quickcontact_transparent_view_description">Click to return to previous screen</string>
+ <!-- When a contact has no data, we prompt the user to add a phone number for the contact. [CHAR LIMIT=40] -->
+ <string name="quickcontact_add_phone_number">Add phone number</string>
+ <!-- When a contact has no data, we prompt the user to add an email for the contact. [CHAR LIMIT=40] -->
+ <string name="quickcontact_add_email">Add email</string>
+
<!-- Shown as a toast when the user attempts an action (add contact, edit
contact, etc) and no application was found that could perform that
action. [CHAR LIMIT=NONE] -->
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 157ed0b..ed13950 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -801,6 +801,7 @@
UserManager.DISALLOW_MODIFY_ACCOUNTS);
if (!disallowModifyAccounts && !areContactWritableAccountsAvailable() &&
AccountPromptUtils.shouldShowAccountPrompt(this)) {
+ AccountPromptUtils.neverShowAccountPromptAgain(this);
AccountPromptUtils.launchAccountPrompt(this);
return;
}
diff --git a/src/com/android/contacts/interactions/CalendarInteractionsLoader.java b/src/com/android/contacts/interactions/CalendarInteractionsLoader.java
index 941698c..7d7a8f2 100644
--- a/src/com/android/contacts/interactions/CalendarInteractionsLoader.java
+++ b/src/com/android/contacts/interactions/CalendarInteractionsLoader.java
@@ -45,9 +45,6 @@
long numberFutureMillisecondToSearchLocalCalendar,
long numberPastMillisecondToSearchLocalCalendar) {
super(context);
- for (String address: emailAddresses) {
- Log.v(TAG, address);
- }
mEmailAddresses = emailAddresses;
mMaxFutureToRetrieve = maxFutureToRetrieve;
mMaxPastToRetrieve = maxPastToRetrieve;
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 87405fd..5b1fa10 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -480,9 +480,6 @@
super.onCreate(savedInstanceState);
getWindow().setStatusBarColor(Color.TRANSPARENT);
- // Since we can't disable Window animations from the Launcher, we can minimize the
- // silliness of the animation by setting the navigation bar transparent.
- getWindow().setNavigationBarColor(Color.TRANSPARENT);
processIntent(getIntent());
@@ -985,8 +982,10 @@
intent = new Intent(Intent.ACTION_VIEW).setData(builder.build());
}
header = getResources().getString(R.string.header_event_entry);
- subHeader = getResources().getString(Event.getTypeResource(
- event.getKindTypeColumn(kind)));
+ if (event.hasKindTypeColumn(kind)) {
+ subHeader = getResources().getString(Event.getTypeResource(
+ event.getKindTypeColumn(kind)));
+ }
text = DateUtils.formatDate(this, dataString);
} else if (dataItem instanceof RelationDataItem) {
final RelationDataItem relation = (RelationDataItem) dataItem;
@@ -998,14 +997,18 @@
}
header = getResources().getString(R.string.header_relation_entry);
subHeader = relation.getName();
- text = Relation.getTypeLabel(getResources(), relation.getKindTypeColumn(kind),
- relation.getLabel()).toString();
+ if (relation.hasKindTypeColumn(kind)) {
+ text = Relation.getTypeLabel(getResources(), relation.getKindTypeColumn(kind),
+ relation.getLabel()).toString();
+ }
} else if (dataItem instanceof PhoneDataItem) {
final PhoneDataItem phone = (PhoneDataItem) dataItem;
if (!TextUtils.isEmpty(phone.getNumber())) {
header = phone.buildDataString(this, kind);
- text = Phone.getTypeLabel(getResources(), phone.getKindTypeColumn(kind),
- phone.getLabel()).toString();
+ if (phone.hasKindTypeColumn(kind)) {
+ text = Phone.getTypeLabel(getResources(), phone.getKindTypeColumn(kind),
+ phone.getLabel()).toString();
+ }
icon = getResources().getDrawable(R.drawable.ic_phone_24dp);
if (PhoneCapabilityTester.isPhone(this)) {
intent = CallUtil.getCallIntent(phone.getNumber());
@@ -1018,8 +1021,10 @@
final Uri mailUri = Uri.fromParts(CallUtil.SCHEME_MAILTO, address, null);
intent = new Intent(Intent.ACTION_SENDTO, mailUri);
header = email.getAddress();
- text = Email.getTypeLabel(getResources(), email.getKindTypeColumn(kind),
- email.getLabel()).toString();
+ if (email.hasKindTypeColumn(kind)) {
+ text = Email.getTypeLabel(getResources(), email.getKindTypeColumn(kind),
+ email.getLabel()).toString();
+ }
icon = getResources().getDrawable(R.drawable.ic_email_24dp);
}
} else if (dataItem instanceof StructuredPostalDataItem) {
@@ -1028,8 +1033,10 @@
if (!TextUtils.isEmpty(postalAddress)) {
intent = StructuredPostalUtils.getViewPostalAddressIntent(postalAddress);
header = postal.getFormattedAddress();
- text = StructuredPostal.getTypeLabel(getResources(), postal.getKindTypeColumn(kind),
- postal.getLabel()).toString();
+ if (postal.hasKindTypeColumn(kind)) {
+ text = StructuredPostal.getTypeLabel(getResources(),
+ postal.getKindTypeColumn(kind), postal.getLabel()).toString();
+ }
icon = getResources().getDrawable(R.drawable.ic_place_24dp);
}
} else if (dataItem instanceof SipAddressDataItem) {
@@ -1322,9 +1329,14 @@
break;
case LOADER_CALENDAR_ID:
Log.v(TAG, "LOADER_CALENDAR_ID");
+ final String[] emailsArray = args.getStringArray(KEY_LOADER_EXTRA_EMAILS);
+ List<String> emailsList = null;
+ if (emailsArray != null) {
+ emailsList = Arrays.asList(args.getStringArray(KEY_LOADER_EXTRA_EMAILS));
+ }
loader = new CalendarInteractionsLoader(
QuickContactActivity.this,
- Arrays.asList(args.getStringArray(KEY_LOADER_EXTRA_EMAILS)),
+ emailsList,
MAX_FUTURE_CALENDAR_RETRIEVE,
MAX_PAST_CALENDAR_RETRIEVE,
FUTURE_MILLISECOND_TO_SEARCH_LOCAL_CALENDAR,