perf: Make getCameraPermission and getMicrophonePermission synchronous (#2302)

This commit is contained in:
Marc Rousavy
2023-12-19 14:22:04 +01:00
committed by GitHub
parent 3d2feb6f6c
commit 591cf30a06
8 changed files with 28 additions and 66 deletions

View File

@@ -149,24 +149,24 @@ class CameraViewModule(reactContext: ReactApplicationContext) : ReactContextBase
return activity?.shouldShowRequestPermissionRationale(permission) ?: false
}
@ReactMethod
fun getCameraPermissionStatus(promise: Promise) {
@ReactMethod(isBlockingSynchronousMethod = true)
fun getCameraPermissionStatus(): String {
val status = ContextCompat.checkSelfPermission(reactApplicationContext, Manifest.permission.CAMERA)
var parsed = PermissionStatus.fromPermissionStatus(status)
if (parsed == PermissionStatus.DENIED && canRequestPermission(Manifest.permission.CAMERA)) {
parsed = PermissionStatus.NOT_DETERMINED
}
promise.resolve(parsed.unionValue)
return parsed.unionValue
}
@ReactMethod
fun getMicrophonePermissionStatus(promise: Promise) {
@ReactMethod(isBlockingSynchronousMethod = true)
fun getMicrophonePermissionStatus(): String {
val status = ContextCompat.checkSelfPermission(reactApplicationContext, Manifest.permission.RECORD_AUDIO)
var parsed = PermissionStatus.fromPermissionStatus(status)
if (parsed == PermissionStatus.DENIED && canRequestPermission(Manifest.permission.RECORD_AUDIO)) {
parsed = PermissionStatus.NOT_DETERMINED
}
promise.resolve(parsed.unionValue)
return parsed.unionValue
}
@ReactMethod