diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageRepository.kt index b97baaad9a..b9d79ff25a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageRepository.kt @@ -172,7 +172,7 @@ class StoryViewerPageRepository(context: Context) { } private fun getContent(record: MmsMessageRecord): StoryPost.Content { - return if (record.storyType.isTextStory) { + return if (record.storyType.isTextStory || record.slideDeck.asAttachments().isEmpty()) { StoryPost.Content.TextContent( uri = Uri.parse("story_text_post://${record.id}"), recordId = record.id diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/text/StoryTextPostViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/text/StoryTextPostViewModel.kt index 33744ae3ea..6bca2e1377 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/text/StoryTextPostViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/text/StoryTextPostViewModel.kt @@ -18,24 +18,28 @@ class StoryTextPostViewModel(recordId: Long, repository: StoryTextPostRepository val state: LiveData = store.stateLiveData init { - disposables += repository.getRecord(recordId).subscribeBy( - onSuccess = { record -> - store.update { state -> - state.copy( - storyTextPost = StoryTextPost.parseFrom(Base64.decode(record.body)), - linkPreview = record.linkPreviews.firstOrNull(), - loadState = StoryTextPostState.LoadState.LOADED - ) - } - }, - onError = { - store.update { state -> - state.copy( - loadState = StoryTextPostState.LoadState.FAILED - ) - } + disposables += repository.getRecord(recordId) + .map { record -> + StoryTextPost.parseFrom(Base64.decode(record.body)) to record.linkPreviews.firstOrNull() } - ) + .subscribeBy( + onSuccess = { (post, previews) -> + store.update { state -> + state.copy( + storyTextPost = post, + linkPreview = previews, + loadState = StoryTextPostState.LoadState.LOADED + ) + } + }, + onError = { + store.update { state -> + state.copy( + loadState = StoryTextPostState.LoadState.FAILED + ) + } + } + ) } override fun onCleared() {