ref: reformat caching data in Rooms

This commit is contained in:
2025-11-04 20:30:22 +03:00
parent 05fbfbac07
commit ebbc9a4b1f
9 changed files with 246 additions and 87 deletions
@@ -12,8 +12,8 @@ import io.ktor.http.HttpStatusCode
import org.json.JSONObject
import ru.risdeveau.pixeldragon.baseUrl
import ru.risdeveau.pixeldragon.client
import ru.risdeveau.pixeldragon.db
import ru.risdeveau.pixeldragon.db.Room
import ru.risdeveau.pixeldragon.repo.Room
import ru.risdeveau.pixeldragon.repo.User
import ru.risdeveau.pixeldragon.token
//fun getRooms(): List<Room> {
@@ -34,8 +34,6 @@ suspend fun getRooms(): List<String> {
}
suspend fun getRoom(rid: String): Room {
var room = db.roomDoa().getById(rid)
val direct = getAccountData(getMe()!!.userId, "m.direct")
var directWith = ""
direct?.let {
@@ -51,16 +49,21 @@ suspend fun getRoom(rid: String): Room {
}
}
if (room == null) {
val name = getState(rid, "m.room.name", "name")
val type = getState(rid, "m.room.create", "type") ?: "m.room"
val creator = getState(rid, "m.room.create", "creator")
val avatar = getState(rid, "m.room.avatar", "url")
room = Room(rid, name, type, creator, null, avatar, null, true, if (directWith.isNotEmpty()) directWith else null)
db.roomDoa().insert(room)
}
return room
val name = getState(rid, "m.room.name", "name")
val type = getState(rid, "m.room.create", "type") ?: "m.room"
val creator = getState(rid, "m.room.create", "creator")
val avatar = getState(rid, "m.room.avatar", "url")
return Room(
rid,
name,
type,
creator,
null,
avatar,
null,
true, // TODO: insert actual value
if (directWith.isNotEmpty()) User.getById(directWith) else null
)
}
private suspend fun getState(rid: String, state: String, key: String): String? {