AndroidAPS/app/src/main/java/info/nightscout/androidaps/implementations/ConfigImpl.kt
2023-03-10 12:07:20 +01:00

59 lines
No EOL
2.5 KiB
Kotlin

package info.nightscout.androidaps.implementations
import android.os.Build
import info.nightscout.androidaps.BuildConfig
import info.nightscout.androidaps.R
import info.nightscout.interfaces.Config
import info.nightscout.interfaces.maintenance.PrefFileListProvider
import java.io.File
import javax.inject.Inject
import javax.inject.Singleton
@Suppress("KotlinConstantConditions")
@Singleton
class ConfigImpl @Inject constructor(
fileListProvider: PrefFileListProvider
) : Config {
override val SUPPORTED_NS_VERSION = 150000 // 15.0.0
override val APS = BuildConfig.FLAVOR == "full"
override val NSCLIENT = BuildConfig.FLAVOR == "aapsclient" || BuildConfig.FLAVOR == "aapsclient2"
override val PUMPCONTROL = BuildConfig.FLAVOR == "pumpcontrol"
override val PUMPDRIVERS = BuildConfig.FLAVOR == "full" || BuildConfig.FLAVOR == "pumpcontrol"
override val FLAVOR = BuildConfig.FLAVOR
override val VERSION_NAME = BuildConfig.VERSION_NAME
override val BUILD_VERSION = BuildConfig.BUILDVERSION
override val REMOTE: String = BuildConfig.REMOTE
override val BUILD_TYPE: String = BuildConfig.BUILD_TYPE
override val VERSION: String = BuildConfig.VERSION
override val APPLICATION_ID: String = BuildConfig.APPLICATION_ID
override val DEBUG = BuildConfig.DEBUG
override val currentDeviceModelString =
Build.MANUFACTURER + " " + Build.MODEL + " (" + Build.DEVICE + ")"
override val appName: Int = R.string.app_name
private var devBranch = false
private var engineeringMode = false
private var unfinishedMode = false
init {
val engineeringModeSemaphore = File(fileListProvider.ensureExtraDirExists(), "engineering_mode")
val unfinishedModeSemaphore = File(fileListProvider.ensureExtraDirExists(), "unfinished_mode")
engineeringMode = engineeringModeSemaphore.exists() && engineeringModeSemaphore.isFile
unfinishedMode = unfinishedModeSemaphore.exists() && unfinishedModeSemaphore.isFile
devBranch = BuildConfig.VERSION.contains("-") || BuildConfig.VERSION.matches(Regex(".*[a-zA-Z]+.*"))
if (BuildConfig.VERSION.contains("-beta") || BuildConfig.VERSION.contains("-rc"))
devBranch = false
}
override fun isEngineeringModeOrRelease(): Boolean =
if (!APS) true else engineeringMode || !devBranch
override fun isEngineeringMode(): Boolean = engineeringMode
override fun isUnfinishedMode(): Boolean = unfinishedMode
override fun isDev(): Boolean = devBranch
}