allow profilestore units as a fallback
This commit is contained in:
parent
40e034d65a
commit
35c6ee38e5
2 changed files with 6 additions and 4 deletions
|
@ -97,8 +97,8 @@ fun profileSwitchFromJson(jsonObject: JSONObject, dateUtil: DateUtil, activePlug
|
||||||
*/
|
*/
|
||||||
fun pureProfileFromJson(jsonObject: JSONObject, dateUtil: DateUtil, defaultUnits: String? = null): PureProfile? {
|
fun pureProfileFromJson(jsonObject: JSONObject, dateUtil: DateUtil, defaultUnits: String? = null): PureProfile? {
|
||||||
try {
|
try {
|
||||||
JsonHelper.safeGetStringAllowNull(jsonObject, "units", defaultUnits) ?: return null
|
val txtUnits = JsonHelper.safeGetStringAllowNull(jsonObject, "units", defaultUnits) ?: return null
|
||||||
val units = GlucoseUnit.fromText(JsonHelper.safeGetString(jsonObject, "units", Constants.MGDL))
|
val units = GlucoseUnit.fromText(txtUnits)
|
||||||
val dia = JsonHelper.safeGetDoubleAllowNull(jsonObject, "dia") ?: return null
|
val dia = JsonHelper.safeGetDoubleAllowNull(jsonObject, "dia") ?: return null
|
||||||
val timezone = TimeZone.getTimeZone(JsonHelper.safeGetString(jsonObject, "timezone", "UTC"))
|
val timezone = TimeZone.getTimeZone(JsonHelper.safeGetString(jsonObject, "timezone", "UTC"))
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@ class ProfileStore(val injector: HasAndroidInjector, val data: JSONObject, val d
|
||||||
|
|
||||||
private val cachedObjects = ArrayMap<String, PureProfile>()
|
private val cachedObjects = ArrayMap<String, PureProfile>()
|
||||||
|
|
||||||
|
private fun storeUnits() : String? = JsonHelper.safeGetStringAllowNull(data, "units", null)
|
||||||
|
|
||||||
private fun getStore(): JSONObject? {
|
private fun getStore(): JSONObject? {
|
||||||
try {
|
try {
|
||||||
if (data.has("store")) return data.getJSONObject("store")
|
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? {
|
fun getSpecificProfile(profileName: String): PureProfile? {
|
||||||
var profile: PureProfile? = null
|
var profile: PureProfile? = null
|
||||||
val defaultUnits = JsonHelper.safeGetStringAllowNull(data, "units", null)
|
val units = JsonHelper.safeGetStringAllowNull(data, "units", storeUnits())
|
||||||
getStore()?.let { store ->
|
getStore()?.let { store ->
|
||||||
if (store.has(profileName)) {
|
if (store.has(profileName)) {
|
||||||
profile = cachedObjects[profileName]
|
profile = cachedObjects[profileName]
|
||||||
if (profile == null) {
|
if (profile == null) {
|
||||||
JsonHelper.safeGetJSONObject(store, profileName, null)?.let { profileObject ->
|
JsonHelper.safeGetJSONObject(store, profileName, null)?.let { profileObject ->
|
||||||
profile = pureProfileFromJson(profileObject, dateUtil, defaultUnits)
|
profile = pureProfileFromJson(profileObject, dateUtil, units)
|
||||||
profile?.let { cachedObjects[profileName] = profile }
|
profile?.let { cachedObjects[profileName] = profile }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue