79 lines
2.1 KiB
Dart
79 lines
2.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:permission_handler/permission_handler.dart';
|
|
import 'package:rogapp/routes/app_pages.dart';
|
|
|
|
class PermissionHandlerScreen extends StatefulWidget {
|
|
PermissionHandlerScreen({Key? key}) : super(key: key);
|
|
|
|
@override
|
|
State<PermissionHandlerScreen> createState() => _PermissionHandlerScreenState();
|
|
}
|
|
|
|
class _PermissionHandlerScreenState extends State<PermissionHandlerScreen> {
|
|
|
|
@override
|
|
void initState() {
|
|
// TODO: implement initState
|
|
super.initState();
|
|
permissionServiceCall();
|
|
}
|
|
|
|
permissionServiceCall() async {
|
|
await permissionServices().then(
|
|
(value) {
|
|
if (value != null) {
|
|
if (value[Permission.location]!.isGranted ) {
|
|
/* ========= New Screen Added ============= */
|
|
|
|
Get.toNamed(AppPages.TRAVEL);
|
|
|
|
// Navigator.pushReplacement(
|
|
// context,
|
|
// MaterialPageRoute(builder: (context) => SplashScreen()),
|
|
// );
|
|
}
|
|
}
|
|
},
|
|
);
|
|
}
|
|
|
|
|
|
/*Permission services*/
|
|
Future<Map<Permission, PermissionStatus>> permissionServices() async {
|
|
// You can request multiple permissions at once.
|
|
Map<Permission, PermissionStatus> statuses = await [
|
|
Permission.location,
|
|
|
|
//add more permission to request here.
|
|
].request();
|
|
|
|
if (statuses[Permission.location]!.isPermanentlyDenied) {
|
|
await openAppSettings().then(
|
|
(value) async {
|
|
if (value) {
|
|
if (await Permission.location.status.isPermanentlyDenied == true &&
|
|
await Permission.location.status.isGranted == false) {
|
|
// openAppSettings();
|
|
permissionServiceCall(); /* opens app settings until permission is granted */
|
|
}
|
|
}
|
|
},
|
|
);
|
|
} else {
|
|
if (statuses[Permission.location]!.isDenied) {
|
|
permissionServiceCall();
|
|
}
|
|
}
|
|
|
|
/*{Permission.camera: PermissionStatus.granted, Permission.storage: PermissionStatus.granted}*/
|
|
return statuses;
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Container();
|
|
}
|
|
} |