fix: stabilize Android permission state names
This commit is contained in:
+10
-2
@@ -86,6 +86,14 @@ class MainActivity : FlutterActivity() {
|
|||||||
// in configureFlutterEngine and cleared in onDestroy after detach().
|
// in configureFlutterEngine and cleared in onDestroy after detach().
|
||||||
private var backIntentBridge: BackIntentBridge? = null
|
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?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
window.navigationBarColor = Color.rgb(255, 251, 254)
|
window.navigationBarColor = Color.rgb(255, 251, 254)
|
||||||
@@ -125,7 +133,7 @@ class MainActivity : FlutterActivity() {
|
|||||||
permissionsChannel = channel
|
permissionsChannel = channel
|
||||||
val requester = AndroidPermissionRequester()
|
val requester = AndroidPermissionRequester()
|
||||||
requester.stateChangeListener = { permission, state ->
|
requester.stateChangeListener = { permission, state ->
|
||||||
val stateName = state.javaClass.simpleName
|
val stateName = permissionStateWireName(state)
|
||||||
channel.invokeMethod(
|
channel.invokeMethod(
|
||||||
MethodChannels.METHOD_PERMISSION_STATE_CHANGED,
|
MethodChannels.METHOD_PERMISSION_STATE_CHANGED,
|
||||||
mapOf(
|
mapOf(
|
||||||
@@ -166,7 +174,7 @@ class MainActivity : FlutterActivity() {
|
|||||||
val r = permissionRequester
|
val r = permissionRequester
|
||||||
if (r != null) {
|
if (r != null) {
|
||||||
r.ensureRecordAudioPermission(this) { state ->
|
r.ensureRecordAudioPermission(this) { state ->
|
||||||
result.success(state.javaClass.simpleName)
|
result.success(permissionStateWireName(state))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
result.error(
|
result.error(
|
||||||
|
|||||||
Reference in New Issue
Block a user