Update: 2026-06-15 01:38:09

This commit is contained in:
Hamza-Ayed
2026-06-15 01:38:10 +03:00
parent 2321b78244
commit c472a78416

View File

@@ -21,7 +21,7 @@ import 'package:siro_rider/controller/functions/crud.dart';
import 'package:siro_rider/main.dart';
import 'package:siro_rider/views/home/map_page_passenger.dart';
import 'package:location/location.dart';
import 'package:location/location.dart' as loc;
import '../../env/env.dart';
import '../../print.dart';
@@ -467,7 +467,8 @@ class LoginController extends GetxController {
if (response.statusCode == 200 || response.statusCode == 201) {
var jsonDecoeded = jsonDecode(response.body);
if (jsonDecoeded['status'] == 'success' && jsonDecoeded['data'][0]['verified'].toString() == '1') {
if (jsonDecoeded['status'] == 'success' &&
jsonDecoeded['data'][0]['verified'].toString() == '1') {
var d = jsonDecoeded['data'][0];
var jwt = jsonDecoeded['jwt'];
@@ -510,12 +511,12 @@ class LoginController extends GetxController {
}
}
final location = Location();
final location = loc.Location();
// late PermissionStatus permissionGranted = PermissionStatus.denied;
Future<void> getLocationPermission() async {
bool serviceEnabled;
PermissionStatus permissionGranted;
loc.PermissionStatus permissionGranted;
// Check if location services are enabled
serviceEnabled = await location.serviceEnabled();
@@ -529,15 +530,16 @@ class LoginController extends GetxController {
// Check if the app has permission to access location
permissionGranted = await location.hasPermission();
if (permissionGranted == PermissionStatus.denied) {
if (permissionGranted == loc.PermissionStatus.denied) {
permissionGranted = await location.requestPermission();
if (permissionGranted != PermissionStatus.granted) {
if (permissionGranted != loc.PermissionStatus.granted) {
// Location permission is still not granted, handle the error
permissionGranted = await location.requestPermission();
return;
}
}
if (permissionGranted.toString() == 'PermissionStatus.granted') {
if (permissionGranted.toString() == 'PermissionStatus.granted' ||
permissionGranted == loc.PermissionStatus.granted) {
box.write(BoxName.locationPermission, 'true');
}
update();
@@ -561,7 +563,8 @@ class LoginController extends GetxController {
final DateTime lastUpload = DateTime.parse(lastUploadStr);
final Duration diff = DateTime.now().difference(lastUpload);
if (diff.inHours < 12) {
Log.print("sendPassengerLocation: Location uploaded recently (${diff.inHours}h ago). Skipping.");
Log.print(
"sendPassengerLocation: Location uploaded recently (${diff.inHours}h ago). Skipping.");
return;
}
}
@@ -576,11 +579,13 @@ class LoginController extends GetxController {
// التحقق من الصلاحيات والسكوت الممنهج لتفادي النوافذ المزعجة
LocationPermission permission = await Geolocator.checkPermission();
if (permission == LocationPermission.denied) {
Log.print("sendPassengerLocation: Permission is denied. Skipping silently.");
Log.print(
"sendPassengerLocation: Permission is denied. Skipping silently.");
return;
}
if (permission == LocationPermission.deniedForever) {
Log.print("sendPassengerLocation: Permission permanently denied. Skipping silently.");
Log.print(
"sendPassengerLocation: Permission permanently denied. Skipping silently.");
return;
}
@@ -590,7 +595,8 @@ class LoginController extends GetxController {
timeLimit: const Duration(seconds: 5),
);
Log.print("sendPassengerLocation: Got location: ${position.latitude}, ${position.longitude}");
Log.print(
"sendPassengerLocation: Got location: ${position.latitude}, ${position.longitude}");
// إرسال البيانات إلى السيرفر
final response = await CRUD().post(
@@ -604,10 +610,12 @@ class LoginController extends GetxController {
Log.print("sendPassengerLocation response: $response");
if (response != 'failure' && response != null) {
final decoded = response is Map ? response : jsonDecode(response.toString());
final decoded =
response is Map ? response : jsonDecode(response.toString());
if (decoded['status'] == 'success') {
box.write(cacheKey, DateTime.now().toIso8601String());
Log.print("sendPassengerLocation: Location logged and cached successfully.");
Log.print(
"sendPassengerLocation: Location logged and cached successfully.");
}
}
} catch (e) {