flutter app untuk unitstock
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

67 line
1.8 KiB

  1. import 'package:flutter/material.dart';
  2. import 'package:location/location.dart';
  3. class PermissionStatusWidget extends StatefulWidget {
  4. const PermissionStatusWidget({Key key}) : super(key: key);
  5. @override
  6. _PermissionStatusState createState() => _PermissionStatusState();
  7. }
  8. class _PermissionStatusState extends State<PermissionStatusWidget> {
  9. final Location location = Location();
  10. PermissionStatus _permissionGranted;
  11. Future<void> _checkPermissions() async {
  12. final PermissionStatus permissionGrantedResult =
  13. await location.hasPermission();
  14. setState(() {
  15. _permissionGranted = permissionGrantedResult;
  16. });
  17. }
  18. Future<void> _requestPermission() async {
  19. if (_permissionGranted != PermissionStatus.granted) {
  20. final PermissionStatus permissionRequestedResult =
  21. await location.requestPermission();
  22. setState(() {
  23. _permissionGranted = permissionRequestedResult;
  24. });
  25. if (permissionRequestedResult != PermissionStatus.granted) {
  26. return;
  27. }
  28. }
  29. }
  30. @override
  31. Widget build(BuildContext context) {
  32. return Column(
  33. crossAxisAlignment: CrossAxisAlignment.start,
  34. children: <Widget>[
  35. Text(
  36. 'Permission status: ${_permissionGranted ?? "unknown"}',
  37. style: Theme.of(context).textTheme.body2,
  38. ),
  39. Row(
  40. children: <Widget>[
  41. Container(
  42. margin: const EdgeInsets.only(right: 42),
  43. child: RaisedButton(
  44. child: const Text('Check'),
  45. onPressed: _checkPermissions,
  46. ),
  47. ),
  48. RaisedButton(
  49. child: const Text('Request'),
  50. onPressed: _permissionGranted == PermissionStatus.granted
  51. ? null
  52. : _requestPermission,
  53. )
  54. ],
  55. )
  56. ],
  57. );
  58. }
  59. }