2019-03-20 19:25:26 +01:00
|
|
|
package com.keylesspalace.tusky.entity
|
|
|
|
|
2023-03-11 13:12:50 +01:00
|
|
|
import android.os.Parcelable
|
2019-03-20 19:25:26 +01:00
|
|
|
import com.google.gson.annotations.SerializedName
|
2022-08-15 11:01:04 +02:00
|
|
|
import java.util.Date
|
2024-01-04 17:00:55 +01:00
|
|
|
import kotlinx.parcelize.Parcelize
|
2019-03-20 19:25:26 +01:00
|
|
|
|
2023-03-11 13:12:50 +01:00
|
|
|
@Parcelize
|
2021-06-28 21:13:24 +02:00
|
|
|
data class Filter(
|
2019-03-20 19:25:26 +01:00
|
|
|
val id: String,
|
2023-03-11 13:12:50 +01:00
|
|
|
val title: String,
|
2019-03-20 19:25:26 +01:00
|
|
|
val context: List<String>,
|
2022-08-15 11:01:04 +02:00
|
|
|
@SerializedName("expires_at") val expiresAt: Date?,
|
2023-03-11 13:12:50 +01:00
|
|
|
@SerializedName("filter_action") private val filterAction: String,
|
2023-03-13 13:16:39 +01:00
|
|
|
val keywords: List<FilterKeyword>
|
2023-03-11 13:12:50 +01:00
|
|
|
// val statuses: List<FilterStatus>,
|
|
|
|
) : Parcelable {
|
|
|
|
enum class Action(val action: String) {
|
|
|
|
NONE("none"),
|
|
|
|
WARN("warn"),
|
|
|
|
HIDE("hide");
|
2019-03-20 19:25:26 +01:00
|
|
|
|
2023-03-11 13:12:50 +01:00
|
|
|
companion object {
|
2024-02-25 16:20:26 +01:00
|
|
|
fun from(action: String): Action = entries.firstOrNull { it.action == action } ?: WARN
|
2023-03-11 13:12:50 +01:00
|
|
|
}
|
2019-03-20 19:25:26 +01:00
|
|
|
}
|
2023-03-11 13:12:50 +01:00
|
|
|
enum class Kind(val kind: String) {
|
|
|
|
HOME("home"),
|
|
|
|
NOTIFICATIONS("notifications"),
|
|
|
|
PUBLIC("public"),
|
|
|
|
THREAD("thread"),
|
|
|
|
ACCOUNT("account");
|
2019-03-20 19:25:26 +01:00
|
|
|
|
2023-03-11 13:12:50 +01:00
|
|
|
companion object {
|
2024-02-25 16:20:26 +01:00
|
|
|
fun from(kind: String): Kind = entries.firstOrNull { it.kind == kind } ?: PUBLIC
|
2019-03-20 19:25:26 +01:00
|
|
|
}
|
|
|
|
}
|
2023-03-11 13:12:50 +01:00
|
|
|
|
|
|
|
val action: Action
|
|
|
|
get() = Action.from(filterAction)
|
|
|
|
|
|
|
|
val kinds: List<Kind>
|
|
|
|
get() = context.map { Kind.from(it) }
|
2019-03-20 19:25:26 +01:00
|
|
|
}
|