feat: show room avatar when is DM

This commit is contained in:
2025-11-04 16:01:14 +03:00
parent 5897d31a51
commit 05fbfbac07
6 changed files with 98 additions and 44 deletions
@@ -1,7 +1,6 @@
/*
* Created by sweetbread
* Copyright (c) 2025. All rights reserved.
* Last modified 03.03.2025, 18:28
*/
package ru.risdeveau.pixeldragon.api
@@ -36,12 +35,28 @@ 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 {
for (user in direct.keys()) {
val roomsWithUser = direct.getJSONArray(user)
for (i in 0 until roomsWithUser.length()) {
if (rid == roomsWithUser.getString(i)) {
directWith = user
break
}
}
if (directWith.isNotEmpty()) break
}
}
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)
room = Room(rid, name, type, creator, null, avatar, null, true, if (directWith.isNotEmpty()) directWith else null)
db.roomDoa().insert(room)
}