mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-19 16:19:33 +01:00
Integrate contact hiding with message requests.
This commit is contained in:
@@ -24,12 +24,13 @@ data class ConversationData(
|
||||
|
||||
data class MessageRequestData @JvmOverloads constructor(
|
||||
val isMessageRequestAccepted: Boolean,
|
||||
val isHidden: Boolean,
|
||||
private val groupsInCommon: Boolean = false,
|
||||
val isGroup: Boolean = false
|
||||
) {
|
||||
|
||||
fun includeWarningUpdateMessage(): Boolean {
|
||||
return !isMessageRequestAccepted && !groupsInCommon
|
||||
return !isMessageRequestAccepted && !groupsInCommon && !isHidden
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,6 +71,7 @@ public class ConversationDataSource implements PagedDataSource<MessageId, Conver
|
||||
long startTime = System.currentTimeMillis();
|
||||
int size = getSizeInternal() +
|
||||
(messageRequestData.includeWarningUpdateMessage() ? 1 : 0) +
|
||||
(messageRequestData.isHidden() ? 1 : 0) +
|
||||
(showUniversalExpireTimerUpdate ? 1 : 0);
|
||||
|
||||
Log.d(TAG, "[size(), thread " + threadId + "] " + (System.currentTimeMillis() - startTime) + " ms");
|
||||
@@ -124,6 +125,10 @@ public class ConversationDataSource implements PagedDataSource<MessageId, Conver
|
||||
records.add(new InMemoryMessageRecord.NoGroupsInCommon(threadId, messageRequestData.isGroup()));
|
||||
}
|
||||
|
||||
if (messageRequestData.isHidden() && (start + length >= size())) {
|
||||
records.add(new InMemoryMessageRecord.RemovedContactHidden(threadId));
|
||||
}
|
||||
|
||||
if (showUniversalExpireTimerUpdate) {
|
||||
records.add(new InMemoryMessageRecord.UniversalExpireTimerUpdate(threadId));
|
||||
}
|
||||
|
||||
@@ -65,7 +65,8 @@ class ConversationRepository {
|
||||
long lastScrolled = metadata.getLastScrolled();
|
||||
int lastScrolledPosition = 0;
|
||||
boolean isMessageRequestAccepted = RecipientUtil.isMessageRequestAccepted(context, threadId);
|
||||
ConversationData.MessageRequestData messageRequestData = new ConversationData.MessageRequestData(isMessageRequestAccepted);
|
||||
boolean isConversationHidden = RecipientUtil.isRecipientHidden(threadId);
|
||||
ConversationData.MessageRequestData messageRequestData = new ConversationData.MessageRequestData(isMessageRequestAccepted, isConversationHidden);
|
||||
boolean showUniversalExpireTimerUpdate = false;
|
||||
|
||||
if (lastSeen > 0) {
|
||||
@@ -98,7 +99,7 @@ class ConversationRepository {
|
||||
} else if (conversationRecipient.hasGroupsInCommon()) {
|
||||
recipientIsKnownOrHasGroupsInCommon = true;
|
||||
}
|
||||
messageRequestData = new ConversationData.MessageRequestData(isMessageRequestAccepted, recipientIsKnownOrHasGroupsInCommon, isGroup);
|
||||
messageRequestData = new ConversationData.MessageRequestData(isMessageRequestAccepted, isConversationHidden, recipientIsKnownOrHasGroupsInCommon, isGroup);
|
||||
}
|
||||
|
||||
if (SignalStore.settings().getUniversalExpireTimer() != 0 &&
|
||||
|
||||
Reference in New Issue
Block a user