From 11d4e7b7daa529c59b10f7b39bb05922c3cce0f3 Mon Sep 17 00:00:00 2001 From: Edison Jwa Date: Mon, 25 May 2026 01:08:02 +0900 Subject: [PATCH] fix: stabilize Android permission state names --- .../app/chanora/chanora_flutter/MainActivity.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/chanora_flutter/android/app/src/main/kotlin/app/chanora/chanora_flutter/MainActivity.kt b/apps/chanora_flutter/android/app/src/main/kotlin/app/chanora/chanora_flutter/MainActivity.kt index 6e07e7c..1fca899 100644 --- a/apps/chanora_flutter/android/app/src/main/kotlin/app/chanora/chanora_flutter/MainActivity.kt +++ b/apps/chanora_flutter/android/app/src/main/kotlin/app/chanora/chanora_flutter/MainActivity.kt @@ -86,6 +86,14 @@ class MainActivity : FlutterActivity() { // in configureFlutterEngine and cleared in onDestroy after detach(). private var backIntentBridge: BackIntentBridge? = null + private fun permissionStateWireName( + state: AndroidPermissionRequester.PermissionState, + ): String = when (state) { + AndroidPermissionRequester.PermissionState.Granted -> "Granted" + AndroidPermissionRequester.PermissionState.Denied -> "Denied" + AndroidPermissionRequester.PermissionState.PermanentlyDenied -> "PermanentlyDenied" + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) window.navigationBarColor = Color.rgb(255, 251, 254) @@ -125,7 +133,7 @@ class MainActivity : FlutterActivity() { permissionsChannel = channel val requester = AndroidPermissionRequester() requester.stateChangeListener = { permission, state -> - val stateName = state.javaClass.simpleName + val stateName = permissionStateWireName(state) channel.invokeMethod( MethodChannels.METHOD_PERMISSION_STATE_CHANGED, mapOf( @@ -166,7 +174,7 @@ class MainActivity : FlutterActivity() { val r = permissionRequester if (r != null) { r.ensureRecordAudioPermission(this) { state -> - result.success(state.javaClass.simpleName) + result.success(permissionStateWireName(state)) } } else { result.error(