Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a0558a5f authored by Christian Grigis's avatar Christian Grigis Committed by Marvin W.
Browse files

EN: Fix permission granting on Android 11

parent 1d747f6a
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -118,14 +118,26 @@ class ExposureNotificationsConfirmActivity : AppCompatActivity() {
    }

    private fun requestPermissions() {
        if (Build.VERSION.SDK_INT >= 23) {
            requestPermissions(permissions, ++permissionRequestCode)
        when {
            Build.VERSION.SDK_INT >= 30 -> requestPermissions(
                permissions.toSet().minus("android.permission.ACCESS_BACKGROUND_LOCATION").toTypedArray(), ++permissionRequestCode
            )
            Build.VERSION.SDK_INT >= 23 -> requestPermissions(permissions, ++permissionRequestCode)
        }
    }

    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        if (requestCode == this.permissionRequestCode) checkPermissions()
        if (requestCode == this.permissionRequestCode) {
            when {
                Build.VERSION.SDK_INT >= 30 && permissions.contains("android.permission.ACCESS_FINE_LOCATION") ->
                    requestPermissions(
                        arrayOf("android.permission.ACCESS_BACKGROUND_LOCATION"),
                        ++permissionRequestCode
                    )
                else -> checkPermissions()
            }
        }
    }

    // Bluetooth