Files
gotify-android-client/app/src/main/kotlin/com/github/gotifycustom/messages/Extras.kt
kdusek afcf93087c
Some checks failed
Build / Check (push) Has been cancelled
Implement priority filtering, rename package, preset URL, update remotes
2025-11-28 20:06:33 +01:00

39 lines
918 B
Kotlin

package com.github.gotifycustom.messages
import com.github.gotify.client.model.Message
internal object Extras {
fun useMarkdown(message: Message): Boolean = useMarkdown(message.extras)
fun useMarkdown(extras: Map<String, Any>?): Boolean {
if (extras == null) {
return false
}
val display: Any? = extras["client::display"]
if (display !is Map<*, *>) {
return false
}
return "text/markdown" == display["contentType"]
}
fun <T> getNestedValue(clazz: Class<T>, extras: Map<String, Any>?, vararg keys: String): T? {
var value: Any? = extras
keys.forEach { key ->
if (value == null) {
return null
}
value = (value as Map<*, *>)[key]
}
if (!clazz.isInstance(value)) {
return null
}
return clazz.cast(value)
}
}