Clean some of the session code API

This commit is contained in:
ganfra
2018-12-28 12:56:52 +01:00
committed by ganfra
parent b696e4a6de
commit 5a75e3db81
6 changed files with 48 additions and 74 deletions

View File

@ -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)
}

View File

@ -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? {

View File

@ -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
}
}
}