Add support for an 'About' field on your profile.

This commit is contained in:
Greyson Parrelli
2021-01-21 12:35:00 -05:00
parent e80033c287
commit 7db16e6156
42 changed files with 709 additions and 119 deletions

View File

@@ -15,9 +15,12 @@ import androidx.recyclerview.widget.RecyclerView;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.components.AvatarImageView;
import org.thoughtcrime.securesms.components.emoji.EmojiTextView;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.util.FeatureFlags;
import org.thoughtcrime.securesms.util.LifecycleRecyclerAdapter;
import org.thoughtcrime.securesms.util.LifecycleViewHolder;
import org.thoughtcrime.securesms.util.Util;
import java.util.ArrayList;
import java.util.HashSet;
@@ -166,6 +169,7 @@ final class GroupMemberListAdapter extends LifecycleRecyclerAdapter<GroupMemberL
final Context context;
final AvatarImageView avatar;
final TextView recipient;
final EmojiTextView about;
final CheckBox selected;
final PopupMenuView popupMenu;
final View popupMenuContainer;
@@ -187,6 +191,7 @@ final class GroupMemberListAdapter extends LifecycleRecyclerAdapter<GroupMemberL
this.context = itemView.getContext();
this.avatar = itemView.findViewById(R.id.recipient_avatar);
this.recipient = itemView.findViewById(R.id.recipient_name);
this.about = itemView.findViewById(R.id.recipient_about);
this.selected = itemView.findViewById(R.id.recipient_selected);
this.popupMenu = itemView.findViewById(R.id.popupMenu);
this.popupMenuContainer = itemView.findViewById(R.id.popupMenuProgressContainer);
@@ -201,12 +206,14 @@ final class GroupMemberListAdapter extends LifecycleRecyclerAdapter<GroupMemberL
void bindRecipient(@NonNull Recipient recipient) {
String displayName = recipient.isSelf() ? context.getString(R.string.GroupMembersDialog_you)
: recipient.getDisplayName(itemView.getContext());
bindImageAndText(recipient, displayName);
bindImageAndText(recipient, displayName, recipient.getCombinedAboutAndEmoji());
}
void bindImageAndText(@NonNull Recipient recipient, @NonNull String displayText) {
void bindImageAndText(@NonNull Recipient recipient, @NonNull String displayText, @Nullable String about) {
this.recipient.setText(displayText);
this.avatar.setRecipient(recipient);
this.about.setText(about);
this.about.setVisibility(Util.isEmpty(about) ? View.GONE : View.VISIBLE);
}
void bindRecipientClick(@NonNull Recipient recipient) {
@@ -333,7 +340,7 @@ final class GroupMemberListAdapter extends LifecycleRecyclerAdapter<GroupMemberL
GroupMemberEntry.PendingMember pendingMember = (GroupMemberEntry.PendingMember) memberEntry;
bindImageAndText(pendingMember.getInvitee(), pendingMember.getInvitee().getDisplayNameOrUsername(context));
bindImageAndText(pendingMember.getInvitee(), pendingMember.getInvitee().getDisplayNameOrUsername(context), pendingMember.getInvitee().getCombinedAboutAndEmoji());
bindRecipientClick(pendingMember.getInvitee());
if (pendingMember.isCancellable() && adminActionsListener != null) {
@@ -370,7 +377,7 @@ final class GroupMemberListAdapter extends LifecycleRecyclerAdapter<GroupMemberL
pendingMembers.getInviteCount(),
displayName, pendingMembers.getInviteCount());
bindImageAndText(inviter, displayText);
bindImageAndText(inviter, displayText, inviter.getAbout());
if (pendingMembers.isCancellable() && adminActionsListener != null) {
popupMenu.setMenu(R.menu.others_invite_pending_menu,