|
|
|
@ -13,9 +13,9 @@ data class OpenGroup(
|
|
|
|
|
val publicKey: String,
|
|
|
|
|
val imageId: String?,
|
|
|
|
|
val infoUpdates: Int,
|
|
|
|
|
val canWrite: Boolean,
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
|
|
constructor(server: String, room: String, publicKey: String, name: String, imageId: String?, infoUpdates: Int) : this(
|
|
|
|
|
constructor(server: String, room: String, publicKey: String, name: String, imageId: String?, canWrite: Boolean, infoUpdates: Int) : this(
|
|
|
|
|
server = server,
|
|
|
|
|
room = room,
|
|
|
|
|
id = "$server.$room",
|
|
|
|
@ -23,6 +23,7 @@ data class OpenGroup(
|
|
|
|
|
publicKey = publicKey,
|
|
|
|
|
imageId = imageId,
|
|
|
|
|
infoUpdates = infoUpdates,
|
|
|
|
|
canWrite = canWrite
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
companion object {
|
|
|
|
@ -31,14 +32,14 @@ data class OpenGroup(
|
|
|
|
|
return try {
|
|
|
|
|
val json = JsonUtil.fromJson(jsonAsString)
|
|
|
|
|
if (!json.has("room")) return null
|
|
|
|
|
val room = json.get("room").asText().toLowerCase(Locale.US)
|
|
|
|
|
val server = json.get("server").asText().toLowerCase(Locale.US)
|
|
|
|
|
val publicKey = json.get("publicKey").asText()
|
|
|
|
|
val room = json.get("room").asText().lowercase(Locale.US)
|
|
|
|
|
val server = json.get("server").asText().lowercase(Locale.US)
|
|
|
|
|
val displayName = json.get("displayName").asText()
|
|
|
|
|
val publicKey = json.get("publicKey").asText()
|
|
|
|
|
val imageId = json.get("imageId")?.asText()
|
|
|
|
|
val canWrite = json.get("canWrite")?.asText()?.toBoolean() ?: true
|
|
|
|
|
val infoUpdates = json.get("infoUpdates")?.asText()?.toIntOrNull() ?: 0
|
|
|
|
|
val capabilities = json.get("capabilities")?.asText()?.split(",") ?: emptyList()
|
|
|
|
|
OpenGroup(server = server, room = room, name = displayName, publicKey = publicKey, imageId = imageId, infoUpdates = infoUpdates)
|
|
|
|
|
OpenGroup(server = server, room = room, name = displayName, publicKey = publicKey, imageId = imageId, canWrite = canWrite, infoUpdates = infoUpdates)
|
|
|
|
|
} catch (e: Exception) {
|
|
|
|
|
Log.w("Loki", "Couldn't parse open group from JSON: $jsonAsString.", e);
|
|
|
|
|
null
|
|
|
|
@ -63,6 +64,7 @@ data class OpenGroup(
|
|
|
|
|
"displayName" to name,
|
|
|
|
|
"imageId" to imageId,
|
|
|
|
|
"infoUpdates" to infoUpdates.toString(),
|
|
|
|
|
"canWrite" to canWrite.toString()
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
val joinURL: String get() = "$server/$room?public_key=$publicKey"
|
|
|
|
|