Commit 8f659480 by Maurits van Beusekom

Initial structure of example applicaiton

parent b86ec867
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:permission_handler/permission_enums.dart'; import 'package:permission_handler/permission_enums.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
...@@ -5,7 +7,6 @@ import 'package:permission_handler/permission_handler.dart'; ...@@ -5,7 +7,6 @@ import 'package:permission_handler/permission_handler.dart';
void main() => runApp(new MyApp()); void main() => runApp(new MyApp());
class MyApp extends StatelessWidget { class MyApp extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return new MaterialApp( return new MaterialApp(
...@@ -16,9 +17,22 @@ class MyApp extends StatelessWidget { ...@@ -16,9 +17,22 @@ class MyApp extends StatelessWidget {
body: new Center( body: new Center(
child: new ListView( child: new ListView(
children: PermissionGroup.values children: PermissionGroup.values
.where((PermissionGroup permission) => permission != PermissionGroup.unknown) .where((PermissionGroup permission) {
.map((PermissionGroup permission) => new PermissionWidget(permission)).toList() if (Platform.isIOS) {
), return permission != PermissionGroup.unknown &&
permission != PermissionGroup.phone &&
permission != PermissionGroup.sms &&
permission != PermissionGroup.storage;
} else {
return permission != PermissionGroup.unknown &&
permission != PermissionGroup.mediaLibrary &&
permission != PermissionGroup.photos &&
permission != PermissionGroup.reminders;
}
})
.map((PermissionGroup permission) =>
new PermissionWidget(permission))
.toList()),
), ),
)); ));
} }
...@@ -48,14 +62,42 @@ class _PermissionState extends State<PermissionWidget> { ...@@ -48,14 +62,42 @@ class _PermissionState extends State<PermissionWidget> {
void _listenForPermissionStatus() async { void _listenForPermissionStatus() async {
print(_permissionGroup.toString()); print(_permissionGroup.toString());
_permissionStatus = await PermissionHandler.checkPermissionStatus(_permissionGroup); _permissionStatus =
await PermissionHandler.checkPermissionStatus(_permissionGroup);
}
Color getPermissionColor() {
switch (_permissionStatus) {
case PermissionStatus.denied:
return Colors.red;
case PermissionStatus.granted:
return Colors.green;
default:
return Colors.grey;
}
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return new ListTile( return new ListTile(
title: new Text(_permissionGroup.toString()), title: new Text(_permissionGroup.toString()),
subtitle: new Text(_permissionStatus.toString()), subtitle: new Text(
_permissionStatus.toString(),
style: new TextStyle(color: getPermissionColor()),
),
onTap: () async {
if (_permissionStatus == PermissionStatus.unknown) {
final List<PermissionGroup> permissions = <PermissionGroup>[
_permissionGroup
];
final Map<PermissionGroup, PermissionStatus> permissionRequestResult =
await PermissionHandler.requestPermissions(permissions);
setState(() {
_permissionStatus = permissionRequestResult[_permissionGroup];
});
}
},
); );
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment