fixed position error and added goad condition button

This commit is contained in:
2024-03-05 19:32:42 +05:30
parent 773650be82
commit 2f329669e9
4 changed files with 71 additions and 52 deletions

View File

@ -562,19 +562,24 @@ class DestinationController extends GetxController {
}
Future<void> addGPStoDB(double la, double ln, {isCheckin = 0}) async {
GpsDatabaseHelper db = GpsDatabaseHelper.instance;
final team_name = indexController.currentUser[0]["user"]['team_name'];
final event_code = indexController.currentUser[0]["user"]["event_code"];
GpsData gps_data = GpsData(
id: 0,
team_name: team_name,
event_code: event_code,
lat: la,
lon: ln,
is_checkin: isCheckin,
created_at: DateTime.now().millisecondsSinceEpoch);
var res = await db.insertGps(gps_data);
//print("==gps res == ${res}");
//print("in addGPStoDB ${indexController.currentUser}");
try {
GpsDatabaseHelper db = GpsDatabaseHelper.instance;
final team_name = indexController.currentUser[0]["user"]['team_name'];
final event_code = indexController.currentUser[0]["user"]["event_code"];
GpsData gps_data = GpsData(
id: 0,
team_name: team_name,
event_code: event_code,
lat: la,
lon: ln,
is_checkin: isCheckin,
created_at: DateTime.now().millisecondsSinceEpoch);
var res = await db.insertGps(gps_data);
} catch (err) {
print("errr ready gps ${err}");
return;
}
}
Future<void> checkForCheckin() async {
@ -762,33 +767,38 @@ class DestinationController extends GetxController {
}
void handleLocationUpdate(Position? position) async {
if (position != null) {
if (distanceToStart() >= 1000) {
ready_for_goal = true;
}
try {
if (position != null) {
if (distanceToStart() >= 1000) {
ready_for_goal = true;
}
var distance = const Distance();
double distanceToDest = distance.as(
LengthUnit.Meter,
LatLng(position.latitude, position.longitude),
LatLng(currentLat, currentLon));
Duration difference =
lastGPSCollectedTime.difference(DateTime.now()).abs();
if (difference.inSeconds >= 10 || distanceToDest >= 10) {
// print(
// "^^^^^^^^ GPS data collected ${DateFormat('kk:mm:ss \n EEE d MMM').format(DateTime.now())}, ^^^ ${position.latitude}, ${position.longitude}");
var distance = const Distance();
double distanceToDest = distance.as(
LengthUnit.Meter,
LatLng(position.latitude, position.longitude),
LatLng(currentLat, currentLon));
LogManager().addLog(
"GPS : $currentLat, $currentLon - ${DateTime.now().hour}:${DateTime.now().minute}:${DateTime.now().second}:${DateTime.now().microsecond}");
Duration difference =
lastGPSCollectedTime.difference(DateTime.now()).abs();
if (difference.inSeconds >= 10 || distanceToDest >= 10) {
// print(
// "^^^^^^^^ GPS data collected ${DateFormat('kk:mm:ss \n EEE d MMM').format(DateTime.now())}, ^^^ ${position.latitude}, ${position.longitude}");
if (isInRog.value) {
await addGPStoDB(position.latitude, position.longitude);
lastGPSCollectedTime = DateTime.now();
LogManager().addLog(
"GPS : $currentLat, $currentLon - ${DateTime.now().hour}:${DateTime.now().minute}:${DateTime.now().second}:${DateTime.now().microsecond}");
if (isInRog.value) {
await addGPStoDB(position.latitude, position.longitude);
lastGPSCollectedTime = DateTime.now();
}
}
}
currentLat = position.latitude;
currentLon = position.longitude;
} finally {
if (position != null &&
(position.latitude != 0 || position.longitude != 0)) {
currentLat = position.latitude;
currentLon = position.longitude;
}
}
}
@ -908,7 +918,10 @@ class DestinationController extends GetxController {
}
void centerMapToCurrentLocation() {
indexController.mapController.move(LatLng(currentLat, currentLon), 17.0);
print("center is ${currentLat}, ${currentLon}");
if (currentLat != 0 || currentLon != 0) {
indexController.mapController.move(LatLng(currentLat, currentLon), 17.0);
}
}
void connectionChanged(String val) {

View File

@ -44,20 +44,26 @@ class GpsDatabaseHelper {
}
Future<int> insertGps(GpsData gps) async {
Database db = await instance.database;
int? nextOrder =
Sqflite.firstIntValue(await db.rawQuery('SELECT MAX(id) FROM gps'));
nextOrder = nextOrder ?? 0;
nextOrder = nextOrder + 1;
gps.id = nextOrder;
//print("---- insering ${gps.toMap()}");
int res = await db.insert(
'gps',
gps.toMap(),
conflictAlgorithm: ConflictAlgorithm.replace,
);
//print("------ database helper insert $res-----------::::::::");
return res;
try {
print("---- try insering ${gps.toMap()}");
Database db = await instance.database;
int? nextOrder =
Sqflite.firstIntValue(await db.rawQuery('SELECT MAX(id) FROM gps'));
nextOrder = nextOrder ?? 0;
nextOrder = nextOrder + 1;
gps.id = nextOrder;
print("---- insering ${gps.toMap()}");
int res = await db.insert(
'gps',
gps.toMap(),
conflictAlgorithm: ConflictAlgorithm.replace,
);
print("------ database helper insert $res-----------::::::::");
return res;
} catch (err) {
print("------ error $err-----------::::::::");
return -1;
}
}
Future<List<GpsData>> getGPSData(String team_name, String event_code) async {

View File

@ -129,7 +129,7 @@ class BottomSheetNew extends GetView<BottomSheetController> {
style: ElevatedButton.styleFrom(backgroundColor: Colors.red),
onPressed: destinationController.rogainingCounted.value == true &&
destinationController.distanceToStart() <= 500 &&
//destination.cp == -1 &&
destination.cp == -1 &&
DestinationController.ready_for_goal == true
? () async {
destinationController.isAtGoal.value = true;

View File

@ -176,7 +176,7 @@ class _MapWidgetState extends State<MapWidget> {
}
void _centerMapOnUser() {
print("showBottomSheet ${destinationController.shouldShowBottomSheet}");
//print("showBottomSheet ${destinationController.shouldShowBottomSheet}");
if (destinationController.shouldShowBottomSheet) {
destinationController.centerMapToCurrentLocation();
}