Skip to content

Commit 76314b9

Browse files
committed
Add sortOrder: RoomSortOrder parameter, with no API break
1 parent 9b75da5 commit 76314b9

File tree

5 files changed

+34
-22
lines changed

5 files changed

+34
-22
lines changed

matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/RoomService.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,15 @@ interface RoomService {
9494
* Get a snapshot list of room summaries.
9595
* @return the immutable list of [RoomSummary]
9696
*/
97-
fun getRoomSummaries(queryParams: RoomSummaryQueryParams): List<RoomSummary>
97+
fun getRoomSummaries(queryParams: RoomSummaryQueryParams,
98+
sortOrder: RoomSortOrder = RoomSortOrder.NONE): List<RoomSummary>
9899

99100
/**
100101
* Get a live list of room summaries. This list is refreshed as soon as the data changes.
101102
* @return the [LiveData] of List[RoomSummary]
102103
*/
103-
fun getRoomSummariesLive(queryParams: RoomSummaryQueryParams): LiveData<List<RoomSummary>>
104+
fun getRoomSummariesLive(queryParams: RoomSummaryQueryParams,
105+
sortOrder: RoomSortOrder = RoomSortOrder.ACTIVITY): LiveData<List<RoomSummary>>
104106

105107
/**
106108
* Get a snapshot list of Breadcrumbs

matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/space/SpaceService.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package org.matrix.android.sdk.api.session.space
1919
import android.net.Uri
2020
import androidx.lifecycle.LiveData
2121
import org.matrix.android.sdk.api.session.events.model.Event
22+
import org.matrix.android.sdk.api.session.room.RoomSortOrder
2223
import org.matrix.android.sdk.api.session.room.RoomSummaryQueryParams
2324
import org.matrix.android.sdk.api.session.room.model.RoomSummary
2425
import org.matrix.android.sdk.internal.session.space.peeking.SpacePeekResult
@@ -74,9 +75,11 @@ interface SpaceService {
7475
* Get a live list of space summaries. This list is refreshed as soon as the data changes.
7576
* @return the [LiveData] of List[SpaceSummary]
7677
*/
77-
fun getSpaceSummariesLive(queryParams: SpaceSummaryQueryParams): LiveData<List<RoomSummary>>
78+
fun getSpaceSummariesLive(queryParams: SpaceSummaryQueryParams,
79+
sortOrder: RoomSortOrder = RoomSortOrder.NONE): LiveData<List<RoomSummary>>
7880

79-
fun getSpaceSummaries(spaceSummaryQueryParams: SpaceSummaryQueryParams): List<RoomSummary>
81+
fun getSpaceSummaries(spaceSummaryQueryParams: SpaceSummaryQueryParams,
82+
sortOrder: RoomSortOrder = RoomSortOrder.NONE): List<RoomSummary>
8083

8184
suspend fun joinSpace(spaceIdOrAlias: String,
8285
reason: String? = null,

matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/DefaultRoomService.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,14 @@ internal class DefaultRoomService @Inject constructor(
8585
return roomSummaryDataSource.getRoomSummary(roomIdOrAlias)
8686
}
8787

88-
override fun getRoomSummaries(queryParams: RoomSummaryQueryParams): List<RoomSummary> {
89-
return roomSummaryDataSource.getRoomSummaries(queryParams)
88+
override fun getRoomSummaries(queryParams: RoomSummaryQueryParams,
89+
sortOrder: RoomSortOrder): List<RoomSummary> {
90+
return roomSummaryDataSource.getRoomSummaries(queryParams, sortOrder)
9091
}
9192

92-
override fun getRoomSummariesLive(queryParams: RoomSummaryQueryParams): LiveData<List<RoomSummary>> {
93-
return roomSummaryDataSource.getRoomSummariesLive(queryParams)
93+
override fun getRoomSummariesLive(queryParams: RoomSummaryQueryParams,
94+
sortOrder: RoomSortOrder): LiveData<List<RoomSummary>> {
95+
return roomSummaryDataSource.getRoomSummariesLive(queryParams, sortOrder)
9496
}
9597

9698
override fun getPagedRoomSummariesLive(queryParams: RoomSummaryQueryParams,

matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryDataSource.kt

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import androidx.paging.PagedList
2525
import com.zhuinden.monarchy.Monarchy
2626
import io.realm.Realm
2727
import io.realm.RealmQuery
28-
import io.realm.Sort
2928
import io.realm.kotlin.where
3029
import org.matrix.android.sdk.api.query.ActiveSpaceFilter
3130
import org.matrix.android.sdk.api.query.RoomCategoryFilter
@@ -80,25 +79,27 @@ internal class RoomSummaryDataSource @Inject constructor(@SessionDatabase privat
8079
}
8180
}
8281

83-
fun getRoomSummaries(queryParams: RoomSummaryQueryParams): List<RoomSummary> {
82+
fun getRoomSummaries(queryParams: RoomSummaryQueryParams,
83+
sortOrder: RoomSortOrder = RoomSortOrder.NONE): List<RoomSummary> {
8484
return monarchy.fetchAllMappedSync(
85-
{ roomSummariesQuery(it, queryParams) },
85+
{ roomSummariesQuery(it, queryParams).process(sortOrder) },
8686
{ roomSummaryMapper.map(it) }
8787
)
8888
}
8989

90-
fun getRoomSummariesLive(queryParams: RoomSummaryQueryParams): LiveData<List<RoomSummary>> {
90+
fun getRoomSummariesLive(queryParams: RoomSummaryQueryParams,
91+
sortOrder: RoomSortOrder = RoomSortOrder.NONE): LiveData<List<RoomSummary>> {
9192
return monarchy.findAllMappedWithChanges(
9293
{
93-
roomSummariesQuery(it, queryParams)
94-
.sort(RoomSummaryEntityFields.LAST_ACTIVITY_TIME, Sort.DESCENDING)
94+
roomSummariesQuery(it, queryParams).process(sortOrder)
9595
},
9696
{ roomSummaryMapper.map(it) }
9797
)
9898
}
9999

100-
fun getSpaceSummariesLive(queryParams: SpaceSummaryQueryParams): LiveData<List<RoomSummary>> {
101-
return getRoomSummariesLive(queryParams)
100+
fun getSpaceSummariesLive(queryParams: SpaceSummaryQueryParams,
101+
sortOrder: RoomSortOrder = RoomSortOrder.NONE): LiveData<List<RoomSummary>> {
102+
return getRoomSummariesLive(queryParams, sortOrder)
102103
}
103104

104105
fun getSpaceSummary(roomIdOrAlias: String): RoomSummary? {
@@ -122,8 +123,9 @@ internal class RoomSummaryDataSource @Inject constructor(@SessionDatabase privat
122123
}
123124
}
124125

125-
fun getSpaceSummaries(spaceSummaryQueryParams: SpaceSummaryQueryParams): List<RoomSummary> {
126-
return getRoomSummaries(spaceSummaryQueryParams)
126+
fun getSpaceSummaries(spaceSummaryQueryParams: SpaceSummaryQueryParams,
127+
sortOrder: RoomSortOrder = RoomSortOrder.NONE): List<RoomSummary> {
128+
return getRoomSummaries(spaceSummaryQueryParams, sortOrder)
127129
}
128130

129131
fun getRootSpaceSummaries(): List<RoomSummary> {

matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/space/DefaultSpaceService.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import org.matrix.android.sdk.api.session.events.model.Event
2323
import org.matrix.android.sdk.api.session.events.model.EventType
2424
import org.matrix.android.sdk.api.session.events.model.toContent
2525
import org.matrix.android.sdk.api.session.events.model.toModel
26+
import org.matrix.android.sdk.api.session.room.RoomSortOrder
2627
import org.matrix.android.sdk.api.session.room.model.GuestAccess
2728
import org.matrix.android.sdk.api.session.room.model.Membership
2829
import org.matrix.android.sdk.api.session.room.model.PowerLevelsContent
@@ -94,12 +95,14 @@ internal class DefaultSpaceService @Inject constructor(
9495
return spaceGetter.get(spaceId)
9596
}
9697

97-
override fun getSpaceSummariesLive(queryParams: SpaceSummaryQueryParams): LiveData<List<RoomSummary>> {
98-
return roomSummaryDataSource.getSpaceSummariesLive(queryParams)
98+
override fun getSpaceSummariesLive(queryParams: SpaceSummaryQueryParams,
99+
sortOrder: RoomSortOrder): LiveData<List<RoomSummary>> {
100+
return roomSummaryDataSource.getSpaceSummariesLive(queryParams, sortOrder)
99101
}
100102

101-
override fun getSpaceSummaries(spaceSummaryQueryParams: SpaceSummaryQueryParams): List<RoomSummary> {
102-
return roomSummaryDataSource.getSpaceSummaries(spaceSummaryQueryParams)
103+
override fun getSpaceSummaries(spaceSummaryQueryParams: SpaceSummaryQueryParams,
104+
sortOrder: RoomSortOrder): List<RoomSummary> {
105+
return roomSummaryDataSource.getSpaceSummaries(spaceSummaryQueryParams, sortOrder)
103106
}
104107

105108
override fun getRootSpaceSummaries(): List<RoomSummary> {

0 commit comments

Comments
 (0)