Merge "API change - bug 3370353 and bug 3370338" into honeycomb
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index 2ab897d..9aff1c4 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -1224,7 +1224,7 @@
@Override
public void onAggregationSuggestionChange() {
- if (!isAdded()) {
+ if (!isAdded() || mState == null) {
return;
}
diff --git a/src/com/android/contacts/socialwidget/SocialWidgetProvider.java b/src/com/android/contacts/socialwidget/SocialWidgetProvider.java
index 0c132b7..0330c89 100644
--- a/src/com/android/contacts/socialwidget/SocialWidgetProvider.java
+++ b/src/com/android/contacts/socialwidget/SocialWidgetProvider.java
@@ -114,38 +114,41 @@
private static void bindRemoteViews(final Context context, final int widgetId,
final AppWidgetManager widgetManager, ContactLoader.Result contactData) {
- if (contactData == ContactLoader.Result.ERROR ||
- contactData == ContactLoader.Result.NOT_FOUND) {
- return;
- }
-
Log.d(TAG, "Loaded " + contactData.getLookupKey()
+ " for widget with id=" + widgetId);
final RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.social_widget);
- setDisplayNameAndSnippet(context, views, contactData.getDisplayName(),
- contactData.getPhoneticName(), contactData.getSocialSnippet());
+ if (contactData == ContactLoader.Result.ERROR ||
+ contactData == ContactLoader.Result.NOT_FOUND) {
+ setDisplayNameAndSnippet(context, views,
+ context.getString(R.string.invalidContactMessage), null, null);
+ setPhoto(views, ContactBadgeUtil.loadPlaceholderPhoto(context));
+ setStatusAttribution(views, null);
+ } else {
+ setDisplayNameAndSnippet(context, views, contactData.getDisplayName(),
+ contactData.getPhoneticName(), contactData.getSocialSnippet());
- byte[] photo = contactData.getPhotoBinaryData();
- setPhoto(views, photo != null
- ? BitmapFactory.decodeByteArray(photo, 0, photo.length)
- : ContactBadgeUtil.loadPlaceholderPhoto(context));
- setStatusAttribution(views, ContactBadgeUtil.getSocialDate(
- contactData, context));
+ byte[] photo = contactData.getPhotoBinaryData();
+ setPhoto(views, photo != null
+ ? BitmapFactory.decodeByteArray(photo, 0, photo.length)
+ : ContactBadgeUtil.loadPlaceholderPhoto(context));
+ setStatusAttribution(views, ContactBadgeUtil.getSocialDate(
+ contactData, context));
- // OnClick launch QuickContact
- final Intent intent = new Intent(QuickContact.ACTION_QUICK_CONTACT);
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
- | Intent.FLAG_ACTIVITY_CLEAR_TOP
- | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
+ // OnClick launch QuickContact
+ final Intent intent = new Intent(QuickContact.ACTION_QUICK_CONTACT);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
+ | Intent.FLAG_ACTIVITY_CLEAR_TOP
+ | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
- intent.setData(contactData.getLookupUri());
- intent.putExtra(QuickContact.EXTRA_MODE, QuickContact.MODE_SMALL);
+ intent.setData(contactData.getLookupUri());
+ intent.putExtra(QuickContact.EXTRA_MODE, QuickContact.MODE_SMALL);
- final PendingIntent pendingIntent = PendingIntent.getActivity(context,
- 0, intent, 0);
- views.setOnClickPendingIntent(R.id.border, pendingIntent);
+ final PendingIntent pendingIntent = PendingIntent.getActivity(context,
+ 0, intent, 0);
+ views.setOnClickPendingIntent(R.id.border, pendingIntent);
+ }
// Configure UI
widgetManager.updateAppWidget(widgetId, views);