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,
     )
 }