@@ -2,7 +2,7 @@ import 'package:borneo_app/devices/borneo/lyfi/view_models/base_lyfi_device_view
22import 'package:borneo_app/infrastructure/timezone.dart' ;
33import 'package:borneo_app/services/i_app_notification_service.dart' ;
44import 'package:borneo_common/exceptions.dart' as bo_ex;
5- import 'package:timezone/timezone .dart' as tz ;
5+ import 'package:cancellation_token/cancellation_token .dart' ;
66import 'package:geolocator/geolocator.dart' ;
77
88import 'package:borneo_kernel/drivers/borneo/borneo_device_api.dart' ;
@@ -83,6 +83,7 @@ class SettingsViewModel extends BaseLyfiDeviceViewModel {
8383 });
8484 }
8585
86+ /*
8687 Duration _getTimeDifference(String timezone1, String timezone2) {
8788 final location1 = tz.getLocation(timezone1);
8889 final location2 = tz.getLocation(timezone2);
@@ -91,22 +92,22 @@ class SettingsViewModel extends BaseLyfiDeviceViewModel {
9192 final offset2 = tz.TZDateTime.now(location2).timeZoneOffset;
9293 return offset1 - offset2;
9394 }
95+ */
9496
95- Future <Position > getLocation () async {
96- // TODO cancellable
97+ Future <Position > getLocation ({CancellationToken ? cancel}) async {
9798 bool serviceEnabled;
9899 LocationPermission permission;
99100
100101 // Check if location services are enabled
101- serviceEnabled = await Geolocator .isLocationServiceEnabled ();
102+ serviceEnabled = await Geolocator .isLocationServiceEnabled (). asCancellable (cancel) ;
102103 if (! serviceEnabled) {
103104 throw bo_ex.InvalidOperationException (message: 'Please enable location services' );
104105 }
105106
106107 // Check permissions
107- permission = await Geolocator .checkPermission ();
108+ permission = await Geolocator .checkPermission (). asCancellable (cancel) ;
108109 if (permission == LocationPermission .denied) {
109- permission = await Geolocator .requestPermission ();
110+ permission = await Geolocator .requestPermission (). asCancellable (cancel) ;
110111 if (permission == LocationPermission .denied) {
111112 throw bo_ex.PermissionDeniedException (message: 'Location permissions are denied' );
112113 }
@@ -123,7 +124,7 @@ class SettingsViewModel extends BaseLyfiDeviceViewModel {
123124 timeLimit: Duration (seconds: 30 ),
124125 distanceFilter: 100 ,
125126 ),
126- );
127+ ). asCancellable (cancel) ;
127128
128129 return position;
129130 }
0 commit comments