@@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
66import 'package:flutter_gen/gen_l10n/app_localizations.dart' ;
77import 'package:flutter_markdown/flutter_markdown.dart' ;
88import 'package:flutter_spinkit/flutter_spinkit.dart' ;
9+ import 'package:fluttertoast/fluttertoast.dart' ;
910import 'package:geocoding/geocoding.dart' hide Location;
1011import 'package:geolocator/geolocator.dart' ;
1112import 'package:get_storage/get_storage.dart' ;
@@ -53,10 +54,15 @@ class LocationChooser {
5354 static Future <LocationCoordinateData > _getAllLocationData () async {
5455 Position pos = await LocationData .getCurrentLocation ();
5556 DebugToast .show (pos.toString ());
56- var response = await Future .wait ([
57- placemarkFromCoordinates (pos.latitude, pos.longitude),
58- _getJakimCodeNearby (pos),
59- ]);
57+ late List <dynamic > response;
58+ try {
59+ response = await Future .wait ([
60+ placemarkFromCoordinates (pos.latitude, pos.longitude),
61+ _getJakimCodeNearby (pos),
62+ ]);
63+ } catch (e) {
64+ Fluttertoast .showToast (msg: e.toString ());
65+ }
6066
6167 var firstPlacemark = (response.first as List <Placemark >).first;
6268 String zone = response.last as String ;
@@ -85,6 +91,9 @@ class LocationChooser {
8591 if (res.statusCode == 200 ) {
8692 var result = MptServerZoneInfo .fromJson (jsonDecode (res.body));
8793 return result.zone;
94+ } else if (res.statusCode == 404 ) {
95+ // location not in bound
96+ throw 'Location is outside of Malaysia' ;
8897 } else {
8998 throw 'Error getting jakim code' ;
9099 }
@@ -109,13 +118,9 @@ class LocationChooser {
109118 return const ZoneLoadingWidget ();
110119 } else if (snapshot.hasData) {
111120 return ZoneSuccessWidget (coordinateData: snapshot.data! );
112- } else if (snapshot.hasError) {
113- return ZoneErrorWidget (
114- errorMessage: snapshot.error.toString ());
115121 } else {
116- return const ZoneErrorWidget (
117- errorMessage: 'Unexpected error occured' ,
118- );
122+ DebugToast .show ('Probably error: ${snapshot .error }' );
123+ return const ZoneErrorWidget ();
119124 }
120125 }),
121126 ),
@@ -280,10 +285,7 @@ class ZoneLoadingWidget extends StatelessWidget {
280285}
281286
282287class ZoneErrorWidget extends StatelessWidget {
283- const ZoneErrorWidget ({Key ? key, required this .errorMessage})
284- : super (key: key);
285-
286- final String errorMessage;
288+ const ZoneErrorWidget ({Key ? key}) : super (key: key);
287289
288290 @override
289291 Widget build (BuildContext context) {
@@ -326,11 +328,6 @@ class ZoneErrorWidget extends StatelessWidget {
326328 textAlign: WrapAlignment .center,
327329 ),
328330 ),
329- const SizedBox (height: 10 ),
330- Text (
331- errorMessage,
332- style: const TextStyle (fontSize: 12 ),
333- )
334331 ],
335332 ),
336333 ),
0 commit comments