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

Verified Commit bc0b08c2 authored by Marvin W.'s avatar Marvin W. 🐿️
Browse files

EN: Only ask for confirmation if build comes with confirm ui

parent 568c015b
Loading
Loading
Loading
Loading
+25 −8
Original line number Diff line number Diff line
@@ -61,17 +61,34 @@ class ExposureNotificationServiceImpl(private val context: Context, private val
        return pi
    }

    private fun hasConfirmActivity(): Boolean {
        val intent = Intent(ACTION_CONFIRM)
        intent.`package` = context.packageName
        return try {
            context.packageManager.resolveActivity(intent, 0) != null
        } catch (e: Exception) {
            false
        }
    }

    private suspend fun confirmPermission(permission: String): Status {
        return ExposureDatabase.with(context) { database ->
            if (tempGrantedPermissions.contains(packageName to permission)) {
            when {
                tempGrantedPermissions.contains(packageName to permission) -> {
                    database.grantPermission(packageName, PackageUtils.firstSignatureDigest(context, packageName)!!, permission)
                    tempGrantedPermissions.remove(packageName to permission)
                    Status.SUCCESS
            } else if (!database.hasPermission(packageName, PackageUtils.firstSignatureDigest(context, packageName)!!, permission)) {
                Status(RESOLUTION_REQUIRED, "Permission EN#$permission required.", pendingConfirm(permission))
            } else {
                }
                database.hasPermission(packageName, PackageUtils.firstSignatureDigest(context, packageName)!!, permission) -> {
                    Status.SUCCESS
                }
                !hasConfirmActivity() -> {
                    Status.SUCCESS
                }
                else -> {
                    Status(RESOLUTION_REQUIRED, "Permission EN#$permission required.", pendingConfirm(permission))
                }
            }
        }
    }