diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt index 56e77b524e..2548e6acc0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt @@ -77,7 +77,7 @@ class StoriesLandingFragment : viewModel.state.observe(viewLifecycleOwner) { adapter.submitList(getConfiguration(it).toMappingModelList()) - emptyNotice.visible = it.storiesLandingItems.isEmpty() + emptyNotice.visible = it.hasNoStories } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingState.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingState.kt index 2f01659a5b..f82d9a1c7b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingState.kt @@ -3,5 +3,13 @@ package org.thoughtcrime.securesms.stories.landing data class StoriesLandingState( val storiesLandingItems: List = emptyList(), val displayMyStoryItem: Boolean = false, - val isHiddenContentVisible: Boolean = false -) + val isHiddenContentVisible: Boolean = false, + val loadingState: LoadingState = LoadingState.INIT +) { + enum class LoadingState { + INIT, + LOADED + } + + val hasNoStories: Boolean = loadingState == LoadingState.LOADED && storiesLandingItems.isEmpty() +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingViewModel.kt index 87025c2e17..2a11501f49 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingViewModel.kt @@ -19,6 +19,7 @@ class StoriesLandingViewModel(private val storiesLandingRepository: StoriesLandi disposables += storiesLandingRepository.getStories().subscribe { stories -> store.update { state -> state.copy( + loadingState = StoriesLandingState.LoadingState.LOADED, storiesLandingItems = stories.sorted(), displayMyStoryItem = stories.isEmpty() || stories.none { it.storyRecipient.isMyStory } )