Added "caching" of the safetynet response

This commit is contained in:
Viktor De Pasquale 2019-10-26 16:03:07 +02:00
parent 60a2e9b5dc
commit d0b817381e

View File

@ -34,8 +34,12 @@ class SafetynetViewModel(
.subscribeK { resolveResponse(it.responseCode) }
.add()
if (safetyNetResult >= 0) {
resolveResponse(safetyNetResult)
} else {
attest()
}
}
override fun notifyStateChanged() {
super.notifyStateChanged()
@ -56,6 +60,7 @@ class SafetynetViewModel(
val hasCtsPassed = response and SafetyNetHelper.CTS_PASS != 0
val hasBasicIntegrityPassed = response and SafetyNetHelper.BASIC_PASS != 0
val result = hasCtsPassed && hasBasicIntegrityPassed
safetyNetResult = response
ctsState.value = hasCtsPassed
basicIntegrityState.value = hasBasicIntegrityPassed
currentState = if (result) PASS else FAILED
@ -80,4 +85,8 @@ class SafetynetViewModel(
}
}
companion object {
private var safetyNetResult = -1
}
}