mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-08 08:28:34 +00:00
Rename Recipient.isLocalNumber() to Recipient.isSelf()
This commit is contained in:
parent
5eaac6cb17
commit
ead64d92a5
@ -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();
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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 {
|
||||||
|
@ -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);
|
||||||
|
@ -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));
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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() {
|
||||||
|
@ -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(", ")));
|
||||||
|
|
||||||
|
@ -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 {
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
@ -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;
|
||||||
|
@ -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)
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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()));
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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());
|
||||||
|
@ -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());
|
||||||
|
@ -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());
|
||||||
|
@ -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)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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));
|
||||||
|
@ -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);
|
||||||
|
@ -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) {
|
||||||
|
@ -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);
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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() ||
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
|
@ -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 "";
|
||||||
|
@ -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);
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user