forked from GitHub-Mirror/riotX-android
Selection state should be tested through room id
This commit is contained in:
parent
7dc7b4b8eb
commit
e06d95b8e3
@ -79,7 +79,7 @@ class RoomListFragment : RiotFragment(), RoomSummaryController.Callback {
|
|||||||
|
|
||||||
override fun onRoomSelected(room: RoomSummary) {
|
override fun onRoomSelected(room: RoomSummary) {
|
||||||
withState(viewModel) {
|
withState(viewModel) {
|
||||||
if (it.selectedRoom != room) {
|
if (it.selectedRoom?.roomId != room.roomId) {
|
||||||
viewModel.accept(RoomListActions.SelectRoom(room))
|
viewModel.accept(RoomListActions.SelectRoom(room))
|
||||||
homeNavigator.openRoomDetail(room.roomId)
|
homeNavigator.openRoomDetail(room.roomId)
|
||||||
}
|
}
|
||||||
|
@ -7,14 +7,15 @@ import im.vector.matrix.android.api.session.room.model.RoomSummary
|
|||||||
|
|
||||||
data class RoomListViewState(
|
data class RoomListViewState(
|
||||||
val roomSummaries: Async<List<RoomSummary>> = Uninitialized,
|
val roomSummaries: Async<List<RoomSummary>> = Uninitialized,
|
||||||
val selectedRoom: RoomSummary? = null
|
val selectedRoom: RoomSummary? = null,
|
||||||
|
private var _showLastSelectedRoom: Boolean = true
|
||||||
) : MvRxState {
|
) : MvRxState {
|
||||||
|
|
||||||
var showLastSelectedRoom: Boolean = true
|
var showLastSelectedRoom: Boolean = _showLastSelectedRoom
|
||||||
private set
|
private set
|
||||||
get() {
|
get() {
|
||||||
if (field) {
|
if (_showLastSelectedRoom) {
|
||||||
field = false
|
_showLastSelectedRoom = false
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
@ -15,7 +15,7 @@ class RoomSummaryController(private val context: Context,
|
|||||||
RoomSummaryItem(
|
RoomSummaryItem(
|
||||||
title = it.displayName,
|
title = it.displayName,
|
||||||
avatarDrawable = roomSummaryViewHelper.avatarDrawable(context),
|
avatarDrawable = roomSummaryViewHelper.avatarDrawable(context),
|
||||||
isSelected = it == selected,
|
isSelected = it.roomId == selected?.roomId,
|
||||||
listener = { callback?.onRoomSelected(it) }
|
listener = { callback?.onRoomSelected(it) }
|
||||||
)
|
)
|
||||||
.id(it.roomId)
|
.id(it.roomId)
|
||||||
|
Loading…
Reference in New Issue
Block a user