Skip to content
Snippets Groups Projects
  1. Dec 01, 2020
  2. Nov 30, 2020
  3. Nov 27, 2020
  4. Nov 26, 2020
  5. Nov 25, 2020
  6. Nov 24, 2020
  7. Nov 20, 2020
  8. Nov 19, 2020
  9. Nov 18, 2020
  10. Nov 17, 2020
  11. Nov 16, 2020
  12. Nov 13, 2020
  13. Nov 11, 2020
    • Matthias Urhahn's avatar
      New quota error (EXPOSUREAPP-3511) (#1569) · 0753c49c
      Matthias Urhahn authored
      
      * Show more specific error message when quota limit is reached and remove "Update ever 24h text".
      
      * Show custom title in error dialog and make stack trace selectable.
      
      * LINTs
      
      * Add a log statement so that in all cases the the base error reporting is made visible.
      
      Co-authored-by: default avatarharambasicluka <64483219+harambasicluka@users.noreply.github.com>
      0753c49c
    • Matthias Urhahn's avatar
      Update Risk Score more than once a day (EXPOSUREAPP-3455) (#1550) · 3e6e7b28
      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: default avatarBMItter <46747780+BMItter@users.noreply.github.com>
      3e6e7b28
  14. Nov 10, 2020
    • Matthias Urhahn's avatar
      Improved app config handling (Identifier, local fallback) (DEV) (#1553) · 22f36224
      Matthias Urhahn authored
      
      * Add default app config as last resort fallback.
      
      * Change config type names and improve logging for HotDataFlow.kt
      
      * Run the app config retrieval on the app scope, otherwise UI unsubscription could cancel the app config retrieval.
      
      * Offer "identifier" property that can identify app configs such that subscribers know when it is considered changed.
      
      * Behavior change AppConfigProvider.kt, there is no caching/replay grace period, once the last subscription is gone, it's  last value is cleared.
      
      * Klint ;)
      
      * Add a unit test specifically for checking the default configs checkum and parsability.
      
      * Fix test breaking on CI.
      
      * Don't check the checksum for the config loaded from assets.
      
      Co-authored-by: default avatarharambasicluka <64483219+harambasicluka@users.noreply.github.com>
      22f36224
  15. Nov 09, 2020
  16. Nov 06, 2020
  17. Nov 05, 2020
    • Matthias Urhahn's avatar
      Improved AppConfig logic for 1.7.x and 1.8.x (EXPOSUREAPP-3455) (#1520) · 647848d6
      Matthias Urhahn authored
      
      * Split and hide the protobuf config behind interfaces with individual mappers responsible for creating the desired formats.
      
      * Merge branch 'release/1.7.x' into feature/3455-more-frequent-riskscore-updates-configs
      
      # Conflicts:
      #	Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/risklevel/ui/TestRiskLevelCalculationFragmentCWAViewModel.kt
      #	Corona-Warn-App/src/main/java/de/rki/coronawarnapp/transaction/RiskLevelTransaction.kt
      #	Corona-Warn-App/src/test/java/de/rki/coronawarnapp/transaction/RiskLevelTransactionTest.kt
      
      * Make the AppConfig observable.
      Provide the server time offset.
      Offer a lastUpdatedAt timestamp.
      Add an app config specific test screen.
      Clean up test screens a bit and move debug options out of API test options.
      
      * Fix test regression due to refactoring (moved code around).
      
      * Store the server timestamp and offset at retrieval.
      Switch to config storage via json to be able to store additional meta data fields (i.e. time).
      
      * KLint and Me have a hate relationship based on both mutual admiration.
      
      * Fix time offset parsing being locale dependent.
      
      * Fix broken unit tests.
      
      * Improve offset accuracy, move before unzipping.
      
      * Fix overly long livedata subscription to results (viewmodel scope vs observer scope)
      
      * Add mapping for the new protobuf configs + tests.
      
      * For cached (retrofit) response, we need to check the cacheResponse and its timestamps
      to determine an accurate time offset.
      
      * Exposure a boolean property to tell us when a fallback config is being used.
      
      * Hide the observable flow<ConfigData> behind a method that can automatically triggers refreshes.
      
      * Use a common mapper interface.
      
      * Address PR comments and KLints.
      
      * Fix refactoring regression.
      
      * Improve config unzipping code.
      
      * Add flag to forward exception thrown during HotDataFlow.kt initialization.
      
      * Don't specify a default context via singleton.
      
      * Move download and fallback logic into it's own class just responsible for sourcing the config: "AppConfigSource".
      "AppConfigProvider" is now only responsible for making it available.
      
      * Simplify current concepts for making the app config observable until we have a default configuration.
      
      * Improve app config test screen, delete options, better feedback.
      Show toast instead of crash on errors.
      
      * Fixed GSON serialization not encoding/decoding the byte array correctly.
      Added specific type adapters for instant and duration to get cleaner json.
      
      * Remove type adapters from base gson due to conflict with CalculationTrackerStorage.
      
      * We want to default to forced serialization of instant by our converters, instead of using the default serialization which will differ
      between Java8.Instant and JodaTime.Instant, to prevent future headaches there, register explicit converters by default,
      and overwrite them if necessary (currently only needed for CalculationTrackerStorage.kt).
      
      * Improve AppConfigServer code readability by moving code into extensions.
      
      * Fix merge conflicts
      
      * Throw a more specific exception if gson type decoding fails due to malformed base64 encoding.
      
      * Add unit test for Gson ByteArrayAdapter.
      
      Co-authored-by: default avatarharambasicluka <64483219+harambasicluka@users.noreply.github.com>
      647848d6
  18. Nov 02, 2020
  19. Oct 29, 2020
    • BMItter's avatar
      Improved crash logging & handling (EXPOSUREAPP-2572) (#1475) · be4c773d
      BMItter authored
      
      * FileLoggerPlus - RX added - preparation
      
      * Buffer config as constants
      
      * avoid empty lines
      
      * Reworked logging to file - wip
      
      * Collecting errors to dao - wip
      
      * Added crash report to app db and created module
      
      * do it
      
      * inject crashReportTree - wip
      
      * use dagger injection
      
      * retrieve short hash via gradle
      
      * removed todo
      
      * Updated database to version 2 for new ReportEntity - old base
      
      * deprecated old engagement - RX not allowed anymore
      
      * use global scope for coroutines in crash report tree - ktlint clean
      
      * added menu item - error reporter (replace later to new structure)
      
      * basic recylcerview and fragment added to menu - wip
      
      * deprecated data class
      
      * Delete CrashModel.kt
      
      * crash report list item to use data binding
      
      * separated Reporteradapter - klint clean
      
      * use separated Adapter in ReporterFragment - cleanup
      
      * Added ErrorReporterViewModel - connected data to list
      
      * dependency injection for crash report, better structure, todo cleanup
      
      * some refactoring, cleanup, ktlint
      
      * adjustments for 1.6.x
      
      * temp action to open crash report fragment
      
      * removed testcode
      
      * updated layout - wip
      
      * connected view & data
      
      * satisfy circle ci checks
      
      * plant reportingTree, testbutton, klint clean
      
      * updated layout for reporter - wip
      
      * better format and layout
      
      * better message handling
      
      * missing icons for errors on debug
      
      * Adjusted error report index
      
      * Removed ugly show button, report clickable
      
      * Added SettingsCrashReportDetailsFragment & corresponding files
      
      * fixed merge inconsistence
      
      * fixed injection overall
      
      * use livedata
      
      * details added to report - wip
      
      * beauty
      
      * share & layout root preparation
      
      * make error report shareable
      
      * removed Dispatcher.IO for example
      
      * Introduce skeleton classes for bugreporting
      
      * Refactoring, adjustments to be able to build again
      
      * Created BugEventEntity, Changed id to Long for more efficiency,  Removed unused events
      
      * refactored ui to deviceForTesters, testmenu etc
      
      * adjusted interfaces & related, better structure
      
      * uses own db, added converter, adjusted modules
      
      * adjusted bugrepo, defaultbugrepo
      
      * shared report, better visualisation
      
      * changed crash db name
      
      * Implemented DefaultBugRepository
      
      * Added device info to BugEvent, BugReporter collects Tag, Added default impl of BugEvent etc
      
      * corrected bug in RollingLogHistory
      
      * removed deprecated crash package
      
      * quickfix - wip
      
      * cleanup
      
      * cleanUp, adjusted simulation button to new structure
      
      * moved bug related layouts to deviceForTesters package
      
      * removed old RX dependenies and related context
      
      * fix build for deviceDebug
      
      * lint clean
      
      * current set of relevant exceptions as before
      
      * attach log to output
      
      * improved output
      
      * Delete obsolet ic_bug in main
      
      * Delete ic_coffee.xml
      
      * changed shortID to shortCommitHash for better transparency
      
      * companion to bottom
      
      * removed string encapsulation
      
      * cleanup unused import and blank line - PR Comment
      
      * typo fixed
      
      * rm empty line
      
      * removed relict module
      
      * layout fix
      
      * adjusted unrelated method call
      
      * fixed package inkonsistence
      
      * Use flow instead of livedata in non-ui
      
      * better fun naming
      
      * Replaced interface with inline listener
      
      * Improved SettingsCrashReportDetailsFragment and SettingsCrashReportViewModel, formatting adjusted
      
      * cleaned converter
      
      * Delete Project.xml
      
      * added log statement to DefaultBugRepository
      
      * adjusted magical number
      
      * Use CommonConverters instead of unique Converters in BugDatabase
      
      * Extension function for the resuce -defaultBugRepository
      
      * removed FormatterCrashReport completly
      
      * changed long to UUID
      
      * satisfy buggy ktlint checks
      
      * Update SettingsCrashReportViewModel.kt
      
      use postvalue
      
      * avoid passing viewmodel
      
      * store appVersionCode as Long for beeing futuresave
      
      * Update SettingsCrashReportViewModel.kt
      
      removed lazy init
      
      * Changed BugDatabase to factory pattern
      
      Co-authored-by: default avatarMatthias Urhahn <matthias.urhahn@sap.com>
      Co-authored-by: default avatarharambasicluka <64483219+harambasicluka@users.noreply.github.com>
      be4c773d
  20. Oct 27, 2020
  21. Oct 19, 2020
    • Matthias Urhahn's avatar
      Refactor missused ViewModels, support automated UI tests and screenshots (EXPOSUREAPP-2946) (#1415) · cec56fdb
      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: default avatarralfgehrer <mail@ralfgehrer.com>
      cec56fdb
  22. Oct 15, 2020
Loading