allow profilestore units as a fallback

This commit is contained in:
Milos Kozak 2021-11-04 13:30:31 +01:00
parent 40e034d65a
commit 35c6ee38e5
2 changed files with 6 additions and 4 deletions

View file

@ -97,8 +97,8 @@ fun profileSwitchFromJson(jsonObject: JSONObject, dateUtil: DateUtil, activePlug
*/
fun pureProfileFromJson(jsonObject: JSONObject, dateUtil: DateUtil, defaultUnits: String? = null): PureProfile? {
try {
JsonHelper.safeGetStringAllowNull(jsonObject, "units", defaultUnits) ?: return null
val units = GlucoseUnit.fromText(JsonHelper.safeGetString(jsonObject, "units", Constants.MGDL))
val txtUnits = JsonHelper.safeGetStringAllowNull(jsonObject, "units", defaultUnits) ?: return null
val units = GlucoseUnit.fromText(txtUnits)
val dia = JsonHelper.safeGetDoubleAllowNull(jsonObject, "dia") ?: return null
val timezone = TimeZone.getTimeZone(JsonHelper.safeGetString(jsonObject, "timezone", "UTC"))

View file

@ -22,6 +22,8 @@ class ProfileStore(val injector: HasAndroidInjector, val data: JSONObject, val d
private val cachedObjects = ArrayMap<String, PureProfile>()
private fun storeUnits() : String? = JsonHelper.safeGetStringAllowNull(data, "units", null)
private fun getStore(): JSONObject? {
try {
if (data.has("store")) return data.getJSONObject("store")
@ -61,13 +63,13 @@ class ProfileStore(val injector: HasAndroidInjector, val data: JSONObject, val d
fun getSpecificProfile(profileName: String): PureProfile? {
var profile: PureProfile? = null
val defaultUnits = JsonHelper.safeGetStringAllowNull(data, "units", null)
val units = JsonHelper.safeGetStringAllowNull(data, "units", storeUnits())
getStore()?.let { store ->
if (store.has(profileName)) {
profile = cachedObjects[profileName]
if (profile == null) {
JsonHelper.safeGetJSONObject(store, profileName, null)?.let { profileObject ->
profile = pureProfileFromJson(profileObject, dateUtil, defaultUnits)
profile = pureProfileFromJson(profileObject, dateUtil, units)
profile?.let { cachedObjects[profileName] = profile }
}
}