Rename Recipient.isLocalNumber() to Recipient.isSelf()

This commit is contained in:
Greyson Parrelli 2020-10-19 16:27:49 -04:00 committed by Alan Evans
parent 5eaac6cb17
commit ead64d92a5
37 changed files with 94 additions and 120 deletions

View File

@ -82,10 +82,10 @@ public final class AvatarPreviewActivity extends PassphraseRequiredActivity {
RecipientId recipientId = RecipientId.from(getIntent().getStringExtra(RECIPIENT_ID_EXTRA)); RecipientId recipientId = RecipientId.from(getIntent().getStringExtra(RECIPIENT_ID_EXTRA));
Recipient.live(recipientId).observe(this, recipient -> { Recipient.live(recipientId).observe(this, recipient -> {
ContactPhoto contactPhoto = recipient.isLocalNumber() ? new ProfileContactPhoto(recipient, recipient.getProfileAvatar()) ContactPhoto contactPhoto = recipient.isSelf() ? new ProfileContactPhoto(recipient, recipient.getProfileAvatar())
: recipient.getContactPhoto(); : recipient.getContactPhoto();
FallbackContactPhoto fallbackPhoto = recipient.isLocalNumber() ? new ResourceContactPhoto(R.drawable.ic_profile_outline_40, R.drawable.ic_profile_outline_20, R.drawable.ic_person_large) FallbackContactPhoto fallbackPhoto = recipient.isSelf() ? new ResourceContactPhoto(R.drawable.ic_profile_outline_40, R.drawable.ic_profile_outline_20, R.drawable.ic_person_large)
: recipient.getFallbackContactPhoto(); : recipient.getFallbackContactPhoto();
Resources resources = this.getResources(); Resources resources = this.getResources();

View File

@ -194,7 +194,7 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity
if (threadRecipient != null) { if (threadRecipient != null) {
if (mediaItem.outgoing || threadRecipient.isGroup()) { if (mediaItem.outgoing || threadRecipient.isGroup()) {
if (threadRecipient.isLocalNumber()) { if (threadRecipient.isSelf()) {
from = getString(R.string.note_to_self); from = getString(R.string.note_to_self);
} else { } else {
to = threadRecipient.getDisplayName(this); to = threadRecipient.getDisplayName(this);

View File

@ -117,7 +117,7 @@ public final class AvatarImageView extends AppCompatImageView {
* Shows self as the actual profile picture. * Shows self as the actual profile picture.
*/ */
public void setRecipient(@NonNull Recipient recipient) { public void setRecipient(@NonNull Recipient recipient) {
if (recipient.isLocalNumber()) { if (recipient.isSelf()) {
setAvatar(GlideApp.with(this), null, false); setAvatar(GlideApp.with(this), null, false);
AvatarUtil.loadIconIntoImageView(recipient, this); AvatarUtil.loadIconIntoImageView(recipient, this);
} else { } else {

View File

@ -4,22 +4,16 @@ import android.content.Context;
import android.graphics.Typeface; import android.graphics.Typeface;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.view.ViewCompat;
import android.text.Spannable; import android.text.Spannable;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.SpannableStringBuilder; import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.text.style.StyleSpan; import android.text.style.StyleSpan;
import android.text.style.TypefaceSpan;
import android.util.AttributeSet; import android.util.AttributeSet;
import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.components.emoji.EmojiTextView; import org.thoughtcrime.securesms.components.emoji.EmojiTextView;
import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.util.FeatureFlags;
import org.thoughtcrime.securesms.util.ResUtil;
import org.thoughtcrime.securesms.util.spans.CenterAlignedRelativeSizeSpan;
public class FromTextView extends EmojiTextView { public class FromTextView extends EmojiTextView {
@ -59,7 +53,7 @@ public class FromTextView extends EmojiTextView {
Spannable.SPAN_INCLUSIVE_EXCLUSIVE); Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
if (recipient.isLocalNumber()) { if (recipient.isSelf()) {
builder.append(getContext().getString(R.string.note_to_self)); builder.append(getContext().getString(R.string.note_to_self));
} else { } else {
builder.append(fromSpan); builder.append(fromSpan);

View File

@ -190,8 +190,8 @@ public class QuoteView extends FrameLayout implements RecipientForeverObserver {
private void setQuoteAuthor(@NonNull Recipient author) { private void setQuoteAuthor(@NonNull Recipient author) {
boolean outgoing = messageType != MESSAGE_TYPE_INCOMING; boolean outgoing = messageType != MESSAGE_TYPE_INCOMING;
authorView.setText(author.isLocalNumber() ? getContext().getString(R.string.QuoteView_you) authorView.setText(author.isSelf() ? getContext().getString(R.string.QuoteView_you)
: author.getDisplayName(getContext())); : author.getDisplayName(getContext()));
// We use the raw color resource because Android 4.x was struggling with tints here // We use the raw color resource because Android 4.x was struggling with tints here
quoteBarView.setImageResource(author.getColor().toQuoteBarColorResource(getContext(), outgoing)); quoteBarView.setImageResource(author.getColor().toQuoteBarColorResource(getContext(), outgoing));

View File

@ -42,7 +42,7 @@ public class TypingStatusRepository {
} }
public synchronized void onTypingStarted(@NonNull Context context, long threadId, @NonNull Recipient author, int device) { public synchronized void onTypingStarted(@NonNull Context context, long threadId, @NonNull Recipient author, int device) {
if (author.isLocalNumber()) { if (author.isSelf()) {
return; return;
} }
@ -66,7 +66,7 @@ public class TypingStatusRepository {
} }
public synchronized void onTypingStopped(@NonNull Context context, long threadId, @NonNull Recipient author, int device, boolean isReplacedByIncomingMessage) { public synchronized void onTypingStopped(@NonNull Context context, long threadId, @NonNull Recipient author, int device, boolean isReplacedByIncomingMessage) {
if (author.isLocalNumber()) { if (author.isSelf()) {
return; return;
} }

View File

@ -7,13 +7,10 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.profiles.AvatarHelper; import org.thoughtcrime.securesms.profiles.AvatarHelper;
import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.whispersystems.libsignal.util.ByteUtil; import org.whispersystems.libsignal.util.ByteUtil;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.security.MessageDigest; import java.security.MessageDigest;
@ -67,7 +64,7 @@ public class ProfileContactPhoto implements ContactPhoto {
} }
private long getFileLastModified() { private long getFileLastModified() {
if (!recipient.isLocalNumber()) { if (!recipient.isSelf()) {
return 0; return 0;
} }

View File

@ -29,8 +29,6 @@ import org.thoughtcrime.securesms.database.MessageDatabase.InsertResult;
import org.thoughtcrime.securesms.database.RecipientDatabase; import org.thoughtcrime.securesms.database.RecipientDatabase;
import org.thoughtcrime.securesms.database.RecipientDatabase.BulkOperationsHandle; import org.thoughtcrime.securesms.database.RecipientDatabase.BulkOperationsHandle;
import org.thoughtcrime.securesms.database.RecipientDatabase.RegisteredState; import org.thoughtcrime.securesms.database.RecipientDatabase.RegisteredState;
import org.thoughtcrime.securesms.database.SessionDatabase;
import org.thoughtcrime.securesms.database.ThreadDatabase;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob; import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob;
import org.thoughtcrime.securesms.jobs.RetrieveProfileJob; import org.thoughtcrime.securesms.jobs.RetrieveProfileJob;
@ -45,7 +43,6 @@ import org.thoughtcrime.securesms.storage.StorageSyncHelper;
import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.sms.IncomingJoinedMessage; import org.thoughtcrime.securesms.sms.IncomingJoinedMessage;
import org.thoughtcrime.securesms.util.FeatureFlags;
import org.thoughtcrime.securesms.util.ProfileUtil; import org.thoughtcrime.securesms.util.ProfileUtil;
import org.thoughtcrime.securesms.util.SetUtil; import org.thoughtcrime.securesms.util.SetUtil;
import org.thoughtcrime.securesms.util.Stopwatch; import org.thoughtcrime.securesms.util.Stopwatch;
@ -398,7 +395,7 @@ public class DirectoryHelper {
for (RecipientId newUser: newUsers) { for (RecipientId newUser: newUsers) {
Recipient recipient = Recipient.resolved(newUser); Recipient recipient = Recipient.resolved(newUser);
if (!SessionUtil.hasSession(context, recipient.getId()) && !recipient.isLocalNumber()) { if (!SessionUtil.hasSession(context, recipient.getId()) && !recipient.isSelf()) {
IncomingJoinedMessage message = new IncomingJoinedMessage(newUser); IncomingJoinedMessage message = new IncomingJoinedMessage(newUser);
Optional<InsertResult> insertResult = DatabaseFactory.getSmsDatabase(context).insertMessageInbox(message); Optional<InsertResult> insertResult = DatabaseFactory.getSmsDatabase(context).insertMessageInbox(message);

View File

@ -837,7 +837,7 @@ public class ConversationActivity extends PassphraseRequiredActivity
inflater.inflate(R.menu.conversation_add_to_contacts, menu); inflater.inflate(R.menu.conversation_add_to_contacts, menu);
} }
if (recipient != null && recipient.get().isLocalNumber()) { if (recipient != null && recipient.get().isSelf()) {
if (isSecureText) { if (isSecureText) {
hideMenuItem(menu, R.id.menu_call_secure); hideMenuItem(menu, R.id.menu_call_secure);
hideMenuItem(menu, R.id.menu_video_secure); hideMenuItem(menu, R.id.menu_video_secure);
@ -1223,7 +1223,7 @@ public class ConversationActivity extends PassphraseRequiredActivity
@NonNull Recipient recipient) @NonNull Recipient recipient)
{ {
IconCompat icon = IconCompat.createWithAdaptiveBitmap(bitmap); IconCompat icon = IconCompat.createWithAdaptiveBitmap(bitmap);
String name = recipient.isLocalNumber() ? context.getString(R.string.note_to_self) String name = recipient.isSelf() ? context.getString(R.string.note_to_self)
: recipient.getDisplayName(context); : recipient.getDisplayName(context);
ShortcutInfoCompat shortcutInfoCompat = new ShortcutInfoCompat.Builder(context, recipient.getId().serialize() + '-' + System.currentTimeMillis()) ShortcutInfoCompat shortcutInfoCompat = new ShortcutInfoCompat.Builder(context, recipient.getId().serialize() + '-' + System.currentTimeMillis())
@ -2400,7 +2400,7 @@ public class ConversationActivity extends PassphraseRequiredActivity
if (!TextSecurePreferences.isPushRegistered(this)) return false; if (!TextSecurePreferences.isPushRegistered(this)) return false;
if (recipient.get().isGroup()) return false; if (recipient.get().isGroup()) return false;
return recipient.get().isLocalNumber(); return recipient.get().isSelf();
} }
private boolean isGroupConversation() { private boolean isGroupConversation() {

View File

@ -24,7 +24,6 @@ import org.thoughtcrime.securesms.mms.GlideRequests;
import org.thoughtcrime.securesms.recipients.LiveRecipient; import org.thoughtcrime.securesms.recipients.LiveRecipient;
import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.util.ExpirationUtil; import org.thoughtcrime.securesms.util.ExpirationUtil;
import org.thoughtcrime.securesms.util.FeatureFlags;
import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.Util;
import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.ViewUtil;
@ -97,7 +96,7 @@ public class ConversationTitleView extends RelativeLayout {
startDrawable = R.drawable.ic_volume_off_white_18dp; startDrawable = R.drawable.ic_volume_off_white_18dp;
} }
if (recipient != null && recipient.isSystemContact() && !recipient.isLocalNumber()) { if (recipient != null && recipient.isSystemContact() && !recipient.isSelf()) {
endDrawable = R.drawable.ic_profile_circle_outline_16; endDrawable = R.drawable.ic_profile_circle_outline_16;
} }
@ -125,7 +124,7 @@ public class ConversationTitleView extends RelativeLayout {
private void setRecipientTitle(Recipient recipient) { private void setRecipientTitle(Recipient recipient) {
if (recipient.isGroup()) setGroupRecipientTitle(recipient); if (recipient.isGroup()) setGroupRecipientTitle(recipient);
else if (recipient.isLocalNumber()) setSelfTitle(); else if (recipient.isSelf()) setSelfTitle();
else setIndividualRecipientTitle(recipient); else setIndividualRecipientTitle(recipient);
} }
@ -145,8 +144,8 @@ public class ConversationTitleView extends RelativeLayout {
private void setGroupRecipientTitle(Recipient recipient) { private void setGroupRecipientTitle(Recipient recipient) {
this.title.setText(recipient.getDisplayName(getContext())); this.title.setText(recipient.getDisplayName(getContext()));
this.subtitle.setText(Stream.of(recipient.getParticipants()) this.subtitle.setText(Stream.of(recipient.getParticipants())
.sorted((a, b) -> Boolean.compare(a.isLocalNumber(), b.isLocalNumber())) .sorted((a, b) -> Boolean.compare(a.isSelf(), b.isSelf()))
.map(r -> r.isLocalNumber() ? getResources().getString(R.string.ConversationTitleView_you) .map(r -> r.isSelf() ? getResources().getString(R.string.ConversationTitleView_you)
: r.getDisplayName(getContext())) : r.getDisplayName(getContext()))
.collect(Collectors.joining(", "))); .collect(Collectors.joining(", ")));

View File

@ -171,7 +171,7 @@ public final class ConversationListItem extends RelativeLayout
this.recipient.observeForever(this); this.recipient.observeForever(this);
if (highlightSubstring != null) { if (highlightSubstring != null) {
String name = recipient.get().isLocalNumber() ? getContext().getString(R.string.note_to_self) : recipient.get().getDisplayName(getContext()); String name = recipient.get().isSelf() ? getContext().getString(R.string.note_to_self) : recipient.get().getDisplayName(getContext());
this.fromView.setText(SearchUtil.getHighlightedSpan(locale, () -> new StyleSpan(Typeface.BOLD), name, highlightSubstring)); this.fromView.setText(SearchUtil.getHighlightedSpan(locale, () -> new StyleSpan(Typeface.BOLD), name, highlightSubstring));
} else { } else {

View File

@ -305,7 +305,7 @@ public final class GroupDatabase extends Database {
for (RecipientId member : currentMembers) { for (RecipientId member : currentMembers) {
Recipient resolved = Recipient.resolved(member); Recipient resolved = Recipient.resolved(member);
if (memberSet.includeSelf || !resolved.isLocalNumber()) { if (memberSet.includeSelf || !resolved.isSelf()) {
recipients.add(resolved); recipients.add(resolved);
} }
} }

View File

@ -1414,7 +1414,7 @@ public class MmsDatabase extends MessageDatabase {
AttachmentDatabase partsDatabase = DatabaseFactory.getAttachmentDatabase(context); AttachmentDatabase partsDatabase = DatabaseFactory.getAttachmentDatabase(context);
MentionDatabase mentionDatabase = DatabaseFactory.getMentionDatabase(context); MentionDatabase mentionDatabase = DatabaseFactory.getMentionDatabase(context);
boolean mentionsSelf = Stream.of(mentions).filter(m -> Recipient.resolved(m.getRecipientId()).isLocalNumber()).findFirst().isPresent(); boolean mentionsSelf = Stream.of(mentions).filter(m -> Recipient.resolved(m.getRecipientId()).isSelf()).findFirst().isPresent();
List<Attachment> allAttachments = new LinkedList<>(); List<Attachment> allAttachments = new LinkedList<>();
List<Attachment> contactAttachments = Stream.of(sharedContacts).map(Contact::getAvatarAttachment).filter(a -> a != null).toList(); List<Attachment> contactAttachments = Stream.of(sharedContacts).map(Contact::getAvatarAttachment).filter(a -> a != null).toList();

View File

@ -151,8 +151,8 @@ public class MmsSmsDatabase extends Database {
MessageRecord messageRecord; MessageRecord messageRecord;
while ((messageRecord = reader.getNext()) != null) { while ((messageRecord = reader.getNext()) != null) {
if ((Recipient.resolved(author).isLocalNumber() && messageRecord.isOutgoing()) || if ((Recipient.resolved(author).isSelf() && messageRecord.isOutgoing()) ||
(!Recipient.resolved(author).isLocalNumber() && messageRecord.getIndividualRecipient().getId().equals(author))) (!Recipient.resolved(author).isSelf() && messageRecord.getIndividualRecipient().getId().equals(author)))
{ {
return messageRecord; return messageRecord;
} }
@ -345,7 +345,7 @@ public class MmsSmsDatabase extends Database {
String selection = MmsSmsColumns.THREAD_ID + " = " + threadId + " AND " + MmsSmsColumns.REMOTE_DELETED + " = 0"; String selection = MmsSmsColumns.THREAD_ID + " = " + threadId + " AND " + MmsSmsColumns.REMOTE_DELETED + " = 0";
try (Cursor cursor = queryTables(new String[]{ MmsSmsColumns.NORMALIZED_DATE_SENT, MmsSmsColumns.RECIPIENT_ID}, selection, order, null)) { try (Cursor cursor = queryTables(new String[]{ MmsSmsColumns.NORMALIZED_DATE_SENT, MmsSmsColumns.RECIPIENT_ID}, selection, order, null)) {
boolean isOwnNumber = Recipient.resolved(recipientId).isLocalNumber(); boolean isOwnNumber = Recipient.resolved(recipientId).isSelf();
while (cursor != null && cursor.moveToNext()) { while (cursor != null && cursor.moveToNext()) {
boolean quoteIdMatches = cursor.getLong(0) == quoteId; boolean quoteIdMatches = cursor.getLong(0) == quoteId;
@ -364,7 +364,7 @@ public class MmsSmsDatabase extends Database {
String selection = MmsSmsColumns.THREAD_ID + " = " + threadId + " AND " + MmsSmsColumns.REMOTE_DELETED + " = 0"; String selection = MmsSmsColumns.THREAD_ID + " = " + threadId + " AND " + MmsSmsColumns.REMOTE_DELETED + " = 0";
try (Cursor cursor = queryTables(new String[]{ MmsSmsColumns.NORMALIZED_DATE_RECEIVED, MmsSmsColumns.RECIPIENT_ID}, selection, order, null)) { try (Cursor cursor = queryTables(new String[]{ MmsSmsColumns.NORMALIZED_DATE_RECEIVED, MmsSmsColumns.RECIPIENT_ID}, selection, order, null)) {
boolean isOwnNumber = Recipient.resolved(recipientId).isLocalNumber(); boolean isOwnNumber = Recipient.resolved(recipientId).isSelf();
while (cursor != null && cursor.moveToNext()) { while (cursor != null && cursor.moveToNext()) {
boolean timestampMatches = cursor.getLong(0) == receivedTimestamp; boolean timestampMatches = cursor.getLong(0) == receivedTimestamp;

View File

@ -2123,7 +2123,7 @@ public class RecipientDatabase extends Database {
} }
return Stream.of(recipientsWithinInteractionThreshold) return Stream.of(recipientsWithinInteractionThreshold)
.filterNot(Recipient::isLocalNumber) .filterNot(Recipient::isSelf)
.filter(r -> r.getLastProfileFetchTime() < lastProfileFetchThreshold) .filter(r -> r.getLastProfileFetchTime() < lastProfileFetchThreshold)
.limit(limit) .limit(limit)
.map(Recipient::getId) .map(Recipient::getId)

View File

@ -81,7 +81,7 @@ public final class GroupsV2CapabilityChecker {
Log.w(TAG, "At least one recipient does not support GV2, capability was " + gv2Capability); Log.w(TAG, "At least one recipient does not support GV2, capability was " + gv2Capability);
noGv2Count++; noGv2Count++;
if (member.isLocalNumber()) { if (member.isSelf()) {
noSelfGV2Support = true; noSelfGV2Support = true;
} }
} }

View File

@ -21,7 +21,6 @@ import org.thoughtcrime.securesms.database.GroupDatabase;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.groups.ui.GroupMemberEntry; import org.thoughtcrime.securesms.groups.ui.GroupMemberEntry;
import org.thoughtcrime.securesms.groups.v2.GroupInviteLinkUrl; import org.thoughtcrime.securesms.groups.v2.GroupInviteLinkUrl;
import org.thoughtcrime.securesms.groups.v2.GroupLinkPassword;
import org.thoughtcrime.securesms.groups.v2.GroupLinkUrlAndStatus; import org.thoughtcrime.securesms.groups.v2.GroupLinkUrlAndStatus;
import org.thoughtcrime.securesms.recipients.LiveRecipient; import org.thoughtcrime.securesms.recipients.LiveRecipient;
import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.Recipient;
@ -36,7 +35,7 @@ import java.util.List;
public final class LiveGroup { public final class LiveGroup {
private static final Comparator<GroupMemberEntry.FullMember> LOCAL_FIRST = (m1, m2) -> Boolean.compare(m2.getMember().isLocalNumber(), m1.getMember().isLocalNumber()); private static final Comparator<GroupMemberEntry.FullMember> LOCAL_FIRST = (m1, m2) -> Boolean.compare(m2.getMember().isSelf(), m1.getMember().isSelf());
private static final Comparator<GroupMemberEntry.FullMember> ADMIN_FIRST = (m1, m2) -> Boolean.compare(m2.isAdmin(), m1.isAdmin()); private static final Comparator<GroupMemberEntry.FullMember> ADMIN_FIRST = (m1, m2) -> Boolean.compare(m2.isAdmin(), m1.isAdmin());
private static final Comparator<GroupMemberEntry.FullMember> HAS_DISPLAY_NAME = (m1, m2) -> Boolean.compare(m2.getMember().hasAUserSetDisplayName(ApplicationDependencies.getApplication()), m1.getMember().hasAUserSetDisplayName(ApplicationDependencies.getApplication())); private static final Comparator<GroupMemberEntry.FullMember> HAS_DISPLAY_NAME = (m1, m2) -> Boolean.compare(m2.getMember().hasAUserSetDisplayName(ApplicationDependencies.getApplication()), m1.getMember().hasAUserSetDisplayName(ApplicationDependencies.getApplication()));
private static final Comparator<GroupMemberEntry.FullMember> ALPHABETICAL = (m1, m2) -> m1.getMember().getDisplayName(ApplicationDependencies.getApplication()).compareToIgnoreCase(m2.getMember().getDisplayName(ApplicationDependencies.getApplication())); private static final Comparator<GroupMemberEntry.FullMember> ALPHABETICAL = (m1, m2) -> m1.getMember().getDisplayName(ApplicationDependencies.getApplication()).compareToIgnoreCase(m2.getMember().getDisplayName(ApplicationDependencies.getApplication()));

View File

@ -18,7 +18,6 @@ import org.thoughtcrime.securesms.components.AvatarImageView;
import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.util.LifecycleRecyclerAdapter; import org.thoughtcrime.securesms.util.LifecycleRecyclerAdapter;
import org.thoughtcrime.securesms.util.LifecycleViewHolder; import org.thoughtcrime.securesms.util.LifecycleViewHolder;
import org.thoughtcrime.securesms.util.Util;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
@ -200,8 +199,8 @@ final class GroupMemberListAdapter extends LifecycleRecyclerAdapter<GroupMemberL
} }
void bindRecipient(@NonNull Recipient recipient) { void bindRecipient(@NonNull Recipient recipient) {
String displayName = recipient.isLocalNumber() ? context.getString(R.string.GroupMembersDialog_you) String displayName = recipient.isSelf() ? context.getString(R.string.GroupMembersDialog_you)
: recipient.getDisplayName(itemView.getContext()); : recipient.getDisplayName(itemView.getContext());
bindImageAndText(recipient, displayName); bindImageAndText(recipient, displayName);
} }

View File

@ -13,7 +13,6 @@ import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil;
import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.MessageDatabase; import org.thoughtcrime.securesms.database.MessageDatabase;
import org.thoughtcrime.securesms.database.MessageDatabase.SyncMessageId; import org.thoughtcrime.securesms.database.MessageDatabase.SyncMessageId;
import org.thoughtcrime.securesms.database.MmsDatabase;
import org.thoughtcrime.securesms.database.NoSuchMessageException; import org.thoughtcrime.securesms.database.NoSuchMessageException;
import org.thoughtcrime.securesms.database.RecipientDatabase.UnidentifiedAccessMode; import org.thoughtcrime.securesms.database.RecipientDatabase.UnidentifiedAccessMode;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
@ -132,7 +131,7 @@ public class PushMediaSendJob extends PushSendJob {
markAttachmentsUploaded(messageId, message.getAttachments()); markAttachmentsUploaded(messageId, message.getAttachments());
database.markUnidentified(messageId, unidentified); database.markUnidentified(messageId, unidentified);
if (recipient.isLocalNumber()) { if (recipient.isSelf()) {
SyncMessageId id = new SyncMessageId(recipient.getId(), message.getSentTimeMillis()); SyncMessageId id = new SyncMessageId(recipient.getId(), message.getSentTimeMillis());
DatabaseFactory.getMmsSmsDatabase(context).incrementDeliveryReceiptCount(id, System.currentTimeMillis()); DatabaseFactory.getMmsSmsDatabase(context).incrementDeliveryReceiptCount(id, System.currentTimeMillis());
DatabaseFactory.getMmsSmsDatabase(context).incrementReadReceiptCount(id, System.currentTimeMillis()); DatabaseFactory.getMmsSmsDatabase(context).incrementReadReceiptCount(id, System.currentTimeMillis());

View File

@ -1202,7 +1202,7 @@ public final class PushProcessMessageJob extends BaseJob {
message.getMessage().getExpiresInSeconds() * 1000L); message.getMessage().getExpiresInSeconds() * 1000L);
} }
if (recipients.isLocalNumber()) { if (recipients.isSelf()) {
SyncMessageId id = new SyncMessageId(recipients.getId(), message.getTimestamp()); SyncMessageId id = new SyncMessageId(recipients.getId(), message.getTimestamp());
DatabaseFactory.getMmsSmsDatabase(context).incrementDeliveryReceiptCount(id, System.currentTimeMillis()); DatabaseFactory.getMmsSmsDatabase(context).incrementDeliveryReceiptCount(id, System.currentTimeMillis());
DatabaseFactory.getMmsSmsDatabase(context).incrementReadReceiptCount(id, System.currentTimeMillis()); DatabaseFactory.getMmsSmsDatabase(context).incrementReadReceiptCount(id, System.currentTimeMillis());
@ -1360,7 +1360,7 @@ public final class PushProcessMessageJob extends BaseJob {
.scheduleDeletion(messageId, isGroup, message.getExpirationStartTimestamp(), expiresInMillis); .scheduleDeletion(messageId, isGroup, message.getExpirationStartTimestamp(), expiresInMillis);
} }
if (recipient.isLocalNumber()) { if (recipient.isSelf()) {
SyncMessageId id = new SyncMessageId(recipient.getId(), message.getTimestamp()); SyncMessageId id = new SyncMessageId(recipient.getId(), message.getTimestamp());
DatabaseFactory.getMmsSmsDatabase(context).incrementDeliveryReceiptCount(id, System.currentTimeMillis()); DatabaseFactory.getMmsSmsDatabase(context).incrementDeliveryReceiptCount(id, System.currentTimeMillis());
DatabaseFactory.getMmsSmsDatabase(context).incrementReadReceiptCount(id, System.currentTimeMillis()); DatabaseFactory.getMmsSmsDatabase(context).incrementReadReceiptCount(id, System.currentTimeMillis());

View File

@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.jobs;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import org.thoughtcrime.securesms.database.Database;
import org.thoughtcrime.securesms.database.MessageDatabase; import org.thoughtcrime.securesms.database.MessageDatabase;
import org.thoughtcrime.securesms.database.MessageDatabase.SyncMessageId; import org.thoughtcrime.securesms.database.MessageDatabase.SyncMessageId;
import org.thoughtcrime.securesms.database.RecipientDatabase.UnidentifiedAccessMode; import org.thoughtcrime.securesms.database.RecipientDatabase.UnidentifiedAccessMode;
@ -11,7 +10,6 @@ import org.thoughtcrime.securesms.ApplicationContext;
import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil;
import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.NoSuchMessageException; import org.thoughtcrime.securesms.database.NoSuchMessageException;
import org.thoughtcrime.securesms.database.SmsDatabase;
import org.thoughtcrime.securesms.database.model.SmsMessageRecord; import org.thoughtcrime.securesms.database.model.SmsMessageRecord;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.jobmanager.Data; import org.thoughtcrime.securesms.jobmanager.Data;
@ -94,7 +92,7 @@ public class PushTextSendJob extends PushSendJob {
database.markAsSent(messageId, true); database.markAsSent(messageId, true);
database.markUnidentified(messageId, unidentified); database.markUnidentified(messageId, unidentified);
if (recipient.isLocalNumber()) { if (recipient.isSelf()) {
SyncMessageId id = new SyncMessageId(recipient.getId(), record.getDateSent()); SyncMessageId id = new SyncMessageId(recipient.getId(), record.getDateSent());
DatabaseFactory.getMmsSmsDatabase(context).incrementDeliveryReceiptCount(id, System.currentTimeMillis()); DatabaseFactory.getMmsSmsDatabase(context).incrementDeliveryReceiptCount(id, System.currentTimeMillis());
DatabaseFactory.getMmsSmsDatabase(context).incrementReadReceiptCount(id, System.currentTimeMillis()); DatabaseFactory.getMmsSmsDatabase(context).incrementReadReceiptCount(id, System.currentTimeMillis());

View File

@ -114,7 +114,7 @@ public class RetrieveProfileJob extends BaseJob {
public static @NonNull Job forRecipient(@NonNull RecipientId recipientId) { public static @NonNull Job forRecipient(@NonNull RecipientId recipientId) {
Recipient recipient = Recipient.resolved(recipientId); Recipient recipient = Recipient.resolved(recipientId);
if (recipient.isLocalNumber()) { if (recipient.isSelf()) {
return new RefreshOwnProfileJob(); return new RefreshOwnProfileJob();
} else if (recipient.isGroup()) { } else if (recipient.isGroup()) {
Context context = ApplicationDependencies.getApplication(); Context context = ApplicationDependencies.getApplication();
@ -140,7 +140,7 @@ public class RetrieveProfileJob extends BaseJob {
for (RecipientId recipientId : recipientIds) { for (RecipientId recipientId : recipientIds) {
Recipient recipient = Recipient.resolved(recipientId); Recipient recipient = Recipient.resolved(recipientId);
if (recipient.isLocalNumber()) { if (recipient.isSelf()) {
includeSelf = true; includeSelf = true;
} else if (recipient.isGroup()) { } else if (recipient.isGroup()) {
List<Recipient> recipients = DatabaseFactory.getGroupDatabase(context).getGroupMembers(recipient.requireGroupId(), GroupDatabase.MemberSet.FULL_MEMBERS_EXCLUDING_SELF); List<Recipient> recipients = DatabaseFactory.getGroupDatabase(context).getGroupMembers(recipient.requireGroupId(), GroupDatabase.MemberSet.FULL_MEMBERS_EXCLUDING_SELF);
@ -427,7 +427,7 @@ public class RetrieveProfileJob extends BaseJob {
if (!recipient.isBlocked() && if (!recipient.isBlocked() &&
!recipient.isGroup() && !recipient.isGroup() &&
!recipient.isLocalNumber() && !recipient.isSelf() &&
!localDisplayName.isEmpty() && !localDisplayName.isEmpty() &&
!remoteDisplayName.equals(localDisplayName)) !remoteDisplayName.equals(localDisplayName))
{ {
@ -435,7 +435,7 @@ public class RetrieveProfileJob extends BaseJob {
DatabaseFactory.getSmsDatabase(context).insertProfileNameChangeMessages(recipient, remoteDisplayName, localDisplayName); DatabaseFactory.getSmsDatabase(context).insertProfileNameChangeMessages(recipient, remoteDisplayName, localDisplayName);
} else { } else {
Log.i(TAG, String.format(Locale.US, "Name changed, but wasn't relevant to write an event. blocked: %s, group: %s, self: %s, firstSet: %s, displayChange: %s", Log.i(TAG, String.format(Locale.US, "Name changed, but wasn't relevant to write an event. blocked: %s, group: %s, self: %s, firstSet: %s, displayChange: %s",
recipient.isBlocked(), recipient.isGroup(), recipient.isLocalNumber(), localDisplayName.isEmpty(), !remoteDisplayName.equals(localDisplayName))); recipient.isBlocked(), recipient.isGroup(), recipient.isSelf(), localDisplayName.isEmpty(), !remoteDisplayName.equals(localDisplayName)));
} }
} }

View File

@ -383,18 +383,18 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter {
} }
private String getSentFromToString(@NonNull Recipient from, @NonNull Recipient thread) { private String getSentFromToString(@NonNull Recipient from, @NonNull Recipient thread) {
if (from.isLocalNumber() && from == thread) { if (from.isSelf() && from == thread) {
return context.getString(R.string.note_to_self); return context.getString(R.string.note_to_self);
} }
if (showThread && (from.isLocalNumber() || thread.isGroup())) { if (showThread && (from.isSelf() || thread.isGroup())) {
if (from.isLocalNumber()) { if (from.isSelf()) {
return context.getString(R.string.MediaOverviewActivity_sent_by_you_to_s, thread.getDisplayName(context)); return context.getString(R.string.MediaOverviewActivity_sent_by_you_to_s, thread.getDisplayName(context));
} else { } else {
return context.getString(R.string.MediaOverviewActivity_sent_by_s_to_s, from.getDisplayName(context), thread.getDisplayName(context)); return context.getString(R.string.MediaOverviewActivity_sent_by_s_to_s, from.getDisplayName(context), thread.getDisplayName(context));
} }
} else { } else {
if (from.isLocalNumber()) { if (from.isSelf()) {
return context.getString(R.string.MediaOverviewActivity_sent_by_you); return context.getString(R.string.MediaOverviewActivity_sent_by_you);
} else { } else {
return context.getString(R.string.MediaOverviewActivity_sent_by_s, from.getDisplayName(context)); return context.getString(R.string.MediaOverviewActivity_sent_by_s, from.getDisplayName(context));

View File

@ -64,7 +64,6 @@ import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.scribbles.ImageEditorFragment; import org.thoughtcrime.securesms.scribbles.ImageEditorFragment;
import org.thoughtcrime.securesms.util.CharacterCalculator.CharacterState; import org.thoughtcrime.securesms.util.CharacterCalculator.CharacterState;
import org.thoughtcrime.securesms.util.FeatureFlags;
import org.thoughtcrime.securesms.util.Function3; import org.thoughtcrime.securesms.util.Function3;
import org.thoughtcrime.securesms.util.IOFunction; import org.thoughtcrime.securesms.util.IOFunction;
import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.MediaUtil;
@ -829,7 +828,7 @@ public class MediaSendActivity extends PassphraseRequiredActivity implements Med
private void presentRecipient(@Nullable Recipient recipient) { private void presentRecipient(@Nullable Recipient recipient) {
if (recipient == null) { if (recipient == null) {
composeText.setHint(R.string.MediaSendActivity_message); composeText.setHint(R.string.MediaSendActivity_message);
} else if (recipient.isLocalNumber()) { } else if (recipient.isSelf()) {
composeText.setHint(getString(R.string.note_to_self), null); composeText.setHint(getString(R.string.note_to_self), null);
} else { } else {
composeText.setHint(getString(R.string.MediaSendActivity_message_to_s, recipient.getDisplayName(this)), null); composeText.setHint(getString(R.string.MediaSendActivity_message_to_s, recipient.getDisplayName(this)), null);

View File

@ -601,7 +601,7 @@ class MediaSendViewModel extends ViewModel {
} }
private boolean viewOnceSupported() { private boolean viewOnceSupported() {
return !isSms && (recipient == null || !recipient.isLocalNumber()) && mediaSupportsRevealableMessage(getSelectedMediaOrDefault()); return !isSms && (recipient == null || !recipient.isSelf()) && mediaSupportsRevealableMessage(getSelectedMediaOrDefault());
} }
private boolean mediaSupportsRevealableMessage(@NonNull List<Media> media) { private boolean mediaSupportsRevealableMessage(@NonNull List<Media> media) {

View File

@ -60,7 +60,7 @@ final class ReactionRecipientsAdapter extends RecyclerView.Adapter<ReactionRecip
void bind(@NonNull ReactionDetails reaction) { void bind(@NonNull ReactionDetails reaction) {
this.emoji.setText(reaction.getDisplayEmoji()); this.emoji.setText(reaction.getDisplayEmoji());
if (reaction.getSender().isLocalNumber()) { if (reaction.getSender().isSelf()) {
this.recipient.setText(R.string.ReactionsRecipientAdapter_you); this.recipient.setText(R.string.ReactionsRecipientAdapter_you);
this.avatar.setAvatar(GlideApp.with(avatar), null, false); this.avatar.setAvatar(GlideApp.with(avatar), null, false);
AvatarUtil.loadIconIntoImageView(reaction.getSender(), avatar); AvatarUtil.loadIconIntoImageView(reaction.getSender(), avatar);

View File

@ -55,7 +55,7 @@ public class ReactionsViewModel extends ViewModel {
private @NonNull String getCountDisplayEmoji(@NonNull List<ReactionDetails> reactions) { private @NonNull String getCountDisplayEmoji(@NonNull List<ReactionDetails> reactions) {
for (ReactionDetails reaction : reactions) { for (ReactionDetails reaction : reactions) {
if (reaction.getSender().isLocalNumber()) { if (reaction.getSender().isSelf()) {
return reaction.getDisplayEmoji(); return reaction.getDisplayEmoji();
} }
} }

View File

@ -24,7 +24,6 @@ import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto;
import org.thoughtcrime.securesms.contacts.avatars.SystemContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.SystemContactPhoto;
import org.thoughtcrime.securesms.contacts.avatars.TransparentContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.TransparentContactPhoto;
import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.IdentityDatabase.VerifiedStatus;
import org.thoughtcrime.securesms.database.RecipientDatabase; import org.thoughtcrime.securesms.database.RecipientDatabase;
import org.thoughtcrime.securesms.database.RecipientDatabase.MentionSetting; import org.thoughtcrime.securesms.database.RecipientDatabase.MentionSetting;
import org.thoughtcrime.securesms.database.RecipientDatabase.RegisteredState; import org.thoughtcrime.securesms.database.RecipientDatabase.RegisteredState;
@ -73,7 +72,7 @@ public class Recipient {
private final GroupId groupId; private final GroupId groupId;
private final List<Recipient> participants; private final List<Recipient> participants;
private final Optional<Long> groupAvatarId; private final Optional<Long> groupAvatarId;
private final boolean localNumber; private final boolean isSelf;
private final boolean blocked; private final boolean blocked;
private final long muteUntil; private final long muteUntil;
private final VibrateState messageVibrate; private final VibrateState messageVibrate;
@ -286,7 +285,7 @@ public class Recipient {
this.groupId = null; this.groupId = null;
this.participants = Collections.emptyList(); this.participants = Collections.emptyList();
this.groupAvatarId = Optional.absent(); this.groupAvatarId = Optional.absent();
this.localNumber = false; this.isSelf = false;
this.blocked = false; this.blocked = false;
this.muteUntil = 0; this.muteUntil = 0;
this.messageVibrate = VibrateState.DEFAULT; this.messageVibrate = VibrateState.DEFAULT;
@ -328,7 +327,7 @@ public class Recipient {
this.groupId = details.groupId; this.groupId = details.groupId;
this.participants = details.participants; this.participants = details.participants;
this.groupAvatarId = details.groupAvatarId; this.groupAvatarId = details.groupAvatarId;
this.localNumber = details.isLocalNumber; this.isSelf = details.isSelf;
this.blocked = details.blocked; this.blocked = details.blocked;
this.muteUntil = details.mutedUntil; this.muteUntil = details.mutedUntil;
this.messageVibrate = details.messageVibrateState; this.messageVibrate = details.messageVibrateState;
@ -364,8 +363,8 @@ public class Recipient {
return id; return id;
} }
public boolean isLocalNumber() { public boolean isSelf() {
return localNumber; return isSelf;
} }
public @Nullable Uri getContactUri() { public @Nullable Uri getContactUri() {
@ -418,8 +417,8 @@ public class Recipient {
} }
public @NonNull String getMentionDisplayName(@NonNull Context context) { public @NonNull String getMentionDisplayName(@NonNull Context context) {
String name = Util.getFirstNonEmpty(localNumber ? getProfileName().toString() : getName(context), String name = Util.getFirstNonEmpty(isSelf ? getProfileName().toString() : getName(context),
localNumber ? getName(context) : getProfileName().toString(), isSelf ? getName(context) : getProfileName().toString(),
e164, e164,
email, email,
context.getString(R.string.Recipient_unknown)); context.getString(R.string.Recipient_unknown));
@ -630,7 +629,7 @@ public class Recipient {
} }
public boolean isActiveGroup() { public boolean isActiveGroup() {
return Stream.of(getParticipants()).anyMatch(Recipient::isLocalNumber); return Stream.of(getParticipants()).anyMatch(Recipient::isSelf);
} }
public @NonNull List<Recipient> getParticipants() { public @NonNull List<Recipient> getParticipants() {
@ -658,7 +657,7 @@ public class Recipient {
} }
public @NonNull FallbackContactPhoto getFallbackContactPhoto(@NonNull FallbackPhotoProvider fallbackPhotoProvider) { public @NonNull FallbackContactPhoto getFallbackContactPhoto(@NonNull FallbackPhotoProvider fallbackPhotoProvider) {
if (localNumber) return fallbackPhotoProvider.getPhotoForLocalNumber(); if (isSelf) return fallbackPhotoProvider.getPhotoForLocalNumber();
else if (isResolving()) return fallbackPhotoProvider.getPhotoForResolvingRecipient(); else if (isResolving()) return fallbackPhotoProvider.getPhotoForResolvingRecipient();
else if (isGroupInternal()) return fallbackPhotoProvider.getPhotoForGroup(); else if (isGroupInternal()) return fallbackPhotoProvider.getPhotoForGroup();
else if (isGroup()) return fallbackPhotoProvider.getPhotoForGroup(); else if (isGroup()) return fallbackPhotoProvider.getPhotoForGroup();
@ -667,7 +666,7 @@ public class Recipient {
} }
public @Nullable ContactPhoto getContactPhoto() { public @Nullable ContactPhoto getContactPhoto() {
if (localNumber) return null; if (isSelf) return null;
else if (isGroupInternal() && groupAvatarId.isPresent()) return new GroupRecordContactPhoto(groupId, groupAvatarId.get()); else if (isGroupInternal() && groupAvatarId.isPresent()) return new GroupRecordContactPhoto(groupId, groupAvatarId.get());
else if (systemContactPhoto != null) return new SystemContactPhoto(id, systemContactPhoto, 0); else if (systemContactPhoto != null) return new SystemContactPhoto(id, systemContactPhoto, 0);
else if (profileAvatar != null && hasProfileImage) return new ProfileContactPhoto(this, profileAvatar); else if (profileAvatar != null && hasProfileImage) return new ProfileContactPhoto(this, profileAvatar);

View File

@ -8,8 +8,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import org.thoughtcrime.securesms.color.MaterialColor; import org.thoughtcrime.securesms.color.MaterialColor;
import org.thoughtcrime.securesms.database.IdentityDatabase.VerifiedStatus;
import org.thoughtcrime.securesms.database.RecipientDatabase;
import org.thoughtcrime.securesms.database.RecipientDatabase.InsightsBannerTier; import org.thoughtcrime.securesms.database.RecipientDatabase.InsightsBannerTier;
import org.thoughtcrime.securesms.database.RecipientDatabase.MentionSetting; import org.thoughtcrime.securesms.database.RecipientDatabase.MentionSetting;
import org.thoughtcrime.securesms.database.RecipientDatabase.RecipientSettings; import org.thoughtcrime.securesms.database.RecipientDatabase.RecipientSettings;
@ -17,7 +15,6 @@ import org.thoughtcrime.securesms.database.RecipientDatabase.RegisteredState;
import org.thoughtcrime.securesms.database.RecipientDatabase.UnidentifiedAccessMode; import org.thoughtcrime.securesms.database.RecipientDatabase.UnidentifiedAccessMode;
import org.thoughtcrime.securesms.database.RecipientDatabase.VibrateState; import org.thoughtcrime.securesms.database.RecipientDatabase.VibrateState;
import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.groups.GroupId;
import org.thoughtcrime.securesms.profiles.AvatarHelper;
import org.thoughtcrime.securesms.profiles.ProfileName; import org.thoughtcrime.securesms.profiles.ProfileName;
import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.Util;
@ -58,7 +55,7 @@ public class RecipientDetails {
final boolean profileSharing; final boolean profileSharing;
final long lastProfileFetch; final long lastProfileFetch;
final boolean systemContact; final boolean systemContact;
final boolean isLocalNumber; final boolean isSelf;
final String notificationChannel; final String notificationChannel;
final UnidentifiedAccessMode unidentifiedAccessMode; final UnidentifiedAccessMode unidentifiedAccessMode;
final boolean forceSmsSelection; final boolean forceSmsSelection;
@ -71,7 +68,7 @@ public class RecipientDetails {
public RecipientDetails(@Nullable String name, public RecipientDetails(@Nullable String name,
@NonNull Optional<Long> groupAvatarId, @NonNull Optional<Long> groupAvatarId,
boolean systemContact, boolean systemContact,
boolean isLocalNumber, boolean isSelf,
@NonNull RecipientSettings settings, @NonNull RecipientSettings settings,
@Nullable List<Recipient> participants) @Nullable List<Recipient> participants)
{ {
@ -103,7 +100,7 @@ public class RecipientDetails {
this.profileSharing = settings.isProfileSharing(); this.profileSharing = settings.isProfileSharing();
this.lastProfileFetch = settings.getLastProfileFetch(); this.lastProfileFetch = settings.getLastProfileFetch();
this.systemContact = systemContact; this.systemContact = systemContact;
this.isLocalNumber = isLocalNumber; this.isSelf = isSelf;
this.notificationChannel = settings.getNotificationChannel(); this.notificationChannel = settings.getNotificationChannel();
this.unidentifiedAccessMode = settings.getUnidentifiedAccessMode(); this.unidentifiedAccessMode = settings.getUnidentifiedAccessMode();
this.forceSmsSelection = settings.isForceSmsSelection(); this.forceSmsSelection = settings.isForceSmsSelection();
@ -150,7 +147,7 @@ public class RecipientDetails {
this.profileSharing = false; this.profileSharing = false;
this.lastProfileFetch = 0; this.lastProfileFetch = 0;
this.systemContact = true; this.systemContact = true;
this.isLocalNumber = false; this.isSelf = false;
this.notificationChannel = null; this.notificationChannel = null;
this.unidentifiedAccessMode = UnidentifiedAccessMode.UNKNOWN; this.unidentifiedAccessMode = UnidentifiedAccessMode.UNKNOWN;
this.forceSmsSelection = false; this.forceSmsSelection = false;
@ -163,9 +160,9 @@ public class RecipientDetails {
public static @NonNull RecipientDetails forIndividual(@NonNull Context context, @NonNull RecipientSettings settings) { public static @NonNull RecipientDetails forIndividual(@NonNull Context context, @NonNull RecipientSettings settings) {
boolean systemContact = !TextUtils.isEmpty(settings.getSystemDisplayName()); boolean systemContact = !TextUtils.isEmpty(settings.getSystemDisplayName());
boolean isLocalNumber = (settings.getE164() != null && settings.getE164().equals(TextSecurePreferences.getLocalNumber(context))) || boolean isSelf = (settings.getE164() != null && settings.getE164().equals(TextSecurePreferences.getLocalNumber(context))) ||
(settings.getUuid() != null && settings.getUuid().equals(TextSecurePreferences.getLocalUuid(context))); (settings.getUuid() != null && settings.getUuid().equals(TextSecurePreferences.getLocalUuid(context)));
return new RecipientDetails(null, Optional.absent(), systemContact, isLocalNumber, settings, null); return new RecipientDetails(null, Optional.absent(), systemContact, isSelf, settings, null);
} }
} }

View File

@ -23,7 +23,6 @@ import org.thoughtcrime.securesms.jobs.RotateProfileKeyJob;
import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.storage.StorageSyncHelper; import org.thoughtcrime.securesms.storage.StorageSyncHelper;
import org.thoughtcrime.securesms.util.FeatureFlags;
import org.whispersystems.libsignal.util.guava.Optional; import org.whispersystems.libsignal.util.guava.Optional;
import org.whispersystems.signalservice.api.push.SignalServiceAddress; import org.whispersystems.signalservice.api.push.SignalServiceAddress;
@ -253,7 +252,7 @@ public class RecipientUtil {
} }
public static boolean isLegacyProfileSharingAccepted(@NonNull Recipient threadRecipient) { public static boolean isLegacyProfileSharingAccepted(@NonNull Recipient threadRecipient) {
return threadRecipient.isLocalNumber() || return threadRecipient.isSelf() ||
threadRecipient.isProfileSharing() || threadRecipient.isProfileSharing() ||
threadRecipient.isSystemContact() || threadRecipient.isSystemContact() ||
!threadRecipient.isRegistered() || !threadRecipient.isRegistered() ||
@ -262,7 +261,7 @@ public class RecipientUtil {
@WorkerThread @WorkerThread
private static boolean isMessageRequestAccepted(@NonNull Context context, long threadId, @NonNull Recipient threadRecipient) { private static boolean isMessageRequestAccepted(@NonNull Context context, long threadId, @NonNull Recipient threadRecipient) {
return threadRecipient.isLocalNumber() || return threadRecipient.isSelf() ||
threadRecipient.isProfileSharing() || threadRecipient.isProfileSharing() ||
threadRecipient.isSystemContact() || threadRecipient.isSystemContact() ||
threadRecipient.isForceSmsSelection() || threadRecipient.isForceSmsSelection() ||

View File

@ -139,24 +139,24 @@ public final class RecipientBottomSheetDialogFragment extends BottomSheetDialogF
} }
}); });
avatar.setAvatar(recipient); avatar.setAvatar(recipient);
if (recipient.isLocalNumber()) { if (recipient.isSelf()) {
avatar.setOnClickListener(v -> { avatar.setOnClickListener(v -> {
dismiss(); dismiss();
viewModel.onMessageClicked(requireActivity()); viewModel.onMessageClicked(requireActivity());
}); });
} }
String name = recipient.isLocalNumber() ? requireContext().getString(R.string.note_to_self) String name = recipient.isSelf() ? requireContext().getString(R.string.note_to_self)
: recipient.getDisplayName(requireContext()); : recipient.getDisplayName(requireContext());
fullName.setText(name); fullName.setText(name);
fullName.setVisibility(TextUtils.isEmpty(name) ? View.GONE : View.VISIBLE); fullName.setVisibility(TextUtils.isEmpty(name) ? View.GONE : View.VISIBLE);
if (recipient.isSystemContact() && !recipient.isLocalNumber()) { if (recipient.isSystemContact() && !recipient.isSelf()) {
fullName.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, R.drawable.ic_profile_circle_outline_16, 0); fullName.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, R.drawable.ic_profile_circle_outline_16, 0);
fullName.setCompoundDrawablePadding(ViewUtil.dpToPx(4)); fullName.setCompoundDrawablePadding(ViewUtil.dpToPx(4));
TextViewCompat.setCompoundDrawableTintList(fullName, ColorStateList.valueOf(ThemeUtil.getThemedColor(requireContext(), R.attr.title_text_color_primary))); TextViewCompat.setCompoundDrawableTintList(fullName, ColorStateList.valueOf(ThemeUtil.getThemedColor(requireContext(), R.attr.title_text_color_primary)));
} }
String usernameNumberString = recipient.hasAUserSetDisplayName(requireContext()) && !recipient.isLocalNumber() String usernameNumberString = recipient.hasAUserSetDisplayName(requireContext()) && !recipient.isSelf()
? recipient.getSmsAddress().or("").trim() ? recipient.getSmsAddress().or("").trim()
: ""; : "";
usernameNumber.setText(usernameNumberString); usernameNumber.setText(usernameNumberString);
@ -168,24 +168,24 @@ public final class RecipientBottomSheetDialogFragment extends BottomSheetDialogF
return true; return true;
}); });
noteToSelfDescription.setVisibility(recipient.isLocalNumber() ? View.VISIBLE : View.GONE); noteToSelfDescription.setVisibility(recipient.isSelf() ? View.VISIBLE : View.GONE);
if (RecipientUtil.isBlockable(recipient)) { if (RecipientUtil.isBlockable(recipient)) {
boolean blocked = recipient.isBlocked(); boolean blocked = recipient.isBlocked();
blockButton .setVisibility(recipient.isLocalNumber() || blocked ? View.GONE : View.VISIBLE); blockButton .setVisibility(recipient.isSelf() || blocked ? View.GONE : View.VISIBLE);
unblockButton.setVisibility(recipient.isLocalNumber() || !blocked ? View.GONE : View.VISIBLE); unblockButton.setVisibility(recipient.isSelf() || !blocked ? View.GONE : View.VISIBLE);
} else { } else {
blockButton .setVisibility(View.GONE); blockButton .setVisibility(View.GONE);
unblockButton.setVisibility(View.GONE); unblockButton.setVisibility(View.GONE);
} }
messageButton.setVisibility(!recipient.isLocalNumber() ? View.VISIBLE : View.GONE); messageButton.setVisibility(!recipient.isSelf() ? View.VISIBLE : View.GONE);
secureCallButton.setVisibility(recipient.isRegistered() && !recipient.isLocalNumber() ? View.VISIBLE : View.GONE); secureCallButton.setVisibility(recipient.isRegistered() && !recipient.isSelf() ? View.VISIBLE : View.GONE);
insecureCallButton.setVisibility(!recipient.isRegistered() && !recipient.isLocalNumber() ? View.VISIBLE : View.GONE); insecureCallButton.setVisibility(!recipient.isRegistered() && !recipient.isSelf() ? View.VISIBLE : View.GONE);
secureVideoCallButton.setVisibility(recipient.isRegistered() && !recipient.isLocalNumber() ? View.VISIBLE : View.GONE); secureVideoCallButton.setVisibility(recipient.isRegistered() && !recipient.isSelf() ? View.VISIBLE : View.GONE);
if (recipient.isSystemContact() || recipient.isGroup() || recipient.isLocalNumber()) { if (recipient.isSystemContact() || recipient.isGroup() || recipient.isSelf()) {
addContactButton.setVisibility(View.GONE); addContactButton.setVisibility(View.GONE);
} else { } else {
addContactButton.setVisibility(View.VISIBLE); addContactButton.setVisibility(View.VISIBLE);

View File

@ -84,7 +84,7 @@ final class RecipientDialogViewModel extends ViewModel {
MutableLiveData<Integer> localGroupCount = new MutableLiveData<>(0); MutableLiveData<Integer> localGroupCount = new MutableLiveData<>(0);
canAddToAGroup = LiveDataUtil.combineLatest(recipient, localGroupCount, canAddToAGroup = LiveDataUtil.combineLatest(recipient, localGroupCount,
(r, count) -> count > 0 && r.isRegistered() && !r.isGroup() && !r.isLocalNumber()); (r, count) -> count > 0 && r.isRegistered() && !r.isGroup() && !r.isSelf());
recipientDialogRepository.getActiveGroupCount(localGroupCount::postValue); recipientDialogRepository.getActiveGroupCount(localGroupCount::postValue);
} }

View File

@ -317,9 +317,9 @@ public class ManageRecipientFragment extends LoggingFragment {
colorChip.setImageDrawable(new ColorStateDrawable(colorDrawable, color)); colorChip.setImageDrawable(new ColorStateDrawable(colorDrawable, color));
colorRow.setOnClickListener(v -> handleColorSelection(color)); colorRow.setOnClickListener(v -> handleColorSelection(color));
secureCallButton.setVisibility(recipient.isRegistered() && !recipient.isLocalNumber() ? View.VISIBLE : View.GONE); secureCallButton.setVisibility(recipient.isRegistered() && !recipient.isSelf() ? View.VISIBLE : View.GONE);
insecureCallButton.setVisibility(!recipient.isRegistered() && !recipient.isLocalNumber() ? View.VISIBLE : View.GONE); insecureCallButton.setVisibility(!recipient.isRegistered() && !recipient.isSelf() ? View.VISIBLE : View.GONE);
secureVideoCallButton.setVisibility(recipient.isRegistered() && !recipient.isLocalNumber() ? View.VISIBLE : View.GONE); secureVideoCallButton.setVisibility(recipient.isRegistered() && !recipient.isSelf() ? View.VISIBLE : View.GONE);
} }
private void presentMediaCursor(ManageRecipientViewModel.MediaCursor mediaCursor) { private void presentMediaCursor(ManageRecipientViewModel.MediaCursor mediaCursor) {

View File

@ -109,13 +109,13 @@ public final class ManageRecipientViewModel extends ViewModel {
this.canAddToAGroup = LiveDataUtil.combineLatest(recipient, this.canAddToAGroup = LiveDataUtil.combineLatest(recipient,
localGroupCount, localGroupCount,
(r, count) -> count > 0 && r.isRegistered() && !r.isGroup() && !r.isLocalNumber()); (r, count) -> count > 0 && r.isRegistered() && !r.isGroup() && !r.isSelf());
manageRecipientRepository.getActiveGroupCount(localGroupCount::postValue); manageRecipientRepository.getActiveGroupCount(localGroupCount::postValue);
} }
private static @NonNull String getDisplayTitle(@NonNull Recipient recipient, @NonNull Context context) { private static @NonNull String getDisplayTitle(@NonNull Recipient recipient, @NonNull Context context) {
if (recipient.isLocalNumber()) { if (recipient.isSelf()) {
return context.getString(R.string.note_to_self); return context.getString(R.string.note_to_self);
} else { } else {
return recipient.getDisplayName(context); return recipient.getDisplayName(context);
@ -123,7 +123,7 @@ public final class ManageRecipientViewModel extends ViewModel {
} }
private static @NonNull String getDisplaySubtitle(@NonNull Recipient recipient, @NonNull Context context) { private static @NonNull String getDisplaySubtitle(@NonNull Recipient recipient, @NonNull Context context) {
if (!recipient.isLocalNumber() && recipient.hasAUserSetDisplayName(context)) { if (!recipient.isSelf() && recipient.hasAUserSetDisplayName(context)) {
return recipient.getSmsAddress().or("").trim(); return recipient.getSmsAddress().or("").trim();
} else { } else {
return ""; return "";

View File

@ -34,11 +34,9 @@ import org.thoughtcrime.securesms.attachments.DatabaseAttachment;
import org.thoughtcrime.securesms.contacts.sync.DirectoryHelper; import org.thoughtcrime.securesms.contacts.sync.DirectoryHelper;
import org.thoughtcrime.securesms.contactshare.Contact; import org.thoughtcrime.securesms.contactshare.Contact;
import org.thoughtcrime.securesms.database.AttachmentDatabase; import org.thoughtcrime.securesms.database.AttachmentDatabase;
import org.thoughtcrime.securesms.database.Database;
import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.MessageDatabase; import org.thoughtcrime.securesms.database.MessageDatabase;
import org.thoughtcrime.securesms.database.MessageDatabase.SyncMessageId; import org.thoughtcrime.securesms.database.MessageDatabase.SyncMessageId;
import org.thoughtcrime.securesms.database.MmsDatabase;
import org.thoughtcrime.securesms.database.MmsSmsDatabase; import org.thoughtcrime.securesms.database.MmsSmsDatabase;
import org.thoughtcrime.securesms.database.NoSuchMessageException; import org.thoughtcrime.securesms.database.NoSuchMessageException;
import org.thoughtcrime.securesms.database.RecipientDatabase; import org.thoughtcrime.securesms.database.RecipientDatabase;
@ -461,7 +459,7 @@ public class MessageSender {
public static boolean isLocalSelfSend(@NonNull Context context, @Nullable Recipient recipient, boolean forceSms) { public static boolean isLocalSelfSend(@NonNull Context context, @Nullable Recipient recipient, boolean forceSms) {
return recipient != null && return recipient != null &&
recipient.isLocalNumber() && recipient.isSelf() &&
!forceSms && !forceSms &&
TextSecurePreferences.isPushRegistered(context) && TextSecurePreferences.isPushRegistered(context) &&
!TextSecurePreferences.isMultiDevice(context); !TextSecurePreferences.isMultiDevice(context);

View File

@ -128,6 +128,6 @@ public class AttachmentUtil {
return recipient.isSystemContact() || return recipient.isSystemContact() ||
recipient.isProfileSharing() || recipient.isProfileSharing() ||
message.isOutgoing() || message.isOutgoing() ||
recipient.isLocalNumber(); recipient.isSelf();
} }
} }

View File

@ -18,14 +18,14 @@ public final class RemoteDeleteUtil {
private RemoteDeleteUtil() {} private RemoteDeleteUtil() {}
public static boolean isValidReceive(@NonNull MessageRecord targetMessage, @NonNull Recipient deleteSender, long deleteServerTimestamp) { public static boolean isValidReceive(@NonNull MessageRecord targetMessage, @NonNull Recipient deleteSender, long deleteServerTimestamp) {
boolean isValidIncomingOutgoing = (deleteSender.isLocalNumber() && targetMessage.isOutgoing()) || boolean isValidIncomingOutgoing = (deleteSender.isSelf() && targetMessage.isOutgoing()) ||
(!deleteSender.isLocalNumber() && !targetMessage.isOutgoing()); (!deleteSender.isSelf() && !targetMessage.isOutgoing());
boolean isValidSender = targetMessage.getIndividualRecipient().equals(deleteSender) || boolean isValidSender = targetMessage.getIndividualRecipient().equals(deleteSender) ||
deleteSender.isLocalNumber() && targetMessage.isOutgoing(); deleteSender.isSelf() && targetMessage.isOutgoing();
long messageTimestamp = deleteSender.isLocalNumber() && targetMessage.isOutgoing() ? targetMessage.getDateSent() long messageTimestamp = deleteSender.isSelf() && targetMessage.isOutgoing() ? targetMessage.getDateSent()
: targetMessage.getServerTimestamp(); : targetMessage.getServerTimestamp();
return isValidIncomingOutgoing && return isValidIncomingOutgoing &&
isValidSender && isValidSender &&
@ -41,7 +41,7 @@ public final class RemoteDeleteUtil {
return message.isOutgoing() && return message.isOutgoing() &&
message.isPush() && message.isPush() &&
(!message.getRecipient().isGroup() || message.getRecipient().isActiveGroup()) && (!message.getRecipient().isGroup() || message.getRecipient().isActiveGroup()) &&
!message.getRecipient().isLocalNumber() && !message.getRecipient().isSelf() &&
!message.isRemoteDelete() && !message.isRemoteDelete() &&
(currentTime - message.getDateSent()) < SEND_THRESHOLD; (currentTime - message.getDateSent()) < SEND_THRESHOLD;
} }