covid-alert-ny / covid-green-app Goto Github PK
View Code? Open in Web Editor NEWThis project forked from covidgreen/covid-green-app
Covid Alert NY - React-Native App
License: Apache License 2.0
This project forked from covidgreen/covid-green-app
Covid Alert NY - React-Native App
License: Apache License 2.0
We are planning to use github actions to trigger a CircleCI build (and test suite run, under another ticket).
A user should be able to answer optional demographic questions and then daily answer the "My Health Today" symptoms.
If only 1 of the first 7 symptoms is selected (Fatigue -> Diarrhea), the user is shown a "low risk" version of the screen. If any of the last 4 symptoms (Fever -> New loss..) or more than one symptoms overall are selected, a "high risk" version of the screen is presented. This is documented in the flow below:
https://miro.com/app/board/o9J_kogLK_M=/?moveToWidget=3074457349247704214&cot=13
Build: 1.0.0 (13)
OS: Both iOS and Android
Within My Health Log, when you log enough qualifying symptoms, and you are brought to the screen with the "Find a Site Near You" link, the link brings you to google.ro instead of the appropriate provider page.
We would like to automate builds for iOS and Android, run automated tests on real devices, and push passing builds to their respective store platforms for approval/review using a complete CI/CD solution.
Translations are not working. For example, here are the translations for the "Back" button:
navbar.back | Back | Retounen | назад | পেছনে | 뒤 | 背部 | Espalda |
If you just stay on the "My Language" page and switch to the first two languages after "English", the "Back" label does change. But if you go to the 4th language onwards ("Kreyol ayisyen"/Haitian Creole), the label switches back to the Russian version (lang #2, назад). If you navigate out, you will see that all the labels remain in Russian instead of translating to the specified language. Spanish maps back to English.
Please fix to include at least Google translations of these languages while we obtain manual translations. Thank you.
Run Accessibility Inspector in Xcode and address key issues
It should be the short version written out at https://nearform.invisionapp.com/d/main#/console/20287854/428431587/build. At the bottom of that page is a link that should go go to the longer policy on the web: https://apps.health.ny.gov/public/covidsmartprivacy.html
Kindly change "COVID Smart NY" to "COVID Alert NY" in:
Assigning to @stuartgiles as the first step. Stuart, NYS requested we archive the current artwork so we don't lose it entirely if a future comparison has to be made. Also, can we kindly make the changes to the InVision prototype as well after you take care of the app itself? We still have a number of eye-balls on this and leaving InVision unchanged will cause a ton of confusion.
Thank you.
Please change the duration of charts to last 30 days instead of last 7 days.
The current project setup does not include an APNS entitlement. This can be added, but I do not want to add it unless we are actually planning to use remote push notifications in the NY app. Until that time, App Store Connect will send a warning for all uploaded builds that the app uses APNS but does not have the entitlement. You can ignore this for internal TestFlight builds for the time being.
As part of the AWS Device Farm configuration, we will need to define a list of devices, both Android and iOS-based, upon which our tests will be executed. I have reached out to Apple for any information they have regarding the number and types of iPhones in NYS. The Android devices would be so varied that we would be better off selecting a representative set across the most popular manufacturers and screen sizes.
@kevin-sheldon , can you kindly get the following content translated in the columns it is in? If possible this should be translated in the same file. If you need to break it up into smaller sheets, your call, but if the app changes and the number of labels changes, we'll have a lot of trouble mapping it back. It would be best if the translators can do their translations and put them in directly in the correct cells. Please ask the translators to use the InVision prototype to obtain context. Our goal would be to replace as much of the Google translations to be manually translated as possible. Also, maybe mark each cell's background green so that we can easily keep track of which cells are done and which aren't? Thank you.
@colmharte can you kindly double-check that this is the most up-to-date set of labels? If the labels are changed, we need to carefully merge it into this file. If we can pull in the content from this file mid-week so we can test some of the manual translations, that'd be great.
Follows on from #47
Where Markdown copy describes a telephone number, it'd be useful to be able to define that in the Markdown so that it is rendered in the app as a pressable telephone number link.
iOS 13.6
XS Max
Build: 1.0.0 (13)
When going through the My Health Log, either for the first time or trying to update through Settings, the "X" icon does not close the overlay screen and forces me to make a selection
In order to avoid having to remember to update the build/marketing version of the app in multiple places, we should refactor how we set the version to be set in a single place and then referenced in all appropriate places (e.g. build.gradle, xcode project, app version display).
Spanish translation isn't hooked up. It's in the spreadsheet as an auto-translation for now and so at least that should work prior to manual translations being available.
In order to be able to update the configuration of the app without releasing a new build to the app stores, we want to integrate with remote config. The app should fetch the latest remote config upon launch as well as when the app comes to the foreground.
For QC purposes, we need an "internal" menu to jump to the screens/states that are otherwise inaccessible, such as proximity alerts, positive cases, error conditions, etc.
We currently have some simple script to import and export text content for the app in various languages.
As discussed in #32 this issue collects the improvements to be implemented.
iOS 13.6
iPhone XS Max
Build: 1.0.0 (13)
If you skip onboarding process ("Skip for now" button) and do not enable Exposure Notifications, the "Setup" button does not work to allow you to enable Exposure Notifications at a later time. If you then try to enable My COVID Alerts via the Settings option, there is no option to enable Exposure Notifications.
iPhone X, iOS 13.6, text size set to 3rd stop from the left, TestFlight build 1.0.0 (4)
Scope: Onboarding Screens
Issue: When you click on the Share Icon, or the button to Share the App, the icon and associated text on the iOS screen are incorrect. Should display the NYS COVID App icon and text. See attached screenshot.
From Antoine: Health Log showing tabs while in the flow. They should not.
Build: 1.0.0 (13)
OS: Android
Android: Replicated by pressing 'I am feeling well today' then using the Back function of the Android device to return to the entry and pressing 'I am feeling well today'. Can be done multiple times and also with symptoms as long as 'Done' is not pressed on the next screen. Screenshot added.
iOS: You can also enter multiple logs. If you select "I am feeling well today" then swipe the screen from left to right to go back, it will allow you to enter another log for the same day and saves multiple logs.
Build: 1.0.0 (13)
OS: Android
When using the search function in the My Health Log county picker, user was able to put in any text then hit the "X" button and the text still remained on the screen. User couldn't save entries though, likely because the word entered wasn't a valid county. This issue does not seem to exist on iOS.
The Android version of the app crashes when trying to share exposure keys.
Platform: Android
Build: 13
Error:
AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
Process: gov.ny.health.proximity, PID: 19935
AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'byte[] java.lang.String.getBytes()' on a null object reference
AndroidRuntime: at android.util.Base64.decode(Base64.java:119)
AndroidRuntime: at com.rajivshah.safetynet.RNGoogleSafetyNetModule.stringToBytes(Unknown Source:1)
AndroidRuntime: at com.rajivshah.safetynet.RNGoogleSafetyNetModule.sendAttestationRequest(Unknown Source:0)
AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
AndroidRuntime: at com.facebook.react.bridge.JavaMethodWrapper.invoke(Unknown Source:149)
AndroidRuntime: at com.facebook.react.bridge.JavaModuleWrapper.invoke(Unknown Source:21)
AndroidRuntime: at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:883)
AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:100)
AndroidRuntime: at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(Unknown Source:0)
AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
AndroidRuntime: at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(Unknown Source:37)
AndroidRuntime: at java.lang.Thread.run(Thread.java:919)
Steps to reproduce:
The verification process while in the simulator requires a TEST_TOKEN
to be defined in the .env
file because the DeviceCheck
API does not work. Update the README.md
to expain this.
Build: 1.0.0 (13)
OS: Both iOS and Android
When toggling to the different county charts on the NY COVID Data screen for the counties Warren, Washington, Westchester, Wyoming and Yates, the app crashes completely. Attempts to restart app are met with a blank purple screen (Android), and a blank white screen (iOS). Restart of device did not fix. Uninstalling and redownloading the app was needed to return back to normal functionality. Clearing data from the Android Settings menu for the COVID app also allowed it to start again, but in default state. Clearing only the cached data from the Android Settings menu for the COVID app did not fix the issue.
Repro steps:
Another tweak on this flow (I am seeing this behavior on iOS and Android):
Devices used: iPhone 11 Max Pro running 13.6; Pixel 4 XL running Android 10
When running on iOS, the NetInfo
module is not accurately detecting device connectivity.
See: react-native-netinfo/react-native-netinfo#352
(as a temporary workaround I have removed the check for isInternetReachable
and only use isConnected
otherwise it is not possible to advance in the app at all)
If you share the app via text on iOS, the text that is generated references COVID Green and points to the Irish app. Can we kindly make it this:
Help keep your fellow NYers safe from COVID-19 by flattening the curve. Get the COVID Smart NY app: https://CovidSmartNY.health.ny.gov/.
iOS 13.6, iPhone X, build 12
Build 1.0.0 (13)
Tested on both iOS and Android
If you submit your responses for My Health Log for the day, and close out of the app (not delete, but full app close) then restart, the current submission deletes and user is forced to start over again.
My health log: if any symptoms are checked "I am feeling well" button should be disabled. If symptoms are unchecked, it should be enabled again.
While going through onboarding screens, if you click "Don't Enable" for Exposure Notification prompt, the next screen says that Closeness Sensing is now active. However, once you "Done", it still says Closeness Sensing is not active (as expected).
Need to remove success confirmation message if someone clicks "Don't Enable" for EN.
If for some reason the register
call fails (e.g. iOS version does not support DeviceCheck, the app is running in the iOS simulator without a TEST_TOKEN
, other network related issue with the API call) the app displays an error indicating that the device has a connection issue. This will lead to a user being confused and checking their internet settings.
The error should be related to the actual problem.
In order to update the app bundle without a new app store build for critical/timely updates, we should integrate with codepush and write a script to generate targeted codepush bundles.
It should be [Mmm dd]
3-letter months (Jan, Feb, Mar,...)
no period but a space
1/2 digits for the day
no “th” or “st” afterwards
Please see
https://app.zeplin.io/project/5f23ee3d1eb2f9215942942b/screen/5f3bab5e6b97a59e9ce9c13d
iPhone SE
I entered a new country code and the "Yes I want to opt-in" button became active even though the phone number field was still blank.
Before I changed the country code, the button is not active.
After I changed the country code, but before entering a phone number, the button became active prematurely.
(Changes to behavior)
Close icon on top left of most overlays is not usable. Requires many, indeterminate number of taps before it activates. You can see this in "How It Works" and any of the Health Log selectors.
Will check with DOH business stakeholders, but submitting enhancement idea to allow for an individual to edit the My Health Log entry for current day only.
Business Use Case: I enter at 7am that I have no symptoms, but by 4pm same day, I develop Fever, Cough, and other symptoms. Should I have the ability to edit my entry for the day and based on edited results, be presented with the correct result screen.
Run Android Accessibility Scanner and address key issues
iOS 13.6
Build: 1.0.0 (13)
If you click on "Device Settings" to enable Exposure Notifications, it just brings you to the main iOS settings page. It should bring you directly to the settings screen to enable EN (Settings > Privacy > Health). If the user tries to enable or re-enable EN after the onboarding process, they will not know how to get to the screen to enable if it just brings them to the main iOS settings page.
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.