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