From 14f9a3c1552876e6e5d3690c23235d078f1d43ef Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 22 Jul 2022 16:25:39 -0300 Subject: [PATCH] Ensure sent group stories are included in the My Stories item. --- .../securesms/database/MmsDatabase.java | 3 ++- .../securesms/database/model/StoryResult.kt | 3 ++- .../landing/StoriesLandingRepository.kt | 25 ++++++++++++------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MmsDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/MmsDatabase.java index b8d431616b..5cfbdae1de 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MmsDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MmsDatabase.java @@ -829,7 +829,8 @@ public class MmsDatabase extends MessageDatabase { while (cursor.moveToNext()) { results.add(new StoryResult(RecipientId.from(CursorUtil.requireLong(cursor, ThreadDatabase.RECIPIENT_ID)), CursorUtil.requireLong(cursor, "mms_id"), - CursorUtil.requireLong(cursor, "sent_timestamp"))); + CursorUtil.requireLong(cursor, "sent_timestamp"), + CursorUtil.requireBoolean(cursor, "is_outgoing"))); } return results; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/model/StoryResult.kt b/app/src/main/java/org/thoughtcrime/securesms/database/model/StoryResult.kt index 9df014f023..0697e5039e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/model/StoryResult.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/model/StoryResult.kt @@ -5,5 +5,6 @@ import org.thoughtcrime.securesms.recipients.RecipientId class StoryResult( val recipientId: RecipientId, val messageId: Long, - val messageSentTimestamp: Long + val messageSentTimestamp: Long, + val isOutgoing: Boolean ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingRepository.kt index 7a8199c748..725775b606 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingRepository.kt @@ -34,16 +34,23 @@ class StoriesLandingRepository(context: Context) { val myStoriesId = SignalDatabase.recipients.getOrInsertFromDistributionListId(DistributionListId.MY_STORY) val myStories = Recipient.resolved(myStoriesId) - emitter.onNext( - SignalDatabase.mms.orderedStoryRecipientsAndIds.groupBy { - val recipient = Recipient.resolved(it.recipientId) - if (recipient.isDistributionList) { - myStories - } else { - recipient - } + val stories = SignalDatabase.mms.orderedStoryRecipientsAndIds + val mapping: MutableMap> = mutableMapOf() + + stories.forEach { + val recipient = Recipient.resolved(it.recipientId) + if (recipient.isDistributionList || it.isOutgoing) { + 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 {