Coverage Summary for Class: RuntimePermissionRequestBridge (cloud.mindbox.mobile_sdk.inapp.presentation.actions)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| RuntimePermissionRequestBridge |
0%
(0/3)
|
0%
(0/4)
|
0%
(0/7)
|
0%
(0/35)
|
| RuntimePermissionRequestBridge$PermissionRequest |
0%
(0/1)
|
|
0%
(0/3)
|
0%
(0/12)
|
| Total |
0%
(0/4)
|
0%
(0/4)
|
0%
(0/10)
|
0%
(0/47)
|
package cloud.mindbox.mobile_sdk.inapp.presentation.actions
import kotlinx.coroutines.CompletableDeferred
import java.util.concurrent.ConcurrentHashMap
internal object RuntimePermissionRequestBridge {
private val pendingRequestsById: MutableMap<String, CompletableDeferred<PermissionRequest>> = ConcurrentHashMap()
fun register(requestId: String): CompletableDeferred<PermissionRequest> {
val deferred: CompletableDeferred<PermissionRequest> = CompletableDeferred()
pendingRequestsById[requestId] = deferred
return deferred
}
fun resolve(requestId: String, isGranted: Boolean, isDialogShown: Boolean) {
val deferred: CompletableDeferred<PermissionRequest> = pendingRequestsById.remove(requestId) ?: return
if (!deferred.isCompleted) {
deferred.complete(PermissionRequest(isGranted, isDialogShown))
}
}
data class PermissionRequest(
val isGranted: Boolean,
val dialogShown: Boolean,
)
}