This commit is contained in:
Hamza-Ayed
2024-12-18 16:39:57 +03:00
parent 0129162309
commit 90d4ca39bf
138 changed files with 1581 additions and 1162 deletions

View File

@@ -1,17 +1,21 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'dart:math';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/constant/info.dart';
import 'package:SEFER/constant/links.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/auth/captin/login_captin_controller.dart';
import 'package:SEFER/controller/functions/crud.dart';
import 'package:SEFER/controller/functions/device_info.dart';
import 'package:SEFER/main.dart';
import 'package:SEFER/views/home/Captin/home_captain/home_captin.dart';
import 'package:SEFER/views/widgets/error_snakbar.dart';
import 'package:SEFER/views/widgets/mydialoug.dart';
import 'package:sefer_driver/constant/box_name.dart';
import 'package:sefer_driver/constant/info.dart';
import 'package:sefer_driver/constant/links.dart';
import 'package:sefer_driver/constant/style.dart';
import 'package:sefer_driver/controller/auth/captin/login_captin_controller.dart';
import 'package:sefer_driver/controller/firebase/firbase_messge.dart';
import 'package:sefer_driver/controller/firebase/local_notification.dart';
import 'package:sefer_driver/controller/functions/crud.dart';
import 'package:sefer_driver/controller/functions/device_info.dart';
import 'package:sefer_driver/controller/notification/notification_captain_controller.dart';
import 'package:sefer_driver/main.dart';
import 'package:sefer_driver/views/home/Captin/home_captain/home_captin.dart';
import 'package:sefer_driver/views/widgets/error_snakbar.dart';
import 'package:sefer_driver/views/widgets/mydialoug.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:image_cropper/image_cropper.dart';
@@ -50,6 +54,31 @@ class AI extends GetxController {
bool isInviteDriverFound = false;
final invitationCodeController = TextEditingController();
final formKey = GlobalKey<FormState>();
bool isTimerComplete = false;
double progressValue = 1.0;
int remainingSeconds = 30;
void startTimer() {
Timer.periodic(const Duration(seconds: 1), (timer) {
if (remainingSeconds == 0) {
timer.cancel();
isTimerComplete = true;
update(); // Notify the UI
} else {
remainingSeconds--;
progressValue = remainingSeconds / 30.0; // Update progress
update(); // Notify the UI
}
});
}
void resetTimer() {
isTimerComplete = false;
progressValue = 1.0;
remainingSeconds = 40;
update(); // Notify the UI
startTimer(); // Restart the timer
}
void setApproved() {
approved = true;
@@ -57,17 +86,32 @@ class AI extends GetxController {
}
Future updateInvitationCodeFromRegister() async {
if (formKey.currentState!.validate()) {
var res = await CRUD().post(
link: AppLink.updateInvitationCodeFromRegister,
payload: {"inviteCode": invitationCodeController.text});
if (res != 'failure') {
isInviteDriverFound = true;
update();
mySnackbarSuccess("Code approved".tr);
} else {
mySnackeBarError("Code not approved".tr);
}
var res = await CRUD().post(
link: AppLink.updateDriverInvitationDirectly,
payload: {
"inviterDriverPhone": '+2${box.read(BoxName.phoneDriver).toString()}',
"driverId": box.read(BoxName.driverID).toString(),
},
);
if (res != 'failure') {
isInviteDriverFound = true;
update();
// mySnackbarSuccess("Code approved".tr); // Localized success message
box.write(BoxName.isInstall, '1');
NotificationController().showNotification(
"Code approved".tr, "Code approved".tr, 'tone2', '');
// Notification text with dynamic token
FirebaseMessagesController().sendNotificationToDriverMAP(
'You have received a gift token!'.tr,
'for '.tr + box.read(BoxName.phoneDriver).toString(),
jsonDecode(res)['message'][0]['token'].toString(),
[],
'tone2', // Type of notification
);
} else {
// mySnackeBarError(
// "You dont have invitation code".tr); // Localized error message
}
}
@@ -397,7 +441,7 @@ class AI extends GetxController {
}
}
addCriminalDeocuments() async {
addCriminalDocuments() async {
var res = await CRUD().post(link: AppLink.addCriminalDocuments, payload: {
"driverId": box.read(BoxName.driverID),
"IssueDate": responseCriminalRecordEgypt['IssueDate'],