covidwatchorg / covidwatch-android-en Goto Github PK
View Code? Open in Web Editor NEWCovid Watch Android Exposure Notification app
License: Apache License 2.0
Covid Watch Android Exposure Notification app
License: Apache License 2.0
Run ProvideDiagnosisKeysWork
once in 6 hours
"en" implies the English language -- so that covidwatch-android-en could easily be misinterpreted as "The english language implementation of covidwatch"
Test menu items
ExposureInformation
into databaseExposureSummary
object saved in the preferences with added previously ExposureInformation
objectUse RandomObjects
in FakeExposureNotification in order to generate fake objects.
Use ExposureInformationRepository
to save fake objects
In order to fetch data from EN server we need a list of the regions visited by the user.
n
daysn
days beforen
daysn
should be equal to the number that PHAs require for relevant exposure period. By default it's 14
following EN requirements for exposure keys.
If the app fails to download or upload the keys it won't work properly leading to a wrong impression of not having exposures for users.
First, the app should has internal retry policy and if it fails then we display a notification to users so they are aware of the problems.
Info from ZD ticket:
I cannot enable exposure notifications on my phone (Google Pixel 1), however, in settings it shows that it is showing notifications. When I click on enable exposure notifications, it shows a "something went wrong" prompt.
This issue arose after I installed the app. At the end of the setup process, I was unable to tap on the enable exposure notifications button. When I did tap on the button, a "something went wrong prompt" appears.
Note: I have asked the user which version of Android OS they are using and will add that info here when I have it.
Add log messages to most of the use case classes and other important business logic classes and methods.
Use Timber
Timber.d("message")
Timber.d("message: $variable")
ProvideDiagnosisKeysFromFileUseCase
is a simple example of logging in a UseCase class.
struct ExposureConfigurationWithExposures: Encodable {
let exposureConfiguration: String
let possibleExposures: [Exposure]
}
Exported exposures json name format DeviceName_Date_TestCase.json
. TestCase
is an input by a tester
Export ZIP file using a specific name: "\(UIDevice.current.name)_\(ISO8601DateFormatter.string(from: Date(), timeZone: TimeZone.current, formatOptions: [.withInternetDateTime, .withFractionalSeconds]))"
SafetyNet provides a set of services and APIs that help protect your app against security threats, including device tampering, bad URLs, potentially harmful apps, and fake users.
In the reference app they have an example implementation. Taking into account that SafetyNet and Exposure Notification are both included in Play Services, they probably want to add a few extra security steps by using SafetyNet before uploading users' data.
For now, the example is just one class that is not actually used and complete. The official guide comprise of many steps including a verification with our own server.
Do a quick update without massive changes because the API is unstable and the new design in v1.3 that uses tokens might be removed in the future.
post v3
Requested by Bermuda Dept of Public Health
As an end user, I can see how recently I was in contact with another user (i.e., when I last logged an RPI) so that I can see that my app is working correctly.
This will also build excitement and engagement with technical users.
We'd want to bucket the times and not provide an exact time, but something like "In the last 10 minutes", "last Hour", "in the last 24 hours", "in the last 3 days", "In the last 7 days", "Greater than 7 days".
https://www.figma.com/file/I4OOjT4VhsSberDIAZTkcH/Covid-Watch-App-v2-dev?node-id=1341%3A46122
Should build on what was delivered in v2
Also requires backend work and technical design to figure out storage of data, and how we initially report (can be just pulling from the DB initially)
Also requires security review for privacy concerns.
Possibly also use this method to allow the use of calibration for testing but not for release
Log event to Firebase when:
It opens now a test EN screen
Exposures screen?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.