forked from GitHub-Mirror/riotX-android
Clean some of the session code API
This commit is contained in:
@ -7,15 +7,6 @@ interface RoomService {
|
||||
|
||||
fun getRoom(roomId: String): Room?
|
||||
|
||||
fun getAllRooms(): List<Room>
|
||||
|
||||
fun liveRooms(): LiveData<List<Room>>
|
||||
|
||||
fun liveRoomSummaries(): LiveData<List<RoomSummary>>
|
||||
|
||||
fun lastSelectedRoom(): RoomSummary?
|
||||
|
||||
fun saveLastSelectedRoom(roomSummary: RoomSummary)
|
||||
|
||||
|
||||
}
|
@ -69,31 +69,12 @@ internal class DefaultSession(override val sessionParams: SessionParams) : Sessi
|
||||
return roomService.getRoom(roomId)
|
||||
}
|
||||
|
||||
override fun getAllRooms(): List<Room> {
|
||||
assert(isOpen)
|
||||
return roomService.getAllRooms()
|
||||
}
|
||||
|
||||
override fun liveRooms(): LiveData<List<Room>> {
|
||||
assert(isOpen)
|
||||
return roomService.liveRooms()
|
||||
}
|
||||
|
||||
override fun liveRoomSummaries(): LiveData<List<RoomSummary>> {
|
||||
assert(isOpen)
|
||||
return roomService.liveRoomSummaries()
|
||||
}
|
||||
|
||||
override fun lastSelectedRoom(): RoomSummary? {
|
||||
assert(isOpen)
|
||||
return roomService.lastSelectedRoom()
|
||||
}
|
||||
|
||||
override fun saveLastSelectedRoom(roomSummary: RoomSummary) {
|
||||
assert(isOpen)
|
||||
roomService.saveLastSelectedRoom(roomSummary)
|
||||
}
|
||||
|
||||
// GROUP SERVICE
|
||||
|
||||
override fun getGroup(groupId: String): Group? {
|
||||
|
@ -9,19 +9,10 @@ import im.vector.matrix.android.internal.database.mapper.asDomain
|
||||
import im.vector.matrix.android.internal.database.model.RoomEntity
|
||||
import im.vector.matrix.android.internal.database.model.RoomSummaryEntity
|
||||
import im.vector.matrix.android.internal.database.model.RoomSummaryEntityFields
|
||||
import im.vector.matrix.android.internal.database.query.lastSelected
|
||||
import im.vector.matrix.android.internal.database.query.where
|
||||
|
||||
internal class DefaultRoomService(private val monarchy: Monarchy) : RoomService {
|
||||
|
||||
override fun getAllRooms(): List<Room> {
|
||||
var rooms: List<Room> = emptyList()
|
||||
monarchy.doWithRealm { realm ->
|
||||
rooms = RoomEntity.where(realm).findAll().map { it.asDomain() }
|
||||
}
|
||||
return rooms
|
||||
}
|
||||
|
||||
override fun getRoom(roomId: String): Room? {
|
||||
var room: Room? = null
|
||||
monarchy.doWithRealm { realm ->
|
||||
@ -30,34 +21,10 @@ internal class DefaultRoomService(private val monarchy: Monarchy) : RoomService
|
||||
return room
|
||||
}
|
||||
|
||||
override fun liveRooms(): LiveData<List<Room>> {
|
||||
return monarchy.findAllMappedWithChanges(
|
||||
{ realm -> RoomEntity.where(realm) },
|
||||
{ it.asDomain() }
|
||||
)
|
||||
}
|
||||
|
||||
override fun liveRoomSummaries(): LiveData<List<RoomSummary>> {
|
||||
return monarchy.findAllMappedWithChanges(
|
||||
{ realm -> RoomSummaryEntity.where(realm).isNotEmpty(RoomSummaryEntityFields.DISPLAY_NAME) },
|
||||
{ it.asDomain() }
|
||||
)
|
||||
}
|
||||
|
||||
override fun lastSelectedRoom(): RoomSummary? {
|
||||
var lastSelected: RoomSummary? = null
|
||||
monarchy.doWithRealm { realm ->
|
||||
lastSelected = RoomSummaryEntity.lastSelected(realm)?.asDomain()
|
||||
}
|
||||
return lastSelected
|
||||
}
|
||||
|
||||
override fun saveLastSelectedRoom(roomSummary: RoomSummary) {
|
||||
monarchy.writeAsync { realm ->
|
||||
val lastSelected = RoomSummaryEntity.lastSelected(realm)
|
||||
val roomSummaryEntity = RoomSummaryEntity.where(realm, roomSummary.roomId).findFirst()
|
||||
lastSelected?.isLatestSelected = false
|
||||
roomSummaryEntity?.isLatestSelected = true
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user