Hide bottom nav when viewing archived conversations.

fork-5.53.8
Alex Hart 2022-04-13 13:57:15 -03:00 zatwierdzone przez Greyson Parrelli
rodzic 0a07800eba
commit 24f59b0a17
4 zmienionych plików z 12 dodań i 16 usunięć

Wyświetl plik

@ -89,20 +89,12 @@ class MainActivityListHostFragment : Fragment(R.layout.main_activity_list_host_f
val controller: NavController = requireView().findViewById<View>(R.id.fragment_container).findNavController()
when (controller.currentDestination?.id) {
R.id.conversationListFragment -> goToStateFromConversationList(state, controller)
R.id.conversationListArchiveFragment -> goToStateFromConversationArchiveList(state, controller)
R.id.conversationListArchiveFragment -> Unit
R.id.storiesLandingFragment -> goToStateFromStories(state, controller)
}
}
}
private fun goToStateFromConversationArchiveList(state: ConversationListTabsState, navController: NavController) {
if (state.tab == ConversationListTab.CHATS) {
return
} else {
navController.navigate(R.id.action_conversationListArchiveFragment_to_storiesLandingFragment)
}
}
private fun goToStateFromConversationList(state: ConversationListTabsState, navController: NavController) {
if (state.tab == ConversationListTab.CHATS) {
return
@ -300,12 +292,15 @@ class MainActivityListHostFragment : Fragment(R.layout.main_activity_list_host_f
override fun onDestinationChanged(controller: NavController, destination: NavDestination, arguments: Bundle?) {
when (destination.id) {
R.id.conversationListFragment -> {
conversationListTabsViewModel.isShowingArchived(false)
presentToolbarForConversationListFragment()
}
R.id.conversationListArchiveFragment -> {
conversationListTabsViewModel.isShowingArchived(true)
presentToolbarForConversationListArchiveFragment()
}
R.id.storiesLandingFragment -> {
conversationListTabsViewModel.isShowingArchived(false)
presentToolbarForStoriesLandingFragment()
}
}

Wyświetl plik

@ -8,10 +8,11 @@ data class ConversationListTabsState(
) {
data class VisibilityState(
val isSearchOpen: Boolean = false,
val isMultiSelectOpen: Boolean = false
val isMultiSelectOpen: Boolean = false,
val isShowingArchived: Boolean = false
) {
fun isVisible(): Boolean {
return !isSearchOpen && !isMultiSelectOpen
return !isSearchOpen && !isMultiSelectOpen && !isShowingArchived
}
}
}

Wyświetl plik

@ -52,6 +52,10 @@ class ConversationListTabsViewModel(repository: ConversationListTabRepository) :
store.update { it.copy(visibilityState = it.visibilityState.copy(isMultiSelectOpen = false)) }
}
fun isShowingArchived(isShowingArchived: Boolean) {
store.update { it.copy(visibilityState = it.visibilityState.copy(isShowingArchived = isShowingArchived)) }
}
class Factory(private val repository: ConversationListTabRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return modelClass.cast(ConversationListTabsViewModel(repository)) as T

Wyświetl plik

@ -19,11 +19,7 @@
<fragment
android:id="@+id/conversationListArchiveFragment"
android:name="org.thoughtcrime.securesms.conversationlist.ConversationListArchiveFragment"
android:label="conversation_list_archive_fragment" >
<action
android:id="@+id/action_conversationListArchiveFragment_to_storiesLandingFragment"
app:destination="@id/storiesLandingFragment" />
</fragment>
android:label="conversation_list_archive_fragment" />
<fragment
android:id="@+id/storiesLandingFragment"