Commit b1f93059 authored by Dio Maulana's avatar Dio Maulana

fixed onboarding load

parent 9cb9c600
......@@ -7,14 +7,16 @@ String? getLatitude() {
return prefs.getString(_latitude);
}
Future<void> setLatitude(String value) async {
Future<String> setLatitude(String value) async {
prefs.setString(_latitude, value);
return value;
}
String? getLongitude() {
return prefs.getString(_longitude);
}
Future<void> setLongitude(String value) async {
Future<String> setLongitude(String value) async {
prefs.setString(_longitude, value);
return value;
}
......@@ -36,15 +36,7 @@ class _OnBoardingViewState extends State<OnBoardingView> {
super.initState();
getUserPermission().then((value) {
if (value) {
getNearestBranch().then((branchBool) {
if (branchBool) {
// ambil list shift kalau ada outlet
getShiftList();
} else {
// setstate aja, gausah ambil list shift karena gak ada utlet
setState(() {});
}
});
getUserLocationAndNearestBranch();
}
});
......@@ -94,14 +86,27 @@ class _OnBoardingViewState extends State<OnBoardingView> {
});
}
Future<void> getUserLocationAndNearestBranch() async {
Position position = await Geolocator.getCurrentPosition();
setLatitude(position.latitude.toString()).then((value) {
setLongitude(position.longitude.toString()).then((value) {
getNearestBranch().then((branchBool) {
if (branchBool) {
// ambil list shift kalau ada outlet
getShiftList();
} else {
// setstate aja, gausah ambil list shift karena gak ada utlet
setState(() {});
}
});
});
});
}
Future<bool> getUserPermission() async {
LocationPermission permission = await Geolocator.requestPermission();
if (permission == LocationPermission.always ||
permission == LocationPermission.whileInUse) {
Geolocator.getCurrentPosition().then((position) {
setLatitude(position.latitude.toString());
setLongitude(position.longitude.toString());
});
return true;
} else {
// ignore: use_build_context_synchronously
......@@ -268,13 +273,47 @@ dengan sekali klik''',
),
),
)
: Text(
: Column(
children: [
Text(
errorMessage!,
style: getSemiBoldStyle(
color: Colors.black,
fontSize: 16,
),
textAlign: TextAlign.center,
),
(errorMessage == Strings.cantConnectToServer)
? GestureDetector(
onTap: () {
Navigator.pushNamedAndRemoveUntil(
context,
Routes.onBoarding,
(route) => false,
);
},
child: Container(
width: 60,
height: 60,
margin: EdgeInsets.only(
top: AppMargin.m10,
),
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(100),
color: ColorManager.primary,
),
child: const Center(
child: Icon(
Icons.refresh_rounded,
color: Colors.white,
size: 23,
),
),
),
)
: const SizedBox(),
],
)
: CircularProgressIndicator(
color: ColorManager.primary,
......
......@@ -7,7 +7,7 @@ class Strings {
"Tidak ada outlet yang ditemukan dalam radius 10Km";
static String errorGetShiftList =
"Tidak dapat terhubung ke server, shift tidak ditemukan";
static String cantConnectToServer = "Can't connect to server";
static String cantConnectToServer = "Can't connect to server, refresh page";
static String serverError = "Something wrong with our server, refresh page";
static String succesGetData = "Success get data";
static String pleaseWait = "Please wait...";
......
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