Ensure sent group stories are included in the My Stories item.

fork-5.53.8
Alex Hart 2022-07-22 16:25:39 -03:00 zatwierdzone przez Cody Henthorne
rodzic b32fe003b2
commit 14f9a3c155
3 zmienionych plików z 20 dodań i 11 usunięć

Wyświetl plik

@ -829,7 +829,8 @@ public class MmsDatabase extends MessageDatabase {
while (cursor.moveToNext()) { while (cursor.moveToNext()) {
results.add(new StoryResult(RecipientId.from(CursorUtil.requireLong(cursor, ThreadDatabase.RECIPIENT_ID)), results.add(new StoryResult(RecipientId.from(CursorUtil.requireLong(cursor, ThreadDatabase.RECIPIENT_ID)),
CursorUtil.requireLong(cursor, "mms_id"), CursorUtil.requireLong(cursor, "mms_id"),
CursorUtil.requireLong(cursor, "sent_timestamp"))); CursorUtil.requireLong(cursor, "sent_timestamp"),
CursorUtil.requireBoolean(cursor, "is_outgoing")));
} }
return results; return results;

Wyświetl plik

@ -5,5 +5,6 @@ import org.thoughtcrime.securesms.recipients.RecipientId
class StoryResult( class StoryResult(
val recipientId: RecipientId, val recipientId: RecipientId,
val messageId: Long, val messageId: Long,
val messageSentTimestamp: Long val messageSentTimestamp: Long,
val isOutgoing: Boolean
) )

Wyświetl plik

@ -34,16 +34,23 @@ class StoriesLandingRepository(context: Context) {
val myStoriesId = SignalDatabase.recipients.getOrInsertFromDistributionListId(DistributionListId.MY_STORY) val myStoriesId = SignalDatabase.recipients.getOrInsertFromDistributionListId(DistributionListId.MY_STORY)
val myStories = Recipient.resolved(myStoriesId) val myStories = Recipient.resolved(myStoriesId)
emitter.onNext( val stories = SignalDatabase.mms.orderedStoryRecipientsAndIds
SignalDatabase.mms.orderedStoryRecipientsAndIds.groupBy { val mapping: MutableMap<Recipient, List<StoryResult>> = mutableMapOf()
val recipient = Recipient.resolved(it.recipientId)
if (recipient.isDistributionList) { stories.forEach {
myStories val recipient = Recipient.resolved(it.recipientId)
} else { if (recipient.isDistributionList || it.isOutgoing) {
recipient val list = mapping[myStories] ?: emptyList()
} mapping[myStories] = list + it
} }
)
if (!recipient.isDistributionList) {
val list = mapping[recipient] ?: emptyList()
mapping[recipient] = list + it
}
}
emitter.onNext(mapping)
} }
val observer = DatabaseObserver.Observer { val observer = DatabaseObserver.Observer {