Matthias Urhahn
authored
* Rework of keyfile download and caching.
* Supports interop
* More modular for better testing and build flavour based behavior adjustments
* More resilient handling of failed downloads
* Preperations for future hourly download and serverside checksums
TODO: Finish unit tests, keycache migration and cache health check
* First batch of unit tests and some fixes for incorrect behavior that the tests surfaced.
* Added unit tests for the KeyCacheRepository
TODO: Tests for downloader and migration.
* Implemented POC for migration old key files.
* Fixed legacy file migration and cleanup, improved logging.
* Added unit tests for legacy key file migration.
* Add fallback for different file hashes in the header.
* Yes kLint, we know it's a long method,
but for this it's better to read it in one block vs jumping to extra methods.
* More linting issues, adjusting project code style prevent a few of these in the future.
* Added missing unit tests for `KeyFileDownloader` and fixed faulty behavior that was noticed during testing.
* CRUD (instrumentation) test for `KeyCacheDatabase`
* Remove unused `FileStorageHelper` and related constants+tests.
* Fix last3Hours unit test in deviceRelease mode, we need to explicitly enable debug for these tests.
* Until we have more information about the hashsum's format in the header, default to `ETag
* Split app config server API from diagnosis key download API,
and reintroduce caching for the app config download.
* Add test to check that the cache is used on flaky connections.
* Code changes based on PR comment, part #1.
* Code fluff, formatting.
* Handle download errors correctly.
* Refactoring:
* Remove unnecessary `currentDate` we always start with the newest date from the servers index.
* Make a specialised class for header validation
* Let legacy cache migration abort early, depending on whether the key dir exists.
* If we can't create the base directory for the key repo, throw an exception.
* Delete cache entry if a download fails.
* Fixed test regression due to refactoring.
* Consolidate staleness check into `getStale`
* Consolidate clean up for failed downloads into the download method.
Added tests to check that we delete the keycache entry if the download fails (which we didn't for hours :O!)
* Because the hour-mode uses caching too, we add an explicit button to the test menu that clears the cache.
* Add comment with reference to ticket regarding follow up on the other headers.
* Move expected storage size per country into a named constant.
Co-authored-by:
Matthias Urhahn <matthias.urhahn@sap.com>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Name | Last commit | Last update |
---|---|---|
.. | ||
config | ||
libs | ||
schemas | ||
src | ||
.gitignore | ||
build.gradle | ||
proguard-rules.pro |