fix: stabilize Android permission state names

This commit is contained in:
Edison Jwa
2026-05-25 01:08:02 +09:00
parent b8195acc9b
commit 11d4e7b7da
@@ -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(