EN: Don't create TEK without need

This commit is contained in:
Marvin W 2020-09-09 00:50:16 +02:00
parent 6ec8332b1e
commit a016feba35
No known key found for this signature in database
GPG Key ID: 072E9235DB996F2A
2 changed files with 22 additions and 17 deletions

View File

@ -96,7 +96,12 @@ class ExposureNotificationsPreferencesFragment : PreferenceFragmentCompat() {
}
}
collectedRpis.summary = getString(R.string.pref_exposure_collected_rpis_summary, lastHourKeys)
advertisingId.summary = currentId.toString()
if (currentId != null) {
advertisingId.isVisible = true
advertisingId.summary = currentId.toString()
} else {
advertisingId.isVisible = false
}
exposureApps.removeAll()
if (apps.isEmpty()) {
exposureApps.addPreference(exposureAppsNone)

View File

@ -499,29 +499,29 @@ class ExposureDatabase private constructor(private val context: Context) : SQLit
}
}
private val currentTemporaryExposureKey: TemporaryExposureKey
get() = writableDatabase.let { database ->
database.beginTransaction()
try {
var key = findOwnKeyAt(currentRollingStartNumber.toInt(), database)
if (key == null) {
key = generateCurrentTemporaryExposureKey()
storeOwnKey(key, database)
}
database.setTransactionSuccessful()
key
} finally {
database.endTransaction()
private fun ensureTemporaryExposureKey(): TemporaryExposureKey = writableDatabase.let { database ->
database.beginTransaction()
try {
var key = findOwnKeyAt(currentRollingStartNumber.toInt(), database)
if (key == null) {
key = generateCurrentTemporaryExposureKey()
storeOwnKey(key, database)
}
database.setTransactionSuccessful()
key
} finally {
database.endTransaction()
}
}
val currentRpiId: UUID
val currentRpiId: UUID?
get() {
val buffer = ByteBuffer.wrap(currentTemporaryExposureKey.generateRpiId(currentIntervalNumber.toInt()))
val key = findOwnKeyAt(currentRollingStartNumber.toInt()) ?: return null
val buffer = ByteBuffer.wrap(key.generateRpiId(currentIntervalNumber.toInt()))
return UUID(buffer.long, buffer.long)
}
fun generateCurrentPayload(metadata: ByteArray) = currentTemporaryExposureKey.generatePayload(currentIntervalNumber.toInt(), metadata)
fun generateCurrentPayload(metadata: ByteArray) = ensureTemporaryExposureKey().generatePayload(currentIntervalNumber.toInt(), metadata)
override fun getWritableDatabase(): SQLiteDatabase {
if (this != instance) {