Add location permission request

This commit is contained in:
anhtunz
2024-12-18 22:38:26 +07:00
parent d0ba34381a
commit 9046b21831
11 changed files with 168 additions and 30 deletions

View File

@@ -1,11 +1,17 @@
import 'package:app_settings/app_settings.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import '../../../extention/context_extention.dart';
import '../../../services/language_services.dart';
class RequestPermissionDialog {
showRequestPermissionDialog(BuildContext context, IconData icon,
String dialogContent, AppSettingsType type) {
RequestPermissionDialog._init();
static RequestPermissionDialog? _instance;
static RequestPermissionDialog get instance =>
_instance ??= RequestPermissionDialog._init();
requestPermissionDialogAndroid(BuildContext context, IconData icon,
String content, AppSettingsType type) {
showDialog(
useRootNavigator: false,
context: context,
@@ -20,36 +26,39 @@ class RequestPermissionDialog {
mainAxisSize: MainAxisSize.min,
children: [
Padding(
padding: context.paddingNormalVertical,
padding: dialogContext.paddingNormalVertical,
child: Text(
dialogContent,
"Alow app to use $content permission",
textAlign: TextAlign.center,
style: const TextStyle(
fontWeight: FontWeight.bold, fontSize: 18),
),
),
Divider(height: context.lowValue),
Divider(height: dialogContext.lowValue),
GestureDetector(
onTap: () {
AppSettings.openAppSettings(type: type);
Navigator.of(dialogContext).pop();
},
child: Padding(
padding:
context.paddingNormalVertical, // Cách giữa các phần tử
padding: dialogContext.paddingNormalVertical,
child: Text(appLocalization(context).allow_message,
style: const TextStyle(fontWeight: FontWeight.bold)),
),
),
Divider(height: context.lowValue),
Divider(height: dialogContext.lowValue),
GestureDetector(
onTap: () {
Navigator.of(dialogContext).pop(); // Đóng dialog
Navigator.of(dialogContext).pop();
},
child: Padding(
padding:
context.paddingNormalVertical, // Cách giữa các phần tử
child: Text(appLocalization(context).decline_message,
style: const TextStyle(fontWeight: FontWeight.bold)),
padding: dialogContext.paddingNormalVertical,
child: Text(
appLocalization(dialogContext).decline_message,
style: const TextStyle(
fontWeight: FontWeight.bold,
),
),
),
),
],
@@ -58,4 +67,31 @@ class RequestPermissionDialog {
},
);
}
requestPermissionDialogIOS(context, AppSettingsType appSettingsType, content,
AppSettingsType type) =>
showCupertinoDialog<void>(
context: context,
builder: (showCupertinoDialogContext) => CupertinoAlertDialog(
title: Text(appLocalization(showCupertinoDialogContext)
.permission_deny_message),
content: Text("Alow app to use $content permission"),
actions: <CupertinoDialogAction>[
CupertinoDialogAction(
child: Text(appLocalization(showCupertinoDialogContext)
.cancel_button_content),
onPressed: () => Navigator.pop(showCupertinoDialogContext),
),
CupertinoDialogAction(
isDefaultAction: true,
child: Text(
appLocalization(showCupertinoDialogContext).allow_message),
onPressed: () {
Navigator.pop(showCupertinoDialogContext);
AppSettings.openAppSettings(type: appSettingsType);
},
),
],
),
);
}