- Jan 04, 2021
-
-
Mohamed Metwalli authored
-
Mohamed Metwalli authored
-
Mohamed Metwalli authored
-
Mohamed Metwalli authored
-
- Dec 31, 2020
-
-
Mohamed Metwalli authored
-
Mohamed Metwalli authored
-
- Dec 30, 2020
-
-
Mohamed Metwalli authored
-
Mohamed Metwalli authored
-
Mohamed Metwalli authored
-
Mohamed Metwalli authored
-
Mohamed Metwalli authored
-
- Dec 29, 2020
-
-
Mohamed Metwalli authored
Add View assertion to make sure Fragment is already displaying its views to avoid capturing blank screenshots
-
Mohamed Metwalli authored
-
Mohamed Metwalli authored
-
Mohamed Metwalli authored
-
Mohamed Metwalli authored
-
- Dec 23, 2020
-
-
Matthias Urhahn authored
* Don't log all exposure windows on `RiskLevelTaskResult.toString()` due to performance impact when logging. * Add RiskLevelResult flow optimized for just getting the latest two results. * Share risk level result subscriptions. The delay when switching from Home to RiskDetails fragment will be bridged and no re-loading necessary. * Fix test regressions * Remove test code. * Introduce specific query for "latestAndLastSuccessful". Add unit tests for SQL queries. * Fix test regressions due to missing mocking. * Address merge conflicts. * Fix instrumentation tests not building. Co-authored-by:
Ralf Gehrer <ralfgehrer@users.noreply.github.com>
-
- Dec 16, 2020
-
-
Kolya Opahle authored
-
- Dec 14, 2020
-
-
Matthias Urhahn authored
* implemented dao, entitiy, database, module - wip * Added cross ref classes for joining data * Adjusted daos * - Added ContactDiaryModule to AppComponent - Reduced code a bit * missing interface change * Uniform naming * Defined methods for contact diary repo * added mapper extension * fixed naming, Implement contact diary repo * Added repo to module, Flows shall return lists * Added foreign key constraints - outdated * Clear contact diary database on DataReset, removed unneccessary element * removed singletons * adjustments to new tech spec * Adjusted daos from stash * Added new daos to related classes * Redefined contact diary repo * Implemented contact diary repo * Added mission dao annotations * sorting opportunity * sourcecheck clean * cleanUp, added db schema, removed old stuff * missing call * ForeigenKey must be in entity declaration * Added contact diary db test, removed broken tests * added autogenerate primarykey * Moved data joining from App-Lvl to database * Explicit naming in entities * sourcecheck & ktlint clean Co-authored-by:
BMItter <berndus@gmx.de>
-
- Dec 10, 2020
-
-
Matthias Urhahn authored
* Draft: Split up test result fragment into pending and negative. * TODO pending fragment needs to forward automatically when the result is available * When do we check if tracing is enabled? * When we receive a non-pending test result while on the pending-result fragment, we forward automatically to the right screen. * Clean up pending test result layout. * Extract invalid test result fragment into it's own screen. * LINTs * Remove unused problematic API. * Fix merge regressions. * Address PR comments: Improve navigation.
-
- Dec 08, 2020
-
-
Oliver Zimmerman authored
* Removed SubmissionIntroFragment which is now unused. Also removed its unnecessary usages * Remove unused strings. * Removed includes * Added back required string. Co-authored-by:
Ralf Gehrer <ralfgehrer@users.noreply.github.com>
-
- Dec 03, 2020
-
-
Matthias Urhahn authored
* Submission upload, first draft. Storing Symptoms and TEKs. TODO: * Change upload task to use stored data. * Blocking upload task * Tests * Update symptoms on each screen. Integrate permission request and automatic TEK history update. TODO: * Cancel dialog * Blocking upload task * Tests * Add submission on cancel behavior. * LINTs and unit tests. * Hooking up navigation and first break through on TAN based submission. * Hook up navigation for QR Code to test result without consent. * Fix positive result consent given submission: Abort to Main Screen * Restore default environment. * Adjust notification target fragment. * Address LINTs * Clean up symptoms introduction nav actions. * Fix tests
-
- Dec 02, 2020
-
-
AlexanderAlferov authored
* Your test result available screen * Formatting * Lint fix
-
- Nov 30, 2020
-
-
Oliver Zimmerman authored
-
- Nov 29, 2020
-
-
Oliver Zimmerman authored
-
- Nov 26, 2020
-
-
Chilja Gossow authored
* create fragment, viewmodel, layout * remove info fragment * clean up * navigation change * navigate to data privacy review comments * move text to legal_strings.xml test code * legal_strings.xml * remove lifecycle assignment as it is redundant
-
- Nov 20, 2020
-
-
Chilja Gossow authored
* create SubmissionSettings and add to SubmissionRepository * refactor DI * refactor testcode * refactoring and test code * klint * remove AssistedInject * split consent method Co-authored-by:
Matthias Urhahn <matthias.urhahn@sap.com>
-
- Nov 18, 2020
-
-
chris-cwa authored
* activate WindowExposure mode * extirpated tokens! * detekt, ktlint * fixed tests * - v1 methods * - get v1 exposure summary * - fixme * updated exposure summary repo * Adding mock dependencies that are required to instantiate the worker factories in our binding test. * Added numberOfDaysWithHighRisk and numberOfDaysWithLowRisk according to new tech spec * Transformed minimumDistinctEncountersForRisk and mostRecentDateForRisk into extension fun * make sure list of windows and aggregated result belong together * sending values for current UI * fixed ktlint * renamed ExposureResultStore * fixed tests Co-authored-by:
Matthias Urhahn <matthias.urhahn@sap.com> Co-authored-by:
BMItter <berndus@gmx.de>
-
- Nov 11, 2020
-
-
Matthias Urhahn authored
* Replaced KeyFileDownloader.kt in favor of KeyFileSyncTool.kt. Supports new logic for more frequent downloads First draft. * Change "country" to location, which is more fitting. * Split sync success tracking into days and hours, track them separately. * Fix stale location data not being cleaned up. * Test fragment, first drafts. Remove 24 hour mode options, no longer used. * Implemented metered connection check for hourly key download. * Provide timeout values for download transaction and individual downloads via app config. * Add clear+download actions, and current network state display to the key download test fragment. * Complete unit tests for KeyDownloadTool.kt * Complete unit tests for FlowPreference and DownloadConfigMapper- * Unit tests for day and hour sync tool. * Complete tests for KeyPackageSyncTool.kt * klint & detekt <3 * Fix tags and commented out code (the deletion behavior is covered by `getting completed keys` * Fix text typo. * Sync tools need to tell what (if) new packages have been downloaded. * Interval checks for exposure detection. * Use the ENFClient, avoid direct access to the calculation tracker. * Remove defensive check "wanted countries"/"available countries" to reduce server hits. * CalculationTracker's timeout should come from the AppConfig (androidExposureDetectionParameters.overallTimeoutInSeconds) * Add test to confirm that we delete stale locations. * Finished key packages test screen. Introduced some boilerplate code to make async diffutils easier to use (will help us with the homefragment later on). * Remove ETag fallback behavior, missing ETag is such an edge case that we should throw. * Check valid max and min config values. * Fix linting issues. * Address PR comments. * EXPECT_NEW_*_PACKAGES should be based on the package time data, not the download creation timestamp. The downloads creation timestamp can be subject to race conditions. * Fix overflow due to time addition with Long.MAX_VALUE * Clean up tests * Don't crash the task if we can't get today's hour index. (Makes timetravel testing difficult, and a real abort reason would be a crash on the day index) * Display errors (don't crash) when running manual keysync from the test menu. * Fix last day/hour sync result success state not being updated. * Change Key download task collision mode from ENQUEUE to SKIP_IF_SIBLING_RUNNING. * Rename CalculationTracker to ExposureDetectionTracker * Rename `forceSync` to `forceIndexLookup`. * Remove outdated comments. * Spell out viewholder. * Move `maxExposureDetectionsPerUTCDay == 0` into it's own check. * Change test menu metered connection button behavior. It's now a button that "fakes" the connection status to metered. It's now also part of the `TestSettings` and the connection state is faked for the `NetworkStateProvider` class which may be reused. * Change test menu metered connection button behavior. It's now a button that "fakes" the connection status to metered. It's now also part of the `TestSettings` and the connection state is faked for the `NetworkStateProvider` class which may be reused. * Dry sync/error logging call. * Improve parameter naming, it's target locations, not available locations. The app config alone determines which locations we try to sync. Co-authored-by:
BMItter <46747780+BMItter@users.noreply.github.com>
-
- Oct 30, 2020
-
-
Matthias Urhahn authored
* Initial refactoring on the Submission flow. Trimming down SubmissionViewModel.kt * Refactored submission tan, and began instrumentation tests. Intro, Dispatcher and Tan complete * Adapted instrumentation tests after merge - added ToDos * Completed boilerplate submission instrumentation tests. Verification and screenshots to follow * Fix lints * More lint issues. * Fix instrumentation test dependency missmatch. * Move screenshot related permissions into a debug AndroidManifest.xml, such that they don't get included in production builds. * Added missing new line to manifest Co-authored-by:
Oliver Zimmerman <oezimmerman@gmail.com> Co-authored-by:
Kolya Opahle <k.opahle@sap.com> Co-authored-by:
harambasicluka <64483219+harambasicluka@users.noreply.github.com>
-
- Oct 19, 2020
-
-
Matthias Urhahn authored
* Introduced `TracingCardState` and `TracingDetailsState`. Removed all direct viewmodel/livedata access from all nested layouts for `TracingViewModel`. Removed `FormatterRiskHelper`. Introduced logic to reactively update the UI state if bluetooth, location or tracing state changes. TODO: * Finish tests in TracingCardStateTest.kt and TracingDetailsStateTest.kt * Finish TracingDetailsViewModel.kt and TracingCardViewModel.kt * Remove obsolete dependencies on TracingViewModel.kt and singletons RiskLevelRepository.kt, TracingRepository.kt * Breakthrough, cards update again. * Further cleanup of TracingViewModel.kt, TracingRepository.kt Still not quite there yet, too many calls going into every direction, back and forth, instead of just top->down, but we are getting there. We want data flow from business logic code to the UI, keep the UI KISS. * Update TracingCardState tests to account for changes * More refactoring, TracingViewModel.kt is now finally gone. * Fix risk details card, we reuse the cardviewmodel but need to overwrite the `showDetails` flag depending from where it's used. * Refactored several properties (notification related) out of SettingsViewModel/Repository * Fix injection * Refactoring submission related databinding code on the home fragment * Make TracingRepository.kt injectable and change viewmodel scoping for refresh calls to app scope. * Remove additional formatter calls from submission cards on home screen. * Refactored additional SubmissionViewModel logic into SubmissionRepository on the Homescreen. First UI Test is now passing. Simplified ViewModel instantiation related code. Prepared HomeFragment for smoother UI state changes, less reloading. * Improved home,tracing-details and tracing-settings loading behavior, less flickering. Fixed LiveData value assignment on background-thread. * New reactive provider for Bluetooth and Location status. Cleaned up ConnectivityHelper.kt partially. * Implement remaining tests, batch 1. * Implement remaining tests, batch 2. * Fix lint issues. * Removed a few codesmells and code duplication. Introduced Flow.shareLatest(...) * Removed unused parameters. * LINT fixes. * Fix unit test failing due to missing mocks. * Address PR comments. * Improve UI loading states, remove flickering. * Remove log spam due to polling values, add extra abort condition that checks for cancellation. Co-authored-by:
ralfgehrer <mail@ralfgehrer.com>
-
- Oct 14, 2020
-
-
Alex Paulescu authored
* Added MVVM and DI to OnboardingFragment * Refactored OnboardingFragment to work with MVVM and DI * Refactored OnboardingPrivacyFragment to work with MVVM and DI * Moved navigation functions from OnboardingTracingFragment to VM * Refactored OnboardingTestFragment to work with MVVM and DI * Refactored OnboardingNotificationsFragment to work with MVVM and DI * Added ktlintFormat changes * Added intstrumentation tests skeleton for each fragment in Onboarding flow * Removed unused import * Changed Onboarding fragment top constraint * Removed unnecessary VM declaration from layouts * Added requested changes * Added new lineat end of files Co-authored-by:
harambasicluka <64483219+harambasicluka@users.noreply.github.com> Co-authored-by:
Matthias Urhahn <matthias.urhahn@sap.com> Co-authored-by:
Ralf Gehrer <ralfgehrer@users.noreply.github.com>
-
- Oct 07, 2020
-
-
Matthias Urhahn authored
Introduce VM injection for home screen and enable screen testing (EXPOSUREAPP-2946, EXPOSUREAPP-2948) (#1320) * Rename "MainFragment" to "HomeFragment" Add VM injection. Move initial logic into VM. TODO: Move more code, write more tests. * Additional refactoring, moving logic out of the Fragment. Moving code into their own encapsulated routines/components. Use composition to reuse TracingViewModel, SettingsViewModel and SubmissionViewModel * Introduce @AppContext annotation to prevent anyone mistaking it for something else. * Add VM to RiskDetailsFragment * Simplify nested viewmodels, here: TracingViewModel.kt * Add skeletons instrumentation test skeleton for single fragments with injection and mocking. * Address PR comments. * Introduce sealed events class, + some refactoring. * Make the linter happy.
-
- Oct 01, 2020
-
-
Matthias Urhahn authored
* Fix unreliable test. Random could be randomly 0 which would fail the test. * Create types for buildflavors to prevent string comparison. Use these build variants for specific tests. * Don't assign the times variable to a final value as it breaks tests. Until refactored, it's okay to recalculate this. * Remove a few sonar code smells. * Fix broken instrumentation test for key verification. Add matching binary, signature and pubkey from pod.
-
- Sep 18, 2020
-
-
Matthias Urhahn authored
This reverts commit 6054bf57.
-
Jakob Möller authored
* Added first set of country flags Signed-off-by:
Kolya Opahle <k.opahle@sap.com> * Added first implementation of Submission Country Selection Screen. (Currently not part of nav graph). Moved stuff inside of submission package into subpackages Signed-off-by:
Kolya Opahle <k.opahle@sap.com> * Added missing changes to nav_graph file * Test Menu options for Country selection and Measurement (EXPOSUREAPP-2229) (#1086) * Implement country filter (#2229) * Implement measure for Risk calculation and Key Retrieval (#2229) * Some code cleanup for measureRiskLevelAndKeyRetrieval * Some code cleanup (#2229) * Implement usage of AppConfig usage for country codes (#2229) * change CURRENT_COUNTRY val to var * Suppress "LongMethod" warning (#2229) * Adjust unit tests to respect new country filter * Align with backend for app config country property name * Display total file size of keys in results (#2229) * Fix linting issue * Update strings.xml files * Do refactoring and some code clean up * Move RiskLevel and Key retrieval measurement in own class * Move code in logical classes. Remove translation in test fragment * Fix linting and Unit tests * Remove 3hour boolean check from debug class. * Refactor CountryWrapper and missing dates check. * Fix linting and Unit tests * Add Unit test for getMissingDates * Code cleanup * Hide keyboard on action * Extend statistics for api submission * Set callback to null after invoked Co-authored-by:
Mert Safter <mert.safter@sap.com> Co-authored-by:
Matthias Urhahn <matthias.urhahn@sap.com> * Overhaul of DiagnosisKey related Download and Caching Mechanisms (EXPOSUREAPP-2469) (#1136) * 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> * Implementation of tests for the interoperability countries selection screen (EXPOSUREAPP-2439) (#1140) * Added initial set of viewModel tests Signed-off-by:
Kolya Opahle <k.opahle@sap.com> * Fail tests on unexpected null. Co-authored-by:
Matthias Urhahn <matthias.urhahn@sap.com> Co-authored-by:
Kolya Opahle <k.opahle@sap.com> Co-authored-by:
apopovsap <66370584+apopovsap@users.noreply.github.com> Co-authored-by:
Mert Safter <69803294+MertSafter@users.noreply.github.com> Co-authored-by:
Mert Safter <mert.safter@sap.com> Co-authored-by:
Matthias Urhahn <matthias.urhahn@sap.com> Co-authored-by:
Matthias Urhahn <darken@darken.eu>
-
- Sep 11, 2020
-
-
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>
-
- Jun 11, 2020
-
-
ksergeevit authored
* worker tests * small fix * fixes testresult job tests Co-authored-by:
Hee Tatt Ooi <hee.tatt.ooi@sap.com> Co-authored-by:
Jakob Möller <jakob.moeller@sap.com>
-
- Jun 09, 2020
-
-
Jakob Möller authored
Signed-off-by:
d067928 <jakob.moeller@sap.com>
-
ksergeevit authored
Co-authored-by:
Jakob Möller <jakob.moeller@sap.com>
-