kopia lustrzana https://github.com/ryukoposting/Signal-Android
Hide bottom nav when viewing archived conversations.
rodzic
0a07800eba
commit
24f59b0a17
|
@ -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()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
Ładowanie…
Reference in New Issue