Target Android 12 and adapt to behaviour changes
For review, I suggest to review all commits individually as each commit addresses one specific issue.
Since we need to test this thoroughly anyway, I used the opportunity to also upgrade assorted dependencies.
Test instructions: This is a very disruptive merge request. The following areas of the app should be tested on at least one pre-Android 12 device, one Android 12 or 13 device and an Android 5 device.
- Android 12+ only: remove nearby devices permission and start app
- bluetooth plugin should never be enabled when the permission is missing
- enabling bluetooth plugin should require permission (via settings and connection screen)
- test adding contacts nearby with focus on the permission prompts before the camera appears.
- android 12+ should ask for nearby devices permission, but not location permission
- old android should ask for location permission
- when location permission is denied, a dialog should offer the user to go to app system settings
- test contact -> connecting via bluetooth
- android 12+ should ask for nearby devices permission, but not location permission
- old android should ask for location permission
- when location permission is denied, a dialog should offer the user to go to app system settings
- test starting a hotspot
- it now should ask for the location setting to be enabled on Android 12 and 13
- it should ask for the precise location on Android 12 and is not expected to work with approximate location
- starting the app should only ever show one splash screen. on android 11+ the splash screen only shows the logo
- Android 12+ only: do a full run through all areas of the app, trigger all notifications, etc. once to ensure there are no crashes.
- Go to (system) settings -> apps -> Briar -> Mobile data & Wi-Fi -> App settings and ensure that briar's connection settings get opened