From dadc8d0183ade073224a1beb5dcaf1ea30d66c62 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Sun, 22 Jan 2017 21:23:51 -0800 Subject: [PATCH] Refactor "unnamed" group logic // FREEBIE --- res/values/strings.xml | 5 ++++- .../securesms/ConversationTitleView.java | 6 +---- .../securesms/components/FromTextView.java | 22 ++++--------------- .../recipients/RecipientProvider.java | 16 +++++++++----- 4 files changed, 20 insertions(+), 29 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 8ab0143a27..31496313cc 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -117,7 +117,7 @@ Message is empty! Group members Group conversation - Unnamed group + 1 member %d members @@ -455,6 +455,9 @@ Disabled Available once a message has been sent or received. + + Unnamed group + Answering Ending call diff --git a/src/org/thoughtcrime/securesms/ConversationTitleView.java b/src/org/thoughtcrime/securesms/ConversationTitleView.java index 1d406fbb2c..7b6536b16a 100644 --- a/src/org/thoughtcrime/securesms/ConversationTitleView.java +++ b/src/org/thoughtcrime/securesms/ConversationTitleView.java @@ -71,11 +71,7 @@ public class ConversationTitleView extends LinearLayout { this.subtitle.setVisibility(View.VISIBLE); } } else { - String groupName = (!TextUtils.isEmpty(recipient.getName())) ? - recipient.getName() : - getContext().getString(R.string.ConversationActivity_unnamed_group); - - this.title.setText(groupName); + this.title.setText(recipient.getName()); this.subtitle.setText(null); this.subtitle.setVisibility(View.GONE); } diff --git a/src/org/thoughtcrime/securesms/components/FromTextView.java b/src/org/thoughtcrime/securesms/components/FromTextView.java index 90ebac7fcc..fc99e4e025 100644 --- a/src/org/thoughtcrime/securesms/components/FromTextView.java +++ b/src/org/thoughtcrime/securesms/components/FromTextView.java @@ -3,13 +3,10 @@ package org.thoughtcrime.securesms.components; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Typeface; -import android.graphics.drawable.Drawable; import android.text.Spannable; import android.text.SpannableStringBuilder; -import android.text.TextUtils; import android.text.style.StyleSpan; import android.util.AttributeSet; -import android.util.Log; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.emoji.EmojiTextView; @@ -38,24 +35,13 @@ public class FromTextView extends EmojiTextView { } public void setText(Recipients recipients, boolean read) { - int attributes[] = new int[]{R.attr.conversation_list_item_count_color}; - TypedArray colors = getContext().obtainStyledAttributes(attributes); - boolean isUnnamedGroup = recipients.isGroupRecipient() && TextUtils.isEmpty(recipients.getPrimaryRecipient().getName()); - - String fromString; - - if (isUnnamedGroup) { - fromString = getContext().getString(R.string.ConversationActivity_unnamed_group); - } else { - fromString = recipients.toShortString(); - } + int attributes[] = new int[]{R.attr.conversation_list_item_count_color}; + TypedArray colors = getContext().obtainStyledAttributes(attributes); + String fromString = recipients.toShortString(); int typeface; - if (isUnnamedGroup) { - if (!read) typeface = Typeface.BOLD_ITALIC; - else typeface = Typeface.ITALIC; - } else if (!read) { + if (!read) { typeface = Typeface.BOLD; } else { typeface = Typeface.NORMAL; diff --git a/src/org/thoughtcrime/securesms/recipients/RecipientProvider.java b/src/org/thoughtcrime/securesms/recipients/RecipientProvider.java index 0a143bf398..08968048cb 100644 --- a/src/org/thoughtcrime/securesms/recipients/RecipientProvider.java +++ b/src/org/thoughtcrime/securesms/recipients/RecipientProvider.java @@ -162,18 +162,24 @@ public class RecipientProvider { private @NonNull RecipientDetails getGroupRecipientDetails(Context context, String groupId) { try { - GroupDatabase.GroupRecord record = DatabaseFactory.getGroupDatabase(context) - .getGroup(GroupUtil.getDecodedId(groupId)); + GroupDatabase.GroupRecord record = DatabaseFactory.getGroupDatabase(context) + .getGroup(GroupUtil.getDecodedId(groupId)); if (record != null) { ContactPhoto contactPhoto = ContactPhotoFactory.getGroupContactPhoto(record.getAvatar()); - return new RecipientDetails(record.getTitle(), groupId, null, contactPhoto, null); + String title = record.getTitle(); + + if (title == null) { + title = context.getString(R.string.RecipientProvider_unnamed_group);; + } + + return new RecipientDetails(title, groupId, null, contactPhoto, null); } - return new RecipientDetails(null, groupId, null, ContactPhotoFactory.getDefaultGroupPhoto(), null); + return new RecipientDetails(context.getString(R.string.RecipientProvider_unnamed_group), groupId, null, ContactPhotoFactory.getDefaultGroupPhoto(), null); } catch (IOException e) { Log.w("RecipientProvider", e); - return new RecipientDetails(null, groupId, null, ContactPhotoFactory.getDefaultGroupPhoto(), null); + return new RecipientDetails(context.getString(R.string.RecipientProvider_unnamed_group), groupId, null, ContactPhotoFactory.getDefaultGroupPhoto(), null); } }