Hide stories if feature is disabled.

This commit is contained in:
Alex Hart
2025-04-01 12:10:09 -03:00
parent 38dedae8dd
commit 681d38611d
4 changed files with 25 additions and 5 deletions

View File

@@ -87,6 +87,7 @@ data class MainNavigationState(
val callsCount: Int = 0,
val storiesCount: Int = 0,
val storyFailure: Boolean = false,
val isStoriesFeatureEnabled: Boolean = true,
val selectedDestination: MainNavigationDestination = MainNavigationDestination.CHATS,
val compact: Boolean = false
)
@@ -104,7 +105,15 @@ fun MainNavigationBar(
contentColor = MaterialTheme.colorScheme.onSurface,
modifier = Modifier.height(if (state.compact) 48.dp else 80.dp)
) {
MainNavigationDestination.entries.forEach { destination ->
val entries = remember(state.isStoriesFeatureEnabled) {
if (state.isStoriesFeatureEnabled) {
MainNavigationDestination.entries
} else {
MainNavigationDestination.entries.filterNot { it == MainNavigationDestination.STORIES }
}
}
entries.forEach { destination ->
val badgeCount = when (destination) {
MainNavigationDestination.CHATS -> state.chatsCount
@@ -241,7 +250,15 @@ fun MainNavigationRail(
}
}
) {
MainNavigationDestination.entries.forEachIndexed { idx, destination ->
val entries = remember(state.isStoriesFeatureEnabled) {
if (state.isStoriesFeatureEnabled) {
MainNavigationDestination.entries
} else {
MainNavigationDestination.entries.filterNot { it == MainNavigationDestination.STORIES }
}
}
entries.forEachIndexed { idx, destination ->
val selected = state.selectedDestination == destination
Box {

View File

@@ -35,7 +35,8 @@ class ConversationListTabsFragment : ComposeFragment() {
MainNavigationDestination.CALLS -> MainNavigationDestination.CALLS
MainNavigationDestination.STORIES -> MainNavigationDestination.STORIES
},
compact = state.compact
compact = state.compact,
isStoriesFeatureEnabled = state.isStoriesFeatureEnabled
)
}

View File

@@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.stories.tabs
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.main.MainNavigationDestination
import org.thoughtcrime.securesms.stories.Stories
data class ConversationListTabsState(
val tab: MainNavigationDestination = MainNavigationDestination.CHATS,
@@ -11,7 +12,8 @@ data class ConversationListTabsState(
val unreadStoriesCount: Long = 0L,
val hasFailedStory: Boolean = false,
val visibilityState: VisibilityState = VisibilityState(),
val compact: Boolean = SignalStore.settings.useCompactNavigationBar
val compact: Boolean = SignalStore.settings.useCompactNavigationBar,
val isStoriesFeatureEnabled: Boolean = Stories.isFeatureEnabled()
) {
data class VisibilityState(
val isSearchOpen: Boolean = false,

View File

@@ -51,7 +51,7 @@ class ConversationListTabsViewModel(startingTab: MainNavigationDestination, repo
}
fun refreshNavigationBarState() {
store.update { it.copy(compact = SignalStore.settings.useCompactNavigationBar) }
store.update { it.copy(compact = SignalStore.settings.useCompactNavigationBar, isStoriesFeatureEnabled = Stories.isFeatureEnabled()) }
}
override fun onCleared() {