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.
 
 
 
 
 

80 lines
2.5 KiB

  1. import 'dart:async';
  2. import 'package:location_platform_interface/location_platform_interface.dart';
  3. export 'package:location_platform_interface/location_platform_interface.dart'
  4. show PermissionStatus, LocationAccuracy, LocationData;
  5. class Location {
  6. /// Initializes the plugin and starts listening for potential platform events.
  7. factory Location() => instance;
  8. Location._();
  9. static final Location instance = Location._();
  10. /// Change settings of the location request.
  11. ///
  12. /// The [accuracy] argument is controlling the precision of the
  13. /// [LocationData]. The [interval] and [distanceFilter] are controlling how
  14. /// often a new location is sent through [onLocationChanged].
  15. ///
  16. /// [interval] and [distanceFilter] are not used on web.
  17. Future<bool> changeSettings({
  18. LocationAccuracy accuracy = LocationAccuracy.high,
  19. int interval = 1000,
  20. double distanceFilter = 0,
  21. }) {
  22. return LocationPlatform.instance.changeSettings(
  23. accuracy: accuracy,
  24. interval: interval,
  25. distanceFilter: distanceFilter,
  26. );
  27. }
  28. /// Gets the current location of the user.
  29. ///
  30. /// Throws an error if the app has no permission to access location.
  31. /// Returns a [LocationData] object.
  32. Future<LocationData> getLocation() async {
  33. return LocationPlatform.instance.getLocation();
  34. }
  35. /// Checks if the app has permission to access location.
  36. ///
  37. /// If the result is [PermissionStatus.deniedForever], no dialog will be
  38. /// shown on [requestPermission].
  39. /// Returns a [PermissionStatus] object.
  40. Future<PermissionStatus> hasPermission() {
  41. return LocationPlatform.instance.hasPermission();
  42. }
  43. /// Checks if the app has permission to access location.
  44. ///
  45. /// If the result is [PermissionStatus.deniedForever], no dialog will be
  46. /// shown on [requestPermission].
  47. /// Returns a [PermissionStatus] object.
  48. Future<PermissionStatus> requestPermission() {
  49. return LocationPlatform.instance.requestPermission();
  50. }
  51. /// Checks if the location service is enabled.
  52. Future<bool> serviceEnabled() {
  53. return LocationPlatform.instance.serviceEnabled();
  54. }
  55. /// Request the activation of the location service.
  56. Future<bool> requestService() {
  57. return LocationPlatform.instance.requestService();
  58. }
  59. /// Returns a stream of [LocationData] objects.
  60. /// The frequency and accuracy of this stream can be changed with
  61. /// [changeSettings]
  62. ///
  63. /// Throws an error if the app has no permission to access location.
  64. Stream<LocationData> get onLocationChanged {
  65. return LocationPlatform.instance.onLocationChanged;
  66. }
  67. }