Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bluetooth and Exposure Notification should be checked separately #125

Closed
henrytao-me opened this issue Jun 17, 2020 · 8 comments
Closed
Labels
enhancement New feature or request

Comments

@henrytao-me
Copy link
Member

henrytao-me commented Jun 17, 2020

What

Bluetooth and Exposure Notification should be checked separately in app

Context

About Bluetooth and Exposure Notification:

  • They are two separate permission / option. You can still turn on EN but turn off Bluetooth.
  • If EN is ON but Bluetooth is OFF, the framework on Android automatically shows a notification asking user to turn it on. User can dismiss the notification without turning it on.
  • If bluetooth is OFF and user dismisses the notification, it is most likely that EN won't work properly.
  • The 1st screenshot shows both EN is OFF and Bluetooth is OFF but my bluetooth is actually ON.
  • The 2nd screenshot shows EN is ON but bluetooth is OFF but in the app, there is no UI saying it is off and needs to turn on.

@henrytao-me henrytao-me added the enhancement New feature or request label Jun 17, 2020
@ChrisDryden
Copy link

I'm working on this in the cds-sns repo, also working on adding the correct deep-links to the page to enable bluetooth.

@ChrisDryden
Copy link

added some notes here cds-snc/covid-alert-app#78

@ChrisDryden
Copy link

ChrisDryden commented Jun 20, 2020

Would you be okay with me implementing this with this library? It has functionality to be able to see it bluetooth is enabled and includes a link to the bluetooth settings page. https://github.com/c19354837/react-native-system-setting

In a side note, it appears that any functionality is testing whether the bluetooth is enabled for iOS requires an additional detail in the manifest or the app could be banned from the ios store: NSBluetoothPeripheralUsageDescription

From here: https://github.com/c19354837/react-native-system-setting/blob/master/iOS.md#ios

@ChrisDryden
Copy link

It appears that more functionality is needed in the android status check. Currently it appears that the bluetooth status is not checked currently for android and is only checked for iOS.

@ChrisDryden
Copy link

This PR uses an additional library that can get the status of whether bluetooth is enabled and actually allows you to enable it from the app in Android. In iOS it appears that you are actually not able to access the bluetooth settings from an app and will be blocked from the app store if you attempt to do so so this is the fix for that too.

@henrytao-me
Copy link
Member Author

Hi @ChrisDryden ,

I was discussing with my team few days ago and we think it makes more sense for user to not care about bluetooth if using exposure notification (EN). That means:

  • The turn on bluetooth UI should be removed.
  • Android bridge for EN should also check bluetooth status and returns same payload as iOS.
  • When turn on EN, Android should turn on bluetooth at the same time.

So, it is a bug / feature needed to implement on Android. I will close this issue and open another one.

@timarney
Copy link

timarney commented Jun 21, 2020

Sorry for commenting on a closed issue - pinging @henrytao-me so this gets noticed.

Re: EN + Blue Tooth

Note: I haven't gotten fully up to speed yet on how the EN api works

Scenarios - App that has EN entitlements

==========================
So we're all on the same page - without needing to read all the docs or If someone has already described this somewhere please point me to it :)

==========================

1) From the APP when a user turns on EN does that enable EN + Bluetooth?
2) After EN is on what happens later if the user separately turns off Bluetooth (Still works for push notifications and already collected data but won't collect anymore?)
3) Airplane mode - what happens?

When we're saying turn on EN for iOS that is here

@henrytao-me
Copy link
Member Author

henrytao-me commented Jun 21, 2020

I was playing round with existing app like this https://www.immuni.italia.it/download.html. Look like:

On Android:

  • Turn on EN will automatically turn on bluetooth. It is not because of the framework support that it is because Android can turn on bluetooth programmatically.

On iOS: the flow is more complex

  • If bluetooth is turn OFF while EN is ON, the app shows inactive and ask user to turn on bluetooth manually.
  • I don't have enough information to answer 2) and 3). So, we might need to ask Apple team, I guess.

cc @gavrix if you know iOS answer. 🙇

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants