showPermissionDialog static method

Future<bool> showPermissionDialog(
  1. BuildContext context,
  2. PermissionType permissionType
)

Show a dialog informing the user that permission is needed, with options to cancel or go to app settings.

The dialog content varies based on permissionType to show a specific message for each permission (camera, microphone, etc.).

Returns true if the user chooses to open settings, false otherwise.

Implementation

static Future<bool> showPermissionDialog(BuildContext context, PermissionType permissionType) {
  final completer = Completer<bool>();
  final atomicLocal = AtomicLocalizations.of(context);

  AtomicAlertDialog.show(
    context,
    title: atomicLocal.permissionNeeded,
    content: _getPermissionDeniedText(atomicLocal, permissionType),
    cancelText: atomicLocal.cancel,
    confirmText: atomicLocal.confirm,
    barrierDismissible: false,
    onConfirm: () {
      if (!completer.isCompleted) {
        completer.complete(true);
      }
    },
    onCancel: () {
      if (!completer.isCompleted) {
        completer.complete(false);
      }
    },
  );

  return completer.future;
}