Fixes bottom sheet intermittently not having the correct height

This commit is contained in:
ericdecanini 2022-08-05 11:59:22 +02:00
parent ff71e69b0e
commit 0506c9abfd
3 changed files with 19 additions and 18 deletions

View File

@ -47,7 +47,7 @@ class NewSpaceSummaryController @Inject constructor(
override fun buildModels() { override fun buildModels() {
val nonNullViewState = viewState ?: return val nonNullViewState = viewState ?: return
buildGroupModels( buildGroupModels(
nonNullViewState.asyncSpaces(), nonNullViewState.spaces,
nonNullViewState.selectedSpace, nonNullViewState.selectedSpace,
nonNullViewState.rootSpacesOrdered, nonNullViewState.rootSpacesOrdered,
nonNullViewState.homeAggregateCount nonNullViewState.homeAggregateCount

View File

@ -257,29 +257,29 @@ class SpaceListViewModel @AssistedInject constructor(
} }
combine( combine(
session.flow() session.flow().liveSpaceSummaries(params),
.liveSpaceSummaries(params),
session.accountDataService() session.accountDataService()
.getLiveRoomAccountDataEvents(setOf(RoomAccountDataTypes.EVENT_TYPE_SPACE_ORDER)) .getLiveRoomAccountDataEvents(setOf(RoomAccountDataTypes.EVENT_TYPE_SPACE_ORDER))
.asFlow() .asFlow()
) { spaces, _ -> ) { spaces, _ ->
spaces spaces
}.execute { asyncSpaces ->
val spaces = asyncSpaces.invoke().orEmpty()
val rootSpaces = asyncSpaces.invoke().orEmpty().filter { it.flattenParentIds.isEmpty() }
val orders = rootSpaces.associate {
it.roomId to session.getRoom(it.roomId)
?.roomAccountDataService()
?.getAccountDataEvent(RoomAccountDataTypes.EVENT_TYPE_SPACE_ORDER)
?.content.toModel<SpaceOrderContent>()
?.safeOrder()
}
copy(
asyncSpaces = asyncSpaces,
spaces = spaces,
rootSpacesOrdered = rootSpaces.sortedWith(TopLevelSpaceComparator(orders)),
spaceOrderInfo = orders
)
} }
.execute { async ->
val rootSpaces = async.invoke().orEmpty().filter { it.flattenParentIds.isEmpty() }
val orders = rootSpaces.associate {
it.roomId to session.getRoom(it.roomId)
?.roomAccountDataService()
?.getAccountDataEvent(RoomAccountDataTypes.EVENT_TYPE_SPACE_ORDER)
?.content.toModel<SpaceOrderContent>()
?.safeOrder()
}
copy(
asyncSpaces = async,
rootSpacesOrdered = rootSpaces.sortedWith(TopLevelSpaceComparator(orders)),
spaceOrderInfo = orders
)
}
// clear local echos on update // clear local echos on update
session.accountDataService() session.accountDataService()

View File

@ -26,6 +26,7 @@ import org.matrix.android.sdk.api.util.MatrixItem
data class SpaceListViewState( data class SpaceListViewState(
val myMxItem: Async<MatrixItem.UserItem> = Uninitialized, val myMxItem: Async<MatrixItem.UserItem> = Uninitialized,
val asyncSpaces: Async<List<RoomSummary>> = Uninitialized, val asyncSpaces: Async<List<RoomSummary>> = Uninitialized,
val spaces: List<RoomSummary> = emptyList(),
val selectedSpace: RoomSummary? = null, val selectedSpace: RoomSummary? = null,
val rootSpacesOrdered: List<RoomSummary>? = null, val rootSpacesOrdered: List<RoomSummary>? = null,
val spaceOrderInfo: Map<String, String?>? = null, val spaceOrderInfo: Map<String, String?>? = null,