mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 00:59:49 +01:00
Update message request states for 1:1 and groups chats.
This commit is contained in:
committed by
Greyson Parrelli
parent
20cecbd5cd
commit
886bebb088
@@ -47,7 +47,8 @@ import kotlin.Unit;
|
||||
|
||||
public final class MessageRequestRepository {
|
||||
|
||||
private static final String TAG = Log.tag(MessageRequestRepository.class);
|
||||
private static final String TAG = Log.tag(MessageRequestRepository.class);
|
||||
private static final int MIN_GROUPS_THRESHOLD = 2;
|
||||
|
||||
private final Context context;
|
||||
private final Executor executor;
|
||||
@@ -68,7 +69,7 @@ public final class MessageRequestRepository {
|
||||
if (groupRecord.get().isV2Group()) {
|
||||
List<Recipient> recipients = Recipient.resolvedList(groupRecord.get().getMembers());
|
||||
for (Recipient recipient : recipients) {
|
||||
if ((recipient.isProfileSharing() || recipient.getHasGroupsInCommon()) && !recipient.isSelf()) {
|
||||
if ((recipient.isProfileSharing() || recipient.isSystemContact()) && !recipient.isSelf()) {
|
||||
groupHasExistingContacts = true;
|
||||
break;
|
||||
}
|
||||
@@ -139,8 +140,11 @@ public final class MessageRequestRepository {
|
||||
} else {
|
||||
Recipient.HiddenState hiddenState = RecipientUtil.getRecipientHiddenState(threadId);
|
||||
boolean reportedAsSpam = reportedAsSpam(threadId);
|
||||
List<String> sharedGroups = SignalDatabase.groups().getPushGroupNamesContainingMember(recipient.getId());
|
||||
|
||||
if (hiddenState == Recipient.HiddenState.NOT_HIDDEN) {
|
||||
if (hiddenState == Recipient.HiddenState.NOT_HIDDEN && sharedGroups.size() < MIN_GROUPS_THRESHOLD) {
|
||||
return new MessageRequestState(MessageRequestState.State.INDIVIDUAL_FEW_CONNECTIONS, reportedAsSpam);
|
||||
} else if (hiddenState == Recipient.HiddenState.NOT_HIDDEN) {
|
||||
return new MessageRequestState(MessageRequestState.State.INDIVIDUAL, reportedAsSpam);
|
||||
} else if (hiddenState == Recipient.HiddenState.HIDDEN) {
|
||||
return new MessageRequestState(MessageRequestState.State.NONE_HIDDEN, reportedAsSpam);
|
||||
|
||||
@@ -19,6 +19,12 @@ data class MessageRequestState @JvmOverloads constructor(val state: State = Stat
|
||||
val isBlocked: Boolean
|
||||
get() = state == State.INDIVIDUAL_BLOCKED || state == State.BLOCKED_GROUP
|
||||
|
||||
val isFewConnectionsIndividual: Boolean
|
||||
get() = state == State.INDIVIDUAL_FEW_CONNECTIONS
|
||||
|
||||
val isGroupV2Add: Boolean
|
||||
get() = state == State.GROUP_V2_ADD
|
||||
|
||||
/**
|
||||
* An enum representing the possible message request states a user can be in.
|
||||
*/
|
||||
@@ -50,6 +56,9 @@ data class MessageRequestState @JvmOverloads constructor(val state: State = Stat
|
||||
/** A user is blocked */
|
||||
INDIVIDUAL_BLOCKED,
|
||||
|
||||
/** A message request and secondary confirmation is needed for an individual with less than 2 common groups */
|
||||
INDIVIDUAL_FEW_CONNECTIONS,
|
||||
|
||||
/** A message request is needed for an individual since they have been hidden */
|
||||
INDIVIDUAL_HIDDEN
|
||||
}
|
||||
|
||||
@@ -90,7 +90,8 @@ class MessageRequestsBottomView @JvmOverloads constructor(context: Context, attr
|
||||
accept.setText(R.string.MessageRequestBottomView_accept)
|
||||
}
|
||||
|
||||
MessageRequestState.State.INDIVIDUAL -> {
|
||||
MessageRequestState.State.INDIVIDUAL,
|
||||
MessageRequestState.State.INDIVIDUAL_FEW_CONNECTIONS -> {
|
||||
question.text = HtmlCompat.fromHtml(
|
||||
context.getString(
|
||||
R.string.MessageRequestBottomView_do_you_want_to_let_s_message_you_they_wont_know_youve_seen_their_messages_until_you_accept,
|
||||
|
||||
Reference in New Issue
Block a user