getBase static method

Future<bool> getBase(
  1. BuildContext context,
  2. Permission permission,
  3. PermissonTips info
)

Implementation

static Future<bool> getBase(
  BuildContext context,
  Permission permission,
  PermissonTips info,
) async {
  try {
    final status = await permission.status;
    if (status.isGranted) {
      return true;
    }
    if (status.isDenied && context.mounted) {
      final result = await StormyDialog.instance.showAlert(
        title: info.title,
        message: info.content ?? '',
        overrideConfig: StormyDialogUIConfig(confirmText: info.confirmText),
        position: StormyDialogPosition.center,
      );
      if (result == true) {
        await permission
            .onDeniedCallback(() async {
              // await openAppSettings();
            })
            .onPermanentlyDeniedCallback(() async {
              SmartDialog.showToast(
                info.permanentlyDeniedText ?? '权限被永久拒绝,请到设置页面手动开启',
              );
            })
            .onGrantedCallback(() {})
            .onLimitedCallback(() {})
            .request();
        return await permission.status.isGranted;
      } else {
        SmartDialog.showToast(info.deniedText ?? '');
        return false;
      }
    }

    if (status.isPermanentlyDenied) {
      SmartDialog.showToast(
        info.permanentlyDeniedText ?? '权限被永久拒绝,请到设置页面手动开启',
      );
      return false;
    }
    return false;
  } catch (e) {
    return false;
  }
}