diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Report.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Report.kt index a2a2a5135..3f400a768 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Report.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/types/Report.kt @@ -63,6 +63,7 @@ fun RenderReport( ReportType.MALWARE -> stringRes(R.string.malware) ReportType.MOD -> stringRes(R.string.mod) ReportType.OTHER -> stringRes(R.string.other) + ReportType.HARASSMENT -> stringRes(R.string.harassment) null -> stringRes(R.string.other) } }.toSet() diff --git a/amethyst/src/main/res/values/strings.xml b/amethyst/src/main/res/values/strings.xml index 3d638607c..8463b5bbb 100644 --- a/amethyst/src/main/res/values/strings.xml +++ b/amethyst/src/main/res/values/strings.xml @@ -21,6 +21,7 @@ Impersonation Illegal Behavior Other + Harassment Unknown Relay Icon Unknown Author diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip56Reports/ReportEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip56Reports/ReportEvent.kt index 45281e3aa..158d75557 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip56Reports/ReportEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip56Reports/ReportEvent.kt @@ -52,14 +52,15 @@ class ReportEvent( private fun defaultReportType(): ReportType { defaultType?.let { return it } - // Works with old and new structures for report. - var reportType = defaultReportTypes().firstOrNull() - if (reportType == null) { - reportType = tags.mapNotNull { it.getOrNull(2) }.map { ReportType.parseOrNull(it, emptyArray()) }.firstOrNull() - } - if (reportType == null) { - reportType = ReportType.SPAM - } + // search for any type in any tag. + val reportType = + defaultReportTypes().firstOrNull() + ?: tags.firstNotNullOfOrNull { + ReportedAuthorTag.parse(it)?.type + ?: ReportedEventTag.parse(it)?.type + ?: ReportedAddressTag.parse(it)?.type + } ?: ReportType.SPAM + defaultType = reportType return reportType } diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip56Reports/ReportType.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip56Reports/ReportType.kt index 125926808..6ff598773 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip56Reports/ReportType.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip56Reports/ReportType.kt @@ -33,6 +33,7 @@ enum class ReportType( PROFANITY("profanity"), MALWARE("malware"), MOD("mod"), + HARASSMENT("Harrassment"), OTHER("other"), ; @@ -51,6 +52,7 @@ enum class ReportType( MALWARE.code -> MALWARE MOD.code -> MOD "MOD" -> MOD + HARASSMENT.code -> HARASSMENT OTHER.code -> OTHER else -> { Log.w("ReportedEventTag", "Report type not supported: $code ${tag.joinToString(", ")}") diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip56Reports/tags/DefaultReportTag.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip56Reports/tags/DefaultReportTag.kt index 24551aa95..adc260a1b 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip56Reports/tags/DefaultReportTag.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip56Reports/tags/DefaultReportTag.kt @@ -27,6 +27,7 @@ import com.vitorpamplona.quartz.utils.arrayOfNotNull import com.vitorpamplona.quartz.utils.ensure @Immutable +@Deprecated("Old version had [`report`, ``] tags") class DefaultReportTag { companion object { const val TAG_NAME = "report"