Handle failure to persist GSON serialized JSON data (EXPOSUREAPP-3777) (#1604)
* Flush the json data after writing it, otherwise if the app process dies, we end up with an empty file. GSON deserializes this into a null object that looks like a non-null object until it is evaluated some time later. Force an evaluation via `require(it.size >= 0)` and delete the corrupt data file when catching the exception. * Show a visible error dialog if we fail to save data. * Used buffered versions of readers and writer.
Showing
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/nearby/modules/calculationtracker/CalculationTrackerStorage.kt 5 additions, 0 deletions...y/modules/calculationtracker/CalculationTrackerStorage.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/gson/GsonExtensions.kt 3 additions, 2 deletions...ain/java/de/rki/coronawarnapp/util/gson/GsonExtensions.kt
- Corona-Warn-App/src/test/java/de/rki/coronawarnapp/nearby/modules/calculationtracker/CalculationTrackerStorageTest.kt 16 additions, 0 deletions...dules/calculationtracker/CalculationTrackerStorageTest.kt
Please register or sign in to comment