Skip to content

Releases: covid19database/phone-app

Fix crash in iOS + update icon

17 Apr 05:55
885d648
Compare
Choose a tag to compare
Pre-release

Fix crash in iOS (e-mission/e-mission-transition-notify#27)
Update icons to look less scary

Finally remove iOS WKWebView references + BLE for iOS as well

17 Apr 05:53
74eeb5f
Compare
Choose a tag to compare

Release notes

  • Upgrade plugins that have references to UIWebView as well, found by grepping through the binary. Now we no longer get the "Deprecated API Usage" warning
  • Add BLE PoC for iOS as well
  • Modify both plugins to be consistent with the underlying library interface

BLE inconsistencies

  • cross-platform advertise/scan doesn't seem to work. As you can see from the screenshots below, android <-> android works, and iOS <-> iOS works, but android <-> iOS does not appear to work
  • the iOS versions seem to pick up a couple of tokens that nobody broadcast (eq3j... and 909fb...). Both the iOS phones pick them up, so I don't think it is a spurious signal. I wonder if these are the android tokens, but garbled in some way.
  • however, the android phones clearly don't see iOS

@tzachari we should probably pull the most recent versions of the android library and re-test and report to the covid-watch group if we find more consistent errors.

OS Phone 1 Phone 2
android Screenshot_2020-04-08-22-44-00
iOS IMG_0005 IMG_0002

Latest versions of ios and android + BLE on android

17 Apr 05:50
9500b79
Compare
Choose a tag to compare

Release notes:

  • upgrade cordova-ios to 5.1.1 and cordova-android to 8.1.0
    • cordova-ios upgrade was needed to support WKWebView to pass app store review
    • cordova-android upgrade was needed to support the BLE plugin, written in kotlin
  • support in-memory scanning of BLE on android by wrapping libcontacttracing https://github.com/covid19risk/covidwatch-android/tree/libcontacttracing in a plugin and creating a new tab for it. @tzachari did most of the initial work on this feature
Description phone 1 phone 2
Started advertising Screenshot_2020-04-05-22-03-33 Screenshot_20200405-220344
Received scans Screenshot_2020-04-05-22-04-02 Screenshot_20200405-220417

Installing:

  • on Android: use the .apk below
  • on iOS:
    • in the emulator: unzip the .app below and drag it into the emulator
    • on a real device: ask me for a TestFlight invite

Testing:

  • For location tracking tests, use the location spoofing feature of the emulator as described earlier (https://github.com/covid19database/phone-app/releases/tag/v0.0.3)
  • For testing BLE, you will need to use physical devices.
    • Place two devices in proximity to each other
    • Click on "Scan" start and "Advertise" start on both of them
    • Refresh periodically to see the CENs show up

Initial version with all the location-only changes

17 Apr 05:32
272ad70
Compare
Choose a tag to compare

This is the initial version of all the location-only fixes. I believe that this is a functionally complete version that has no serious bugs and does not push data to the server.

Bug fixes + new features:

  • adds a page describing the permissions we need, why we need it, and how to respond to the prompt ()
  • fixes the issue with the "Please login to continue server communication" prompt by setting a hardcoded account ("N/A") (b65982a)
  • fix a subtle bug in the transition notification plugin for iOS found during testing (e-mission/e-mission-transition-notify#18)
  • ensure that all resources (map tiles, etc) are loaded over https, and enable the whitelist plugin to ensure that they are not blocked
  • simplify the diary loading to not contact the server since we know it will fail (e6e7feb)
iOS iOS android android
Simulator Screen Shot - iPhone 11 Pro Max - 2020-04-04 at 08 39 59 Simulator Screen Shot - iPhone 11 Pro Max - 2020-04-04 at 07 35 58 Screenshot_1586015183 Screenshot_1586010961

Installing:

  • on Android: use the .apk below
  • on iOS:
    • in the emulator: unzip the .app below and drag it into the emulator
    • on a real device: ask me for a TestFlight invite

Testing:
It is hard to test this on real devices since most of us are not leaving the house. Even if we leave for short walks around the block, the battery efficient geofencing will not trigger an exit, and no tracking will happen.

Therefore the easiest way to test at this time is to use the location spoofing feature of the emulator.

  • on iOS, use the Features -> Location option
  • on android, you can upload a GPX trace for playback.
    • I have attached a GPX trace from Mountain View to San Francisco mapstogpx20200404_033149.gpx.gz
    • You can also generate other traces at https://mapstogpx.com/
    • Make sure to use the Exact points (track route) option to get sufficient density for the resulting maps to be interesting.

Note that location simulation in the emulators can be pretty flaky.

  • On iOS, I frequently have to use the "Custom Location" option to reset the internal location manager.
  • On Android, the emulator sometimes generates points in the future, which e-mission duly filters out as invalid.
  • You can see what is going on by using the "Settings -> Developer Zone -> Check Log" feature.
  • When broken, reset and restart the emulator until it works or use the internet for help.

TODO:

  • Switch to WKWebView on iOS (hopefully simple fix)
  • I had to disable the trip end notifications/confirmation because of subtle bugs on both android and iOS
    e-mission/e-mission-transition-notify#25 Will return to this after higher priority items are fixed

Add iOS support

17 Apr 05:25
7736990
Compare
Choose a tag to compare
Add iOS support Pre-release
Pre-release

Add iOS support to the stripped down version.
This is on [email protected], but still on UIWebView

Next steps:

  • integrate @ericafenyo's fix for a config option related to manual sync (which should stop the crash on trip end)
  • switch to WKWebView
  • maybe make some UI changes

First stripped down version of e-mission

17 Apr 04:55
b88c729
Compare
Choose a tag to compare
  • Does not connect to a server (server is set to localhost, which does not exist)
  • Only has the diary and the settings
  • Strip down extraneous functionality

TODO:

  • Deal with build failure
  • And the resolver rename
  • And maybe turn on some automated testing?

Screenshots:

Our usual diary and the new icon
Screenshot_1585606007 Screenshot_1585606000