Further separates channels by kind in the UI
This commit is contained in:
+11
@@ -90,6 +90,10 @@ class LiveActivitiesEvent(
|
||||
|
||||
fun status() = checkStatus(tags.firstNotNullOfOrNull(StatusTag::parse))
|
||||
|
||||
fun statusEnum() = checkStatusEnum(tags.firstNotNullOfOrNull(StatusTag::parseEnum))
|
||||
|
||||
fun isLive() = statusEnum() == StatusTag.STATUS.LIVE
|
||||
|
||||
fun currentParticipants() = tags.firstNotNullOfOrNull(CurrentParticipantsTag::parse)
|
||||
|
||||
fun totalParticipants() = tags.firstNotNullOfOrNull(TotalParticipantsTag::parse)
|
||||
@@ -113,6 +117,13 @@ class LiveActivitiesEvent(
|
||||
eventStatus
|
||||
}
|
||||
|
||||
fun checkStatusEnum(eventStatus: StatusTag.STATUS?): StatusTag.STATUS? =
|
||||
if (eventStatus == StatusTag.STATUS.LIVE && createdAt < TimeUtils.eightHoursAgo()) {
|
||||
StatusTag.STATUS.ENDED
|
||||
} else {
|
||||
eventStatus
|
||||
}
|
||||
|
||||
fun participantsIntersect(keySet: Set<String>): Boolean = keySet.contains(pubKey) || tags.any(ParticipantTag::isIn, keySet)
|
||||
|
||||
companion object {
|
||||
|
||||
+18
@@ -33,6 +33,16 @@ class StatusTag {
|
||||
;
|
||||
|
||||
fun toTagArray() = assemble(this)
|
||||
|
||||
companion object {
|
||||
fun parse(code: String): STATUS? =
|
||||
when (code) {
|
||||
LIVE.code -> LIVE
|
||||
PLANNED.code -> PLANNED
|
||||
ENDED.code -> ENDED
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
@@ -46,6 +56,14 @@ class StatusTag {
|
||||
return tag[1]
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun parseEnum(tag: Array<String>): STATUS? {
|
||||
ensure(tag.has(1)) { return null }
|
||||
ensure(tag[0] == TAG_NAME) { return null }
|
||||
ensure(tag[1].isNotEmpty()) { return null }
|
||||
return STATUS.parse(tag[1])
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun assemble(status: STATUS) = arrayOf(TAG_NAME, status.code)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user