From f10dcf3ce5e9991fa4a56624b8ac240f44904464 Mon Sep 17 00:00:00 2001 From: Martin Gross Date: Tue, 17 Mar 2026 14:17:27 +0100 Subject: [PATCH] Split reusable components of pretix' NFC usage across libpretixnfc, libpretixsync and libpretixui --- .../pretix/libpretixsync/utils/MediaUtils.kt | 30 +++++++++++++++++++ .../eu/pretix/libpretixsync/utils/Settings.kt | 7 +++++ 2 files changed, 37 insertions(+) create mode 100644 libpretixsync/src/main/java/eu/pretix/libpretixsync/utils/MediaUtils.kt create mode 100644 libpretixsync/src/main/java/eu/pretix/libpretixsync/utils/Settings.kt diff --git a/libpretixsync/src/main/java/eu/pretix/libpretixsync/utils/MediaUtils.kt b/libpretixsync/src/main/java/eu/pretix/libpretixsync/utils/MediaUtils.kt new file mode 100644 index 00000000..40acfaa5 --- /dev/null +++ b/libpretixsync/src/main/java/eu/pretix/libpretixsync/utils/MediaUtils.kt @@ -0,0 +1,30 @@ +package eu.pretix.libpretixsync.utils + +import eu.pretix.libpretixsync.db.ReusableMediaType + +fun getActiveMediaTypes( + settingsManager: SettingsManager, + eventSlug: String? +): List { + if (eventSlug.isNullOrBlank()) { + return emptyList() + } + + val settings = settingsManager.getBySlug(eventSlug) + if (settings == null) { + return emptyList() + } + val l = mutableListOf() + + if (settings.json.optBoolean("reusable_media_type_barcode")) { + l.add(ReusableMediaType.BARCODE) + } + if (settings.json.optBoolean("reusable_media_type_nfc_uid")) { + l.add(ReusableMediaType.NFC_UID) + } else { + if (settings.json.optBoolean("reusable_media_type_nfc_mf0aes")) { + l.add(ReusableMediaType.NFC_MF0AES) + } + } + return l +} diff --git a/libpretixsync/src/main/java/eu/pretix/libpretixsync/utils/Settings.kt b/libpretixsync/src/main/java/eu/pretix/libpretixsync/utils/Settings.kt new file mode 100644 index 00000000..d63ccec3 --- /dev/null +++ b/libpretixsync/src/main/java/eu/pretix/libpretixsync/utils/Settings.kt @@ -0,0 +1,7 @@ +package eu.pretix.libpretixsync.utils + +import eu.pretix.libpretixsync.models.Settings + +interface SettingsManager { + fun getBySlug(eventSlug: String): Settings? +} \ No newline at end of file