From 73b55fd975e4bae7580716f9013f2c2aa0d38d8f Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 19 Jun 2019 10:47:55 +0200 Subject: [PATCH] Group navigation cleanup --- .../im/vector/riotredesign/features/home/HomeNavigator.kt | 4 ++-- .../riotredesign/features/home/group/GroupListFragment.kt | 4 ++-- .../features/home/group/GroupListViewModel.kt | 4 +++- vector/src/main/res/layout/fragment_group_list.xml | 8 ++++---- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/vector/src/main/java/im/vector/riotredesign/features/home/HomeNavigator.kt b/vector/src/main/java/im/vector/riotredesign/features/home/HomeNavigator.kt index e46fd7f59e..5d6216041d 100644 --- a/vector/src/main/java/im/vector/riotredesign/features/home/HomeNavigator.kt +++ b/vector/src/main/java/im/vector/riotredesign/features/home/HomeNavigator.kt @@ -34,9 +34,10 @@ class HomeNavigator { fun openSelectedGroup(groupSummary: GroupSummary) { Timber.v("Open selected group ${groupSummary.groupId}") activity?.let { + it.drawerLayout?.closeDrawer(GravityCompat.START) + val args = HomeDetailParams(groupSummary.groupId, groupSummary.displayName, groupSummary.avatarUrl) val homeDetailFragment = HomeDetailFragment.newInstance(args) - it.drawerLayout?.closeDrawer(GravityCompat.START) it.replaceFragment(homeDetailFragment, R.id.homeDetailFragmentContainer) } } @@ -47,7 +48,6 @@ class HomeNavigator { Timber.v("Open room detail $roomId - $eventId") activity?.let { //TODO enable eventId permalink. It doesn't work enough at the moment. - it.drawerLayout?.closeDrawer(GravityCompat.START) navigator.openRoom(roomId, it) } } diff --git a/vector/src/main/java/im/vector/riotredesign/features/home/group/GroupListFragment.kt b/vector/src/main/java/im/vector/riotredesign/features/home/group/GroupListFragment.kt index ba65cf72c5..8709cd35e2 100644 --- a/vector/src/main/java/im/vector/riotredesign/features/home/group/GroupListFragment.kt +++ b/vector/src/main/java/im/vector/riotredesign/features/home/group/GroupListFragment.kt @@ -46,8 +46,8 @@ class GroupListFragment : VectorBaseFragment(), GroupSummaryController.Callback override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) groupController.callback = this - stateView.contentView = epoxyRecyclerView - epoxyRecyclerView.setController(groupController) + stateView.contentView = groupListEpoxyRecyclerView + groupListEpoxyRecyclerView.setController(groupController) viewModel.subscribe { renderState(it) } viewModel.openGroupLiveData.observeEvent(this) { homeNavigator.openSelectedGroup(it) diff --git a/vector/src/main/java/im/vector/riotredesign/features/home/group/GroupListViewModel.kt b/vector/src/main/java/im/vector/riotredesign/features/home/group/GroupListViewModel.kt index c06cbe5e4a..4b15ac71a0 100644 --- a/vector/src/main/java/im/vector/riotredesign/features/home/group/GroupListViewModel.kt +++ b/vector/src/main/java/im/vector/riotredesign/features/home/group/GroupListViewModel.kt @@ -84,7 +84,8 @@ class GroupListViewModel(initialState: GroupListViewState, private fun observeGroupSummaries() { session - .rx().liveGroupSummaries() + .rx() + .liveGroupSummaries() .map { val myUser = session.getUser(session.sessionParams.credentials.userId) val allCommunityGroup = GroupSummary( @@ -94,6 +95,7 @@ class GroupListViewModel(initialState: GroupListViewState, listOf(allCommunityGroup) + it } .execute { async -> + // TODO Phase2 Handle the case where the selected group is deleted on another client val newSelectedGroup = selectedGroup ?: async()?.firstOrNull() copy(asyncGroups = async, selectedGroup = newSelectedGroup) } diff --git a/vector/src/main/res/layout/fragment_group_list.xml b/vector/src/main/res/layout/fragment_group_list.xml index 810fe3e47b..5548eacc98 100644 --- a/vector/src/main/res/layout/fragment_group_list.xml +++ b/vector/src/main/res/layout/fragment_group_list.xml @@ -1,14 +1,14 @@ - - + android:layout_height="match_parent" + tools:listitem="@layout/item_group" />