/* * Copyright (c) Kuba SzczodrzyƄski 2019-11-26. */ package pl.szczodrzynski.edziennik.config import pl.szczodrzynski.edziennik.BuildConfig import pl.szczodrzynski.edziennik.data.api.szkolny.response.RegisterAvailabilityStatus import pl.szczodrzynski.edziennik.ext.HOUR import pl.szczodrzynski.edziennik.utils.models.Time @Suppress("RemoveExplicitTypeArguments") class ConfigSync(base: Config) { var enabled by base.config("syncEnabled", true) var interval by base.config("syncInterval", 1 * HOUR.toInt()) var onlyWifi by base.config("syncOnlyWifi", false) var dontShowAppManagerDialog by base.config(false) var lastAppSync by base.config(0L) var notifyAboutUpdates by base.config(true) var webPushEnabled by base.config(true) // Quiet Hours var quietHoursEnabled by base.config(false) var quietHoursStart by base.config(null) var quietHoursEnd by base.config(null) var quietDuringLessons by base.config(false) // FCM Tokens var tokenApp by base.config(null) var tokenMobidziennik by base.config(null) var tokenLibrus by base.config(null) var tokenVulcan by base.config(null) var tokenVulcanHebe by base.config(null) var tokenMobidziennikList by base.config> { listOf() } var tokenLibrusList by base.config> { listOf() } var tokenVulcanList by base.config> { listOf() } var tokenVulcanHebeList by base.config> { listOf() } // Register Availability private var registerAvailabilityMap by base.config>("registerAvailability") { mapOf() } private var registerAvailabilityFlavor by base.config(null) var registerAvailability: Map get() { if (BuildConfig.FLAVOR != registerAvailabilityFlavor) return mapOf() return registerAvailabilityMap } set(value) { registerAvailabilityMap = value registerAvailabilityFlavor = BuildConfig.FLAVOR } }