25-1/13/1-securejordan
This commit is contained in:
@@ -55,8 +55,8 @@ android {
|
|||||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
||||||
minSdk = 23
|
minSdk = 23
|
||||||
targetSdk = flutter.targetSdkVersion
|
targetSdk = flutter.targetSdkVersion
|
||||||
versionCode = 128
|
versionCode = 129
|
||||||
versionName = '1.5.28'
|
versionName = '1.5.29'
|
||||||
multiDexEnabled =true
|
multiDexEnabled =true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ apply plugin: 'com.android.library'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
namespace 'com.dsaved.bubblehead.bubble'
|
namespace 'com.dsaved.bubblehead.bubble'
|
||||||
compileSdkVersion 30
|
compileSdkVersion 33
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion 16
|
minSdkVersion 16
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>86</string>
|
<string>87</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>4.0.86</string>
|
<string>4.0.87</string>
|
||||||
<key>FirebaseAppDelegateProxyEnabled</key>
|
<key>FirebaseAppDelegateProxyEnabled</key>
|
||||||
<string>NO</string>
|
<string>NO</string>
|
||||||
<key>GMSApiKey</key>
|
<key>GMSApiKey</key>
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ class BoxName {
|
|||||||
static const String bodyOrder = "bodyOrder";
|
static const String bodyOrder = "bodyOrder";
|
||||||
static const String gender = "gender";
|
static const String gender = "gender";
|
||||||
static const String phoneWallet = "phoneWallet";
|
static const String phoneWallet = "phoneWallet";
|
||||||
|
static const String locationName = "locationName";
|
||||||
static const String isSavedPhones = "IsSavedPhones";
|
static const String isSavedPhones = "IsSavedPhones";
|
||||||
static const String isTest = "isTest";
|
static const String isTest = "isTest";
|
||||||
static const String carType = "carType";
|
static const String carType = "carType";
|
||||||
|
|||||||
@@ -5,10 +5,9 @@ import 'box_name.dart';
|
|||||||
|
|
||||||
class AppLink {
|
class AppLink {
|
||||||
static String serverPHP = box.read('serverPHP');
|
static String serverPHP = box.read('serverPHP');
|
||||||
static String seferCairoServer = box.read('seferCairoServer');
|
|
||||||
static String seferGizaServer = box.read('seferGizaServer');
|
static String seferPaymentServer =
|
||||||
static String seferAlexandriaServer = box.read('seferAlexandriaServer');
|
'https://wallet.sefer.live/seferpw.shop/sefer/';
|
||||||
static String seferPaymentServer = box.read('seferPaymentServer');
|
|
||||||
static String seferPaymentServer0 = box.read('seferPaymentServer');
|
static String seferPaymentServer0 = box.read('seferPaymentServer');
|
||||||
// static final String seferPaymentServer0 = Env.seferPaymentServer;
|
// static final String seferPaymentServer0 = Env.seferPaymentServer;
|
||||||
// static final String seferPaymentServer = '${Env.seferPaymentServer}/ride';
|
// static final String seferPaymentServer = '${Env.seferPaymentServer}/ride';
|
||||||
@@ -24,7 +23,9 @@ class AppLink {
|
|||||||
// static final String seferGizaServer = Env.seferGizaServer;
|
// static final String seferGizaServer = Env.seferGizaServer;
|
||||||
static final String endPoint = box.read(BoxName.serverChosen);
|
static final String endPoint = box.read(BoxName.serverChosen);
|
||||||
static final String server = endPoint;
|
static final String server = endPoint;
|
||||||
|
static String seferCairoServer = endPoint;
|
||||||
|
static String seferGizaServer = box.read('seferGizaServer');
|
||||||
|
static String seferAlexandriaServer = box.read('seferAlexandriaServer');
|
||||||
// static final String server = Env.serverPHP;
|
// static final String server = Env.serverPHP;
|
||||||
|
|
||||||
static String googleMapsLink = 'https://maps.googleapis.com/maps/api/';
|
static String googleMapsLink = 'https://maps.googleapis.com/maps/api/';
|
||||||
@@ -240,6 +241,8 @@ class AppLink {
|
|||||||
static String location = '$endPoint/ride/location';
|
static String location = '$endPoint/ride/location';
|
||||||
static String getCarsLocationByPassenger = "$location/get.php";
|
static String getCarsLocationByPassenger = "$location/get.php";
|
||||||
static String addpassengerLocation = "$location/addpassengerLocation.php";
|
static String addpassengerLocation = "$location/addpassengerLocation.php";
|
||||||
|
static String getLocationAreaLinks =
|
||||||
|
"https://server.sefer.live/sefer.click/sefer/ride/location/get_location_area_links.php";
|
||||||
static String getLatestLocationPassenger =
|
static String getLatestLocationPassenger =
|
||||||
"$location/getLatestLocationPassenger.php";
|
"$location/getLatestLocationPassenger.php";
|
||||||
static String getFemalDriverLocationByPassenger =
|
static String getFemalDriverLocationByPassenger =
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import '../../../constant/links.dart';
|
|||||||
import '../../../main.dart';
|
import '../../../main.dart';
|
||||||
import '../../../views/home/Captin/history/history_details_page.dart';
|
import '../../../views/home/Captin/history/history_details_page.dart';
|
||||||
import '../../functions/crud.dart';
|
import '../../functions/crud.dart';
|
||||||
|
import '../../functions/encrypt_decrypt.dart';
|
||||||
|
|
||||||
class HistoryCaptainController extends GetxController {
|
class HistoryCaptainController extends GetxController {
|
||||||
bool isloading = false;
|
bool isloading = false;
|
||||||
@@ -44,8 +45,9 @@ class HistoryCaptainController extends GetxController {
|
|||||||
|
|
||||||
getHistoryDetails(String orderId) async {
|
getHistoryDetails(String orderId) async {
|
||||||
isloading = true;
|
isloading = true;
|
||||||
var res = await CRUD()
|
var res = await CRUD().get(
|
||||||
.get(link: AppLink.getRideOrderID, payload: {'id': orderId});
|
link: AppLink.getRideOrderID,
|
||||||
|
payload: {'id': encryptionHelper.encryptData(orderId)});
|
||||||
historyDetailsData = jsonDecode(res);
|
historyDetailsData = jsonDecode(res);
|
||||||
isloading = false;
|
isloading = false;
|
||||||
update();
|
update();
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'package:sefer_driver/constant/colors.dart';
|
|||||||
import 'package:sefer_driver/constant/links.dart';
|
import 'package:sefer_driver/constant/links.dart';
|
||||||
import 'package:sefer_driver/controller/firebase/local_notification.dart';
|
import 'package:sefer_driver/controller/firebase/local_notification.dart';
|
||||||
import 'package:sefer_driver/controller/functions/crud.dart';
|
import 'package:sefer_driver/controller/functions/crud.dart';
|
||||||
|
import 'package:sefer_driver/controller/functions/encrypt_decrypt.dart';
|
||||||
import 'package:sefer_driver/controller/home/payment/captain_wallet_controller.dart';
|
import 'package:sefer_driver/controller/home/payment/captain_wallet_controller.dart';
|
||||||
import 'package:sefer_driver/views/widgets/mydialoug.dart';
|
import 'package:sefer_driver/views/widgets/mydialoug.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -149,33 +150,42 @@ Download the SEFER app now and enjoy your ride!
|
|||||||
|
|
||||||
void onSelectDriverInvitation(int index) async {
|
void onSelectDriverInvitation(int index) async {
|
||||||
MyDialog().getDialog(
|
MyDialog().getDialog(
|
||||||
driverInvitationData[index]['countOfInvitDriver'] < 100
|
int.parse(encryptionHelper.decryptData(
|
||||||
? '${'When'.tr} ${driverInvitationData[index]['invitorName']} ${"complete, you can claim your gift".tr} '
|
driverInvitationData[index]['countOfInvitDriver'])) <
|
||||||
|
100
|
||||||
|
? '${'When'.tr} ${encryptionHelper.decryptData(driverInvitationData[index]['invitorName'])} ${"complete, you can claim your gift".tr} '
|
||||||
: 'You deserve the gift'.tr,
|
: 'You deserve the gift'.tr,
|
||||||
'${driverInvitationData[index]['invitorName']} ${driverInvitationData[index]['countOfInvitDriver']} / 100 ${'Trip'.tr}',
|
'${encryptionHelper.decryptData(driverInvitationData[index]['invitorName'])} ${encryptionHelper.decryptData(driverInvitationData[index]['countOfInvitDriver'])} / 100 ${'Trip'.tr}',
|
||||||
() async {
|
() async {
|
||||||
if (driverInvitationData[index]['countOfInvitDriver'] < 100) {
|
if (int.parse(encryptionHelper.decryptData(
|
||||||
|
driverInvitationData[index]['countOfInvitDriver'])) <
|
||||||
|
100) {
|
||||||
Get.back();
|
Get.back();
|
||||||
} else {
|
} else {
|
||||||
//claim your gift
|
//claim your gift
|
||||||
if (driverInvitationData[index]['isGiftToken'].toString() == '0') {
|
if (encryptionHelper
|
||||||
|
.decryptData(driverInvitationData[index]['isGiftToken'])
|
||||||
|
.toString() ==
|
||||||
|
'0') {
|
||||||
Get.back();
|
Get.back();
|
||||||
await CRUD().post(
|
await CRUD().post(link: AppLink.updateInviteDriver, payload: {
|
||||||
link: AppLink.updateInviteDriver,
|
'id': encryptionHelper
|
||||||
payload: {'id': driverInvitationData[index]['id']});
|
.encryptData(driverInvitationData[index]['id'])
|
||||||
|
});
|
||||||
await Get.find<CaptainWalletController>().addDriverPayment(
|
await Get.find<CaptainWalletController>().addDriverPayment(
|
||||||
'paymentMethod',
|
'paymentMethod',
|
||||||
'500',
|
encryptionHelper.encryptData('500'),
|
||||||
'',
|
'',
|
||||||
);
|
);
|
||||||
// add for invitor too
|
// add for invitor too
|
||||||
await Get.find<CaptainWalletController>().addDriverWalletToInvitor(
|
await Get.find<CaptainWalletController>().addDriverWalletToInvitor(
|
||||||
'paymentMethod',
|
'paymentMethod',
|
||||||
driverInvitationData[index]['driverInviterId'],
|
encryptionHelper
|
||||||
'500',
|
.encryptData(driverInvitationData[index]['driverInviterId']),
|
||||||
|
encryptionHelper.encryptData('500'),
|
||||||
);
|
);
|
||||||
await Get.find<CaptainWalletController>()
|
await Get.find<CaptainWalletController>().addSeferWallet(
|
||||||
.addSeferWallet('giftInvitation', '-1000');
|
'giftInvitation', encryptionHelper.encryptData('-1000'));
|
||||||
NotificationCaptainController().addNotificationCaptain(
|
NotificationCaptainController().addNotificationCaptain(
|
||||||
driverInvitationData[index]['driverInviterId'].toString(),
|
driverInvitationData[index]['driverInviterId'].toString(),
|
||||||
"You have got a gift for invitation".tr,
|
"You have got a gift for invitation".tr,
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import 'package:location/location.dart';
|
|||||||
import '../../../constant/info.dart';
|
import '../../../constant/info.dart';
|
||||||
import '../../../views/auth/captin/cards/egypt_card_a_i.dart';
|
import '../../../views/auth/captin/cards/egypt_card_a_i.dart';
|
||||||
import '../../firebase/firbase_messge.dart';
|
import '../../firebase/firbase_messge.dart';
|
||||||
|
import '../../functions/encrypt_decrypt.dart';
|
||||||
|
|
||||||
class LoginDriverController extends GetxController {
|
class LoginDriverController extends GetxController {
|
||||||
final formKey = GlobalKey<FormState>();
|
final formKey = GlobalKey<FormState>();
|
||||||
@@ -138,30 +139,36 @@ class LoginDriverController extends GetxController {
|
|||||||
if (jsonDecoeded.isNotEmpty) {
|
if (jsonDecoeded.isNotEmpty) {
|
||||||
if (jsonDecoeded['status'] == 'success' &&
|
if (jsonDecoeded['status'] == 'success' &&
|
||||||
jsonDecoeded['data'][0]['is_verified'].toString() == '1') {
|
jsonDecoeded['data'][0]['is_verified'].toString() == '1') {
|
||||||
box.write(BoxName.emailDriver, jsonDecoeded['data'][0]['email']);
|
box.write(BoxName.emailDriver, (jsonDecoeded['data'][0]['email']));
|
||||||
box.write(BoxName.driverID, jsonDecoeded['data'][0]['id']);
|
box.write(BoxName.driverID, (jsonDecoeded['data'][0]['id']));
|
||||||
box.write(BoxName.isTest, '1');
|
box.write(BoxName.isTest, '1');
|
||||||
box.write(BoxName.gender, jsonDecoeded['data'][0]['gender']);
|
box.write(BoxName.gender, (jsonDecoeded['data'][0]['gender']));
|
||||||
box.write(BoxName.phoneVerified,
|
box.write(BoxName.phoneVerified,
|
||||||
jsonDecoeded['data'][0]['is_verified'].toString());
|
jsonDecoeded['data'][0]['is_verified'].toString());
|
||||||
box.write(BoxName.phoneDriver, jsonDecoeded['data'][0]['phone']);
|
box.write(BoxName.phoneDriver, (jsonDecoeded['data'][0]['phone']));
|
||||||
box.write(BoxName.is_claimed, jsonDecoeded['data'][0]['is_claimed']);
|
box.write(BoxName.is_claimed, jsonDecoeded['data'][0]['is_claimed']);
|
||||||
box.write(BoxName.isInstall, jsonDecoeded['data'][0]['isInstall']);
|
box.write(BoxName.isInstall, jsonDecoeded['data'][0]['isInstall']);
|
||||||
// box.write(
|
// box.write(
|
||||||
// BoxName.isGiftToken, jsonDecoeded['data'][0]['isGiftToken']);
|
// BoxName.isGiftToken, jsonDecoeded['data'][0]['isGiftToken']);
|
||||||
box.write(BoxName.nameArabic, jsonDecoeded['data'][0]['name_arabic']);
|
box.write(
|
||||||
|
BoxName.nameArabic, (jsonDecoeded['data'][0]['name_arabic']));
|
||||||
box.write(BoxName.carYear, jsonDecoeded['data'][0]['year']);
|
box.write(BoxName.carYear, jsonDecoeded['data'][0]['year']);
|
||||||
box.write(
|
box.write(
|
||||||
BoxName.bankCodeDriver, jsonDecoeded['data'][0]['bankCode']);
|
BoxName.bankCodeDriver, (jsonDecoeded['data'][0]['bankCode']));
|
||||||
box.write(BoxName.accountBankNumberDriver,
|
box.write(BoxName.accountBankNumberDriver,
|
||||||
jsonDecoeded['data'][0]['accountBank']);
|
(jsonDecoeded['data'][0]['accountBank']));
|
||||||
box.write(
|
box.write(
|
||||||
BoxName.nameDriver,
|
BoxName.nameDriver,
|
||||||
'${jsonDecoeded['data'][0]['first_name']}'
|
'${encryptionHelper.decryptData(jsonDecoeded['data'][0]['first_name'])}'
|
||||||
' ${jsonDecoeded['data'][0]['last_name']}');
|
' ${encryptionHelper.decryptData(jsonDecoeded['data'][0]['last_name'])}');
|
||||||
if ((jsonDecoeded['data'][0]['model'].toString().contains('دراجه') ||
|
if (((jsonDecoeded['data'][0]['model'])
|
||||||
|
.toString()
|
||||||
|
.contains('دراجه') ||
|
||||||
jsonDecoeded['data'][0]['make'].toString().contains('دراجه '))) {
|
jsonDecoeded['data'][0]['make'].toString().contains('دراجه '))) {
|
||||||
if (jsonDecoeded['data'][0]['gender'].toString() == 'Male') {
|
if (encryptionHelper
|
||||||
|
.decryptData(jsonDecoeded['data'][0]['gender'])
|
||||||
|
.toString() ==
|
||||||
|
'Male') {
|
||||||
box.write(BoxName.carTypeOfDriver, 'Scooter');
|
box.write(BoxName.carTypeOfDriver, 'Scooter');
|
||||||
} else {
|
} else {
|
||||||
box.write(BoxName.carTypeOfDriver, 'Pink Bike');
|
box.write(BoxName.carTypeOfDriver, 'Pink Bike');
|
||||||
@@ -183,17 +190,22 @@ class LoginDriverController extends GetxController {
|
|||||||
}
|
}
|
||||||
updateAppTester(AppInformation.appName);
|
updateAppTester(AppInformation.appName);
|
||||||
|
|
||||||
var token = await CRUD().get(
|
var token = await CRUD().get(link: AppLink.getDriverToken, payload: {
|
||||||
link: AppLink.getDriverToken,
|
'captain_id': encryptionHelper
|
||||||
payload: {'captain_id': box.read(BoxName.driverID).toString()});
|
.encryptData(box.read(BoxName.driverID))
|
||||||
|
.toString()
|
||||||
|
});
|
||||||
|
|
||||||
if (token != 'failure') {
|
if (token != 'failure') {
|
||||||
if (jsonDecode(token)['data'][0]['token'] !=
|
if (encryptionHelper
|
||||||
box.read(BoxName.tokenDriver)) {
|
.decryptData(jsonDecode(token)['data'][0]['token']) !=
|
||||||
|
encryptionHelper.decryptData(box.read(BoxName.tokenDriver))) {
|
||||||
Get.put(FirebaseMessagesController()).sendNotificationToDriverMAP(
|
Get.put(FirebaseMessagesController()).sendNotificationToDriverMAP(
|
||||||
'token change'.tr,
|
'token change'.tr,
|
||||||
'change device'.tr,
|
'change device'.tr,
|
||||||
jsonDecode(token)['data'][0]['token'].toString(),
|
encryptionHelper
|
||||||
|
.decryptData(jsonDecode(token)['data'][0]['token'])
|
||||||
|
.toString(),
|
||||||
[],
|
[],
|
||||||
'promo.wav');
|
'promo.wav');
|
||||||
Get.defaultDialog(
|
Get.defaultDialog(
|
||||||
@@ -204,16 +216,16 @@ class LoginDriverController extends GetxController {
|
|||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await CRUD()
|
await CRUD()
|
||||||
.post(link: AppLink.addTokensDriver, payload: {
|
.post(link: AppLink.addTokensDriver, payload: {
|
||||||
'token': box.read(BoxName.tokenDriver),
|
'token': (box.read(BoxName.tokenDriver)),
|
||||||
'captain_id': box.read(BoxName.driverID).toString()
|
'captain_id': (box.read(BoxName.driverID)).toString()
|
||||||
});
|
});
|
||||||
await CRUD().post(
|
await CRUD().post(
|
||||||
link:
|
link:
|
||||||
"${AppLink.seferAlexandriaServer}/ride/firebase/addDriver.php",
|
"${AppLink.seferAlexandriaServer}/ride/firebase/addDriver.php",
|
||||||
payload: {
|
payload: {
|
||||||
'token': box.read(BoxName.tokenDriver),
|
'token': (box.read(BoxName.tokenDriver)),
|
||||||
'captain_id':
|
'captain_id':
|
||||||
box.read(BoxName.driverID).toString()
|
(box.read(BoxName.driverID)).toString()
|
||||||
});
|
});
|
||||||
// await CRUD().post(
|
// await CRUD().post(
|
||||||
// link:
|
// link:
|
||||||
@@ -250,10 +262,11 @@ class LoginDriverController extends GetxController {
|
|||||||
update();
|
update();
|
||||||
var res = await CRUD()
|
var res = await CRUD()
|
||||||
.get(link: AppLink.loginUsingCredentialsWithoutGoogle, payload: {
|
.get(link: AppLink.loginUsingCredentialsWithoutGoogle, payload: {
|
||||||
'email': email,
|
'email': encryptionHelper.encryptData(email),
|
||||||
'password': password,
|
'password': password,
|
||||||
});
|
});
|
||||||
box.write(BoxName.emailDriver, email.toString());
|
box.write(
|
||||||
|
BoxName.emailDriver, encryptionHelper.encryptData(email).toString());
|
||||||
print(res);
|
print(res);
|
||||||
if (res == 'failure') {
|
if (res == 'failure') {
|
||||||
//Failure
|
//Failure
|
||||||
@@ -270,32 +283,41 @@ class LoginDriverController extends GetxController {
|
|||||||
if (jsonDecoeded.isNotEmpty) {
|
if (jsonDecoeded.isNotEmpty) {
|
||||||
if (jsonDecoeded['status'] == 'success' &&
|
if (jsonDecoeded['status'] == 'success' &&
|
||||||
jsonDecoeded['data'][0]['is_verified'].toString() == '1') {
|
jsonDecoeded['data'][0]['is_verified'].toString() == '1') {
|
||||||
box.write(BoxName.emailDriver, jsonDecoeded['data'][0]['email']);
|
box.write(BoxName.emailDriver, (jsonDecoeded['data'][0]['email']));
|
||||||
box.write(BoxName.driverID, jsonDecoeded['data'][0]['id']);
|
box.write(BoxName.driverID, (jsonDecoeded['data'][0]['id']));
|
||||||
box.write(BoxName.isTest, '1');
|
box.write(BoxName.isTest, '1');
|
||||||
box.write(BoxName.gender, jsonDecoeded['data'][0]['gender']);
|
box.write(BoxName.gender, (jsonDecoeded['data'][0]['gender']));
|
||||||
box.write(BoxName.phoneVerified,
|
box.write(BoxName.phoneVerified,
|
||||||
jsonDecoeded['data'][0]['is_verified'].toString());
|
jsonDecoeded['data'][0]['is_verified'].toString());
|
||||||
box.write(BoxName.phoneDriver, jsonDecoeded['data'][0]['phone']);
|
box.write(BoxName.phoneDriver, (jsonDecoeded['data'][0]['phone']));
|
||||||
box.write(BoxName.nameArabic, jsonDecoeded['data'][0]['name_arabic']);
|
|
||||||
box.write(
|
box.write(
|
||||||
BoxName.bankCodeDriver, jsonDecoeded['data'][0]['bankCode']);
|
BoxName.nameArabic,
|
||||||
|
encryptionHelper
|
||||||
|
.decryptData(jsonDecoeded['data'][0]['name_arabic']));
|
||||||
|
box.write(
|
||||||
|
BoxName.bankCodeDriver, (jsonDecoeded['data'][0]['bankCode']));
|
||||||
box.write(BoxName.accountBankNumberDriver,
|
box.write(BoxName.accountBankNumberDriver,
|
||||||
jsonDecoeded['data'][0]['accountBank']);
|
jsonDecoeded['data'][0]['accountBank']);
|
||||||
box.write(
|
box.write(
|
||||||
BoxName.nameDriver,
|
BoxName.nameDriver,
|
||||||
'${jsonDecoeded['data'][0]['first_name']}'
|
'${encryptionHelper.decryptData(jsonDecoeded['data'][0]['first_name'])}'
|
||||||
' ${jsonDecoeded['data'][0]['last_name']}');
|
' ${encryptionHelper.decryptData(jsonDecoeded['data'][0]['last_name'])}');
|
||||||
if ((jsonDecoeded['data'][0]['model'].toString().contains('دراجه') ||
|
if ((jsonDecoeded['data'][0]['model'].toString().contains('دراجه') ||
|
||||||
jsonDecoeded['data'][0]['make'].toString().contains('دراجه '))) {
|
jsonDecoeded['data'][0]['make'].toString().contains('دراجه '))) {
|
||||||
if (jsonDecoeded['data'][0]['gender'].toString() == 'Male') {
|
if (encryptionHelper
|
||||||
|
.decryptData(jsonDecoeded['data'][0]['gender'])
|
||||||
|
.toString() ==
|
||||||
|
'Male') {
|
||||||
box.write(BoxName.carTypeOfDriver, 'Scooter');
|
box.write(BoxName.carTypeOfDriver, 'Scooter');
|
||||||
} else {
|
} else {
|
||||||
box.write(BoxName.carTypeOfDriver, 'Pink Bike');
|
box.write(BoxName.carTypeOfDriver, 'Pink Bike');
|
||||||
}
|
}
|
||||||
} else if (int.parse(jsonDecoeded['data'][0]['year'].toString()) >
|
} else if (int.parse(jsonDecoeded['data'][0]['year'].toString()) >
|
||||||
2017) {
|
2017) {
|
||||||
if (jsonDecoeded['data'][0]['gender'].toString() != 'Male') {
|
if (encryptionHelper
|
||||||
|
.decryptData(jsonDecoeded['data'][0]['gender'])
|
||||||
|
.toString() !=
|
||||||
|
'Male') {
|
||||||
box.write(BoxName.carTypeOfDriver, 'Lady');
|
box.write(BoxName.carTypeOfDriver, 'Lady');
|
||||||
} else {
|
} else {
|
||||||
box.write(BoxName.carTypeOfDriver, 'Comfort');
|
box.write(BoxName.carTypeOfDriver, 'Comfort');
|
||||||
@@ -315,12 +337,15 @@ class LoginDriverController extends GetxController {
|
|||||||
payload: {'captain_id': box.read(BoxName.driverID).toString()});
|
payload: {'captain_id': box.read(BoxName.driverID).toString()});
|
||||||
|
|
||||||
if (token != 'failure') {
|
if (token != 'failure') {
|
||||||
if (jsonDecode(token)['data'][0]['token'] !=
|
if (encryptionHelper
|
||||||
box.read(BoxName.tokenDriver)) {
|
.decryptData(jsonDecode(token)['data'][0]['token']) !=
|
||||||
|
encryptionHelper.decryptData(box.read(BoxName.tokenDriver))) {
|
||||||
Get.put(FirebaseMessagesController()).sendNotificationToDriverMAP(
|
Get.put(FirebaseMessagesController()).sendNotificationToDriverMAP(
|
||||||
'token change'.tr,
|
'token change'.tr,
|
||||||
'change device'.tr,
|
'change device'.tr,
|
||||||
jsonDecode(token)['data'][0]['token'].toString(),
|
encryptionHelper
|
||||||
|
.decryptData(jsonDecode(token)['data'][0]['token'])
|
||||||
|
.toString(),
|
||||||
[],
|
[],
|
||||||
'ding.wav');
|
'ding.wav');
|
||||||
Get.defaultDialog(
|
Get.defaultDialog(
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import '../../../constant/colors.dart';
|
|||||||
import '../../../views/auth/captin/ai_page.dart';
|
import '../../../views/auth/captin/ai_page.dart';
|
||||||
import '../../../views/auth/captin/car_license_page.dart';
|
import '../../../views/auth/captin/car_license_page.dart';
|
||||||
import '../../../views/home/Captin/home_captain/home_captin.dart';
|
import '../../../views/home/Captin/home_captain/home_captin.dart';
|
||||||
|
import '../../functions/encrypt_decrypt.dart';
|
||||||
import '../../functions/sms_egypt_controller.dart';
|
import '../../functions/sms_egypt_controller.dart';
|
||||||
|
|
||||||
class RegisterCaptainController extends GetxController {
|
class RegisterCaptainController extends GetxController {
|
||||||
@@ -107,7 +108,8 @@ class RegisterCaptainController extends GetxController {
|
|||||||
if (isValidEgyptianPhoneNumber(phoneController.text)) {
|
if (isValidEgyptianPhoneNumber(phoneController.text)) {
|
||||||
var responseCheker = await CRUD()
|
var responseCheker = await CRUD()
|
||||||
.post(link: AppLink.checkPhoneNumberISVerfiedDriver, payload: {
|
.post(link: AppLink.checkPhoneNumberISVerfiedDriver, payload: {
|
||||||
'phone_number': '+2${phoneController.text}',
|
'phone_number':
|
||||||
|
encryptionHelper.encryptData('+2${phoneController.text}'),
|
||||||
});
|
});
|
||||||
if (responseCheker != 'failure') {
|
if (responseCheker != 'failure') {
|
||||||
var d = jsonDecode(responseCheker);
|
var d = jsonDecode(responseCheker);
|
||||||
@@ -115,15 +117,18 @@ class RegisterCaptainController extends GetxController {
|
|||||||
Get.snackbar('Phone number is verified before'.tr, '',
|
Get.snackbar('Phone number is verified before'.tr, '',
|
||||||
backgroundColor: AppColor.greenColor);
|
backgroundColor: AppColor.greenColor);
|
||||||
box.write(BoxName.phoneVerified, '1');
|
box.write(BoxName.phoneVerified, '1');
|
||||||
box.write(BoxName.phone, '+2${phoneController.text}');
|
box.write(BoxName.phone,
|
||||||
|
encryptionHelper.encryptData('+2${phoneController.text}'));
|
||||||
await Get.put(LoginDriverController()).loginWithGoogleCredential(
|
await Get.put(LoginDriverController()).loginWithGoogleCredential(
|
||||||
box.read(BoxName.driverID).toString(),
|
box.read(BoxName.driverID).toString(),
|
||||||
box.read(BoxName.emailDriver).toString(),
|
box.read(BoxName.emailDriver).toString(),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: {
|
await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: {
|
||||||
'phone_number': '+2${phoneController.text}',
|
'phone_number':
|
||||||
'token_code': randomNumber.toString(),
|
encryptionHelper.encryptData('+2${phoneController.text}'),
|
||||||
|
'token_code':
|
||||||
|
encryptionHelper.encryptData(randomNumber.toString()),
|
||||||
"driverId": box.read(BoxName.driverID),
|
"driverId": box.read(BoxName.driverID),
|
||||||
"email": box.read(BoxName.emailDriver),
|
"email": box.read(BoxName.emailDriver),
|
||||||
});
|
});
|
||||||
@@ -138,8 +143,10 @@ class RegisterCaptainController extends GetxController {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: {
|
await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: {
|
||||||
'phone_number': '+2${phoneController.text}',
|
'phone_number':
|
||||||
'token_code': randomNumber.toString(),
|
encryptionHelper.encryptData('+2${phoneController.text}'),
|
||||||
|
'token_code':
|
||||||
|
encryptionHelper.encryptData(randomNumber.toString()),
|
||||||
"driverId": box.read(BoxName.driverID),
|
"driverId": box.read(BoxName.driverID),
|
||||||
"email": box.read(BoxName.emailDriver),
|
"email": box.read(BoxName.emailDriver),
|
||||||
});
|
});
|
||||||
@@ -239,7 +246,8 @@ class RegisterCaptainController extends GetxController {
|
|||||||
_handleAlreadyVerified() {
|
_handleAlreadyVerified() {
|
||||||
mySnackbarSuccess('Phone number is already verified'.tr);
|
mySnackbarSuccess('Phone number is already verified'.tr);
|
||||||
box.write(BoxName.phoneVerified, '1');
|
box.write(BoxName.phoneVerified, '1');
|
||||||
box.write(BoxName.phone, '+2${phoneController.text}');
|
box.write(BoxName.phone,
|
||||||
|
encryptionHelper.encryptData('+2${phoneController.text}'));
|
||||||
Get.put(LoginDriverController()).loginWithGoogleCredential(
|
Get.put(LoginDriverController()).loginWithGoogleCredential(
|
||||||
box.read(BoxName.driverID).toString(),
|
box.read(BoxName.driverID).toString(),
|
||||||
box.read(BoxName.emailDriver).toString(),
|
box.read(BoxName.emailDriver).toString(),
|
||||||
@@ -254,8 +262,8 @@ class RegisterCaptainController extends GetxController {
|
|||||||
await CRUD().post(
|
await CRUD().post(
|
||||||
link: AppLink.sendVerifyOtpMessage,
|
link: AppLink.sendVerifyOtpMessage,
|
||||||
payload: {
|
payload: {
|
||||||
'phone_number': '+2$phoneNumber',
|
'phone_number': encryptionHelper.encryptData('+2$phoneNumber'),
|
||||||
'token_code': randomNumber.toString(),
|
'token_code': encryptionHelper.encryptData(randomNumber.toString()),
|
||||||
'driverId': box.read(BoxName.driverID),
|
'driverId': box.read(BoxName.driverID),
|
||||||
'email': box.read(BoxName.emailDriver),
|
'email': box.read(BoxName.emailDriver),
|
||||||
},
|
},
|
||||||
@@ -273,12 +281,14 @@ class RegisterCaptainController extends GetxController {
|
|||||||
// var loginDriverController = Get.put(LoginDriverController());
|
// var loginDriverController = Get.put(LoginDriverController());
|
||||||
if (formKey3.currentState!.validate()) {
|
if (formKey3.currentState!.validate()) {
|
||||||
var res = await CRUD().post(link: AppLink.verifyOtpDriver, payload: {
|
var res = await CRUD().post(link: AppLink.verifyOtpDriver, payload: {
|
||||||
'phone_number': '+2${phoneController.text}',
|
'phone_number':
|
||||||
'token_code': verifyCode.text.toString(),
|
encryptionHelper.encryptData('+2${phoneController.text}'),
|
||||||
|
'token_code': encryptionHelper.encryptData(verifyCode.text.toString()),
|
||||||
});
|
});
|
||||||
if (res != 'failure') {
|
if (res != 'failure') {
|
||||||
// var dec = jsonDecode(res);
|
// var dec = jsonDecode(res);
|
||||||
box.write(BoxName.phoneDriver, '+2${phoneController.text}');
|
box.write(BoxName.phoneDriver,
|
||||||
|
encryptionHelper.encryptData('+2${phoneController.text}'));
|
||||||
box.write(BoxName.phoneVerified, '1');
|
box.write(BoxName.phoneVerified, '1');
|
||||||
|
|
||||||
// loginDriverController.isGoogleLogin == true
|
// loginDriverController.isGoogleLogin == true
|
||||||
@@ -303,9 +313,10 @@ class RegisterCaptainController extends GetxController {
|
|||||||
sendVerifications() async {
|
sendVerifications() async {
|
||||||
var res = await CRUD().post(link: AppLink.verifyEmail, payload: {
|
var res = await CRUD().post(link: AppLink.verifyEmail, payload: {
|
||||||
'email': emailController.text.isEmpty
|
'email': emailController.text.isEmpty
|
||||||
? Get.find<LoginDriverController>().emailController.text.toString()
|
? encryptionHelper.encryptData(
|
||||||
: emailController.text,
|
Get.find<LoginDriverController>().emailController.text.toString())
|
||||||
'token': verifyCode.text,
|
: encryptionHelper.encryptData(emailController.text),
|
||||||
|
'token': encryptionHelper.encryptData(verifyCode.text),
|
||||||
});
|
});
|
||||||
|
|
||||||
if (res != 'failure') {
|
if (res != 'failure') {
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
import 'package:sefer_driver/constant/box_name.dart';
|
import 'package:sefer_driver/constant/box_name.dart';
|
||||||
import 'package:sefer_driver/constant/colors.dart';
|
|
||||||
import 'package:sefer_driver/constant/links.dart';
|
|
||||||
import 'package:sefer_driver/controller/auth/captin/login_captin_controller.dart';
|
import 'package:sefer_driver/controller/auth/captin/login_captin_controller.dart';
|
||||||
import 'package:sefer_driver/controller/functions/crud.dart';
|
|
||||||
import 'package:sefer_driver/main.dart';
|
import 'package:sefer_driver/main.dart';
|
||||||
import 'package:sefer_driver/views/auth/captin/cards/sms_signup.dart';
|
import 'package:sefer_driver/views/auth/captin/cards/sms_signup.dart';
|
||||||
import 'package:sefer_driver/views/home/on_boarding_page.dart';
|
import 'package:sefer_driver/views/home/on_boarding_page.dart';
|
||||||
@@ -10,9 +7,9 @@ import 'package:sefer_driver/views/widgets/error_snakbar.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:google_sign_in/google_sign_in.dart';
|
import 'package:google_sign_in/google_sign_in.dart';
|
||||||
|
|
||||||
import '../../onbording_page.dart';
|
|
||||||
import '../../views/auth/captin/ai_page.dart';
|
import '../../views/auth/captin/ai_page.dart';
|
||||||
import '../functions/add_error.dart';
|
import '../functions/add_error.dart';
|
||||||
|
import '../functions/encrypt_decrypt.dart';
|
||||||
|
|
||||||
class GoogleSignInHelper {
|
class GoogleSignInHelper {
|
||||||
static final GoogleSignIn _googleSignIn = GoogleSignIn(
|
static final GoogleSignIn _googleSignIn = GoogleSignIn(
|
||||||
@@ -95,9 +92,10 @@ class GoogleSignInHelper {
|
|||||||
await _handleSignUp(googleUser);
|
await _handleSignUp(googleUser);
|
||||||
|
|
||||||
// Retrieve driverID and emailDriver with added validation
|
// Retrieve driverID and emailDriver with added validation
|
||||||
final driverID = box.read(BoxName.driverID)?.toString() ?? 'Unknown ID';
|
final driverID =
|
||||||
|
(box.read(BoxName.driverID)!.toString()) ?? 'Unknown ID';
|
||||||
final emailDriver =
|
final emailDriver =
|
||||||
box.read(BoxName.emailDriver)?.toString() ?? 'Unknown Email';
|
(box.read(BoxName.emailDriver)!.toString()) ?? 'Unknown Email';
|
||||||
|
|
||||||
// Debug print statements
|
// Debug print statements
|
||||||
print('Driver ID: $driverID');
|
print('Driver ID: $driverID');
|
||||||
@@ -125,9 +123,12 @@ class GoogleSignInHelper {
|
|||||||
|
|
||||||
static Future<void> _handleSignUp(GoogleSignInAccount user) async {
|
static Future<void> _handleSignUp(GoogleSignInAccount user) async {
|
||||||
// Store driver information
|
// Store driver information
|
||||||
box.write(BoxName.driverID,
|
box.write(
|
||||||
user.id ?? 'Unknown ID'); // Ensure there's a fallback value
|
BoxName.driverID,
|
||||||
box.write(BoxName.emailDriver, user.email ?? 'Unknown Email');
|
encryptionHelper.encryptData(user.id) ??
|
||||||
|
'Unknown ID'); // Ensure there's a fallback value
|
||||||
|
box.write(BoxName.emailDriver,
|
||||||
|
encryptionHelper.encryptData(user.email) ?? 'Unknown Email');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Method to handle Google Sign-Out
|
// Method to handle Google Sign-Out
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import '../../views/home/Captin/orderCaptin/order_speed_request.dart';
|
|||||||
import '../../views/home/Captin/orderCaptin/order_request_page.dart';
|
import '../../views/home/Captin/orderCaptin/order_request_page.dart';
|
||||||
import '../../views/home/Captin/orderCaptin/vip_order_page.dart';
|
import '../../views/home/Captin/orderCaptin/vip_order_page.dart';
|
||||||
import '../auth/google_sign.dart';
|
import '../auth/google_sign.dart';
|
||||||
|
import '../functions/encrypt_decrypt.dart';
|
||||||
import '../functions/face_detect.dart';
|
import '../functions/face_detect.dart';
|
||||||
import 'access_token.dart';
|
import 'access_token.dart';
|
||||||
import 'local_notification.dart';
|
import 'local_notification.dart';
|
||||||
@@ -70,7 +71,7 @@ class FirebaseMessagesController extends GetxController {
|
|||||||
Future getToken() async {
|
Future getToken() async {
|
||||||
fcmToken.getToken().then((token) {
|
fcmToken.getToken().then((token) {
|
||||||
// Log.print('token: ${token}');
|
// Log.print('token: ${token}');
|
||||||
box.write(BoxName.tokenDriver, token);
|
box.write(BoxName.tokenDriver, encryptionHelper.encryptData(token!));
|
||||||
});
|
});
|
||||||
|
|
||||||
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
|
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
|
||||||
|
|||||||
@@ -28,6 +28,9 @@ class CRUD {
|
|||||||
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials.toString()))}',
|
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials.toString()))}',
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
Log.print('request: ${response.request}');
|
||||||
|
Log.print('response: ${response.body}');
|
||||||
|
Log.print('payload: ${payload}');
|
||||||
// if (response.statusCode == 200) {
|
// if (response.statusCode == 200) {
|
||||||
var jsonData = jsonDecode(response.body);
|
var jsonData = jsonDecode(response.body);
|
||||||
if (jsonData['status'] == 'success') {
|
if (jsonData['status'] == 'success') {
|
||||||
@@ -221,6 +224,9 @@ class CRUD {
|
|||||||
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}',
|
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}',
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
Log.print('request: ${response.request}');
|
||||||
|
Log.print('response: ${response.body}');
|
||||||
|
Log.print('payload: ${payload}');
|
||||||
var jsonData = jsonDecode(response.body);
|
var jsonData = jsonDecode(response.body);
|
||||||
if (response.statusCode == 200) {
|
if (response.statusCode == 200) {
|
||||||
if (jsonData['status'] == 'success') {
|
if (jsonData['status'] == 'success') {
|
||||||
|
|||||||
@@ -1,24 +1,80 @@
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:device_info_plus/device_info_plus.dart';
|
import 'package:device_info_plus/device_info_plus.dart';
|
||||||
import 'package:get_storage/get_storage.dart';
|
import 'package:get_storage/get_storage.dart';
|
||||||
|
|
||||||
import '../../constant/box_name.dart';
|
import '../../constant/box_name.dart';
|
||||||
|
|
||||||
class DeviceController {
|
class DeviceInfo {
|
||||||
String deviceSerialNumber = '';
|
final String? manufacturer;
|
||||||
final box = GetStorage();
|
final String? model;
|
||||||
|
final String? deviceId;
|
||||||
|
final String? osVersion;
|
||||||
|
final String? platform;
|
||||||
|
final String? deviceName;
|
||||||
|
final bool? isPhysicalDevice;
|
||||||
|
|
||||||
void getDeviceSerialNumber() async {
|
DeviceInfo({
|
||||||
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
|
this.manufacturer,
|
||||||
|
this.model,
|
||||||
|
this.deviceId,
|
||||||
|
this.osVersion,
|
||||||
|
this.platform,
|
||||||
|
this.deviceName,
|
||||||
|
this.isPhysicalDevice,
|
||||||
|
});
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => {
|
||||||
|
'manufacturer': manufacturer,
|
||||||
|
'model': model,
|
||||||
|
'deviceId': deviceId,
|
||||||
|
'osVersion': osVersion,
|
||||||
|
'platform': platform,
|
||||||
|
'deviceName': deviceName,
|
||||||
|
'isPhysicalDevice': isPhysicalDevice,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class DeviceController {
|
||||||
|
final box = GetStorage();
|
||||||
|
final _deviceInfo = DeviceInfoPlugin();
|
||||||
|
|
||||||
|
Future<DeviceInfo> getDeviceInfo() async {
|
||||||
if (Platform.isAndroid) {
|
if (Platform.isAndroid) {
|
||||||
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
|
return await _getAndroidDeviceInfo();
|
||||||
deviceSerialNumber = androidInfo.serialNumber;
|
|
||||||
box.write(BoxName.deviceInfo, deviceSerialNumber.toString());
|
|
||||||
} else if (Platform.isIOS) {
|
} else if (Platform.isIOS) {
|
||||||
IosDeviceInfo iosInfo = await deviceInfo.iosInfo;
|
return await _getIosDeviceInfo();
|
||||||
deviceSerialNumber = iosInfo.identifierForVendor!;
|
|
||||||
box.write(BoxName.deviceInfo, deviceSerialNumber.toString());
|
|
||||||
}
|
}
|
||||||
|
throw UnsupportedError('Unsupported platform');
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<DeviceInfo> _getAndroidDeviceInfo() async {
|
||||||
|
final androidInfo = await _deviceInfo.androidInfo;
|
||||||
|
final deviceInfo = DeviceInfo(
|
||||||
|
manufacturer: androidInfo.manufacturer,
|
||||||
|
model: androidInfo.model,
|
||||||
|
deviceId: androidInfo.serialNumber,
|
||||||
|
osVersion: androidInfo.version.release,
|
||||||
|
platform: 'Android',
|
||||||
|
deviceName: androidInfo.device,
|
||||||
|
isPhysicalDevice: androidInfo.isPhysicalDevice,
|
||||||
|
);
|
||||||
|
|
||||||
|
box.write(BoxName.deviceInfo, deviceInfo.toJson());
|
||||||
|
return deviceInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<DeviceInfo> _getIosDeviceInfo() async {
|
||||||
|
final iosInfo = await _deviceInfo.iosInfo;
|
||||||
|
final deviceInfo = DeviceInfo(
|
||||||
|
manufacturer: 'Apple',
|
||||||
|
model: iosInfo.model,
|
||||||
|
deviceId: iosInfo.identifierForVendor,
|
||||||
|
osVersion: iosInfo.systemVersion,
|
||||||
|
platform: 'iOS',
|
||||||
|
deviceName: iosInfo.name,
|
||||||
|
isPhysicalDevice: iosInfo.isPhysicalDevice,
|
||||||
|
);
|
||||||
|
|
||||||
|
box.write(BoxName.deviceInfo, deviceInfo.toJson());
|
||||||
|
return deviceInfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
52
lib/controller/functions/encrypt_decrypt.dart
Normal file
52
lib/controller/functions/encrypt_decrypt.dart
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
import 'package:encrypt/encrypt.dart' as encrypt;
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
|
|
||||||
|
import '../../env/env.dart';
|
||||||
|
|
||||||
|
var secretKey = Env.keyOfApp
|
||||||
|
.toString()
|
||||||
|
.split('XrXlBl')[0]; // Must be 16 characters for AES-128
|
||||||
|
const initializationVector = 'abcdefghijklmnop'; // Must be 16 characters
|
||||||
|
final encryptionHelper = EncryptionHelper(
|
||||||
|
secretKey: secretKey,
|
||||||
|
initializationVector: initializationVector,
|
||||||
|
);
|
||||||
|
|
||||||
|
class EncryptionHelper {
|
||||||
|
final encrypt.Key key;
|
||||||
|
final encrypt.IV iv;
|
||||||
|
|
||||||
|
EncryptionHelper(
|
||||||
|
{required String secretKey, required String initializationVector})
|
||||||
|
: key = encrypt.Key.fromUtf8(secretKey),
|
||||||
|
iv = encrypt.IV.fromUtf8(initializationVector);
|
||||||
|
|
||||||
|
// Initialize the helper
|
||||||
|
|
||||||
|
/// Encrypts the given plain text
|
||||||
|
String encryptData(String plainText) {
|
||||||
|
try {
|
||||||
|
final encrypter = encrypt.Encrypter(encrypt.AES(key,
|
||||||
|
mode: encrypt.AESMode.cbc)); // Explicitly use CBC mode
|
||||||
|
final encrypted = encrypter.encrypt(plainText, iv: iv);
|
||||||
|
return encrypted.base64;
|
||||||
|
} catch (e) {
|
||||||
|
debugPrint('Encryption Error: $e');
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Decrypts the given encrypted text
|
||||||
|
String decryptData(String encryptedText) {
|
||||||
|
try {
|
||||||
|
final encrypter = encrypt.Encrypter(encrypt.AES(key,
|
||||||
|
mode: encrypt.AESMode.cbc)); // Explicitly use CBC mode
|
||||||
|
final encrypted = encrypt.Encrypted.fromBase64(encryptedText);
|
||||||
|
final decrypted = encrypter.decrypt(encrypted, iv: iv);
|
||||||
|
return decrypted;
|
||||||
|
} catch (e) {
|
||||||
|
debugPrint('Decryption Error: $e');
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,6 +5,7 @@ import 'package:sefer_driver/main.dart';
|
|||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
|
|
||||||
import '../../constant/links.dart';
|
import '../../constant/links.dart';
|
||||||
|
import 'encrypt_decrypt.dart';
|
||||||
import 'upload_image.dart';
|
import 'upload_image.dart';
|
||||||
|
|
||||||
Future<String> faceDetector() async {
|
Future<String> faceDetector() async {
|
||||||
@@ -23,9 +24,9 @@ Future<String> faceDetector() async {
|
|||||||
|
|
||||||
request.body = json.encode({
|
request.body = json.encode({
|
||||||
"url1":
|
"url1":
|
||||||
"https://api.sefer.live/sefer/card_image/id_front-${box.read(BoxName.driverID)}.jpg",
|
"${AppLink.seferCairoServer}/card_image/id_front-${encryptionHelper.decryptData(box.read(BoxName.driverID))}.jpg",
|
||||||
"url2":
|
"url2":
|
||||||
"https://api.sefer.live/sefer/card_image/face_detect-${box.read(BoxName.driverID)}.jpg"
|
"https://api.sefer.live/sefer/card_image/face_detect-${encryptionHelper.decryptData(box.read(BoxName.driverID))}.jpg"
|
||||||
});
|
});
|
||||||
print('request.body: ${request.body}');
|
print('request.body: ${request.body}');
|
||||||
request.headers.addAll(headers);
|
request.headers.addAll(headers);
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import '../../constant/api_key.dart';
|
|||||||
import '../../constant/char_map.dart';
|
import '../../constant/char_map.dart';
|
||||||
import '../../constant/colors.dart';
|
import '../../constant/colors.dart';
|
||||||
import '../../print.dart';
|
import '../../print.dart';
|
||||||
|
import 'encrypt_decrypt.dart';
|
||||||
import 'tts.dart';
|
import 'tts.dart';
|
||||||
import 'upload_image.dart';
|
import 'upload_image.dart';
|
||||||
|
|
||||||
@@ -393,12 +394,12 @@ class AI extends GetxController {
|
|||||||
update();
|
update();
|
||||||
|
|
||||||
var payload = {
|
var payload = {
|
||||||
'first_name':
|
'first_name': encryptionHelper.encryptData(
|
||||||
responseNonIdCardFront['full_name']?.toString().split(' ')[0] ??
|
responseNonIdCardFront['full_name'].toString().split(' ')[0]) ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'last_name':
|
'last_name': encryptionHelper.encryptData(
|
||||||
responseNonIdCardFront['full_name']?.toString().split(' ').last ??
|
responseNonIdCardFront['full_name'].toString().split(' ').last) ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'email': box.read(BoxName.emailDriver)?.toString() ?? 'Not specified',
|
'email': box.read(BoxName.emailDriver)?.toString() ?? 'Not specified',
|
||||||
'phone': box.read(BoxName.phoneDriver)?.toString() ?? 'Not specified',
|
'phone': box.read(BoxName.phoneDriver)?.toString() ?? 'Not specified',
|
||||||
'id': box.read(BoxName.driverID)?.toString() ?? 'Not specified',
|
'id': box.read(BoxName.driverID)?.toString() ?? 'Not specified',
|
||||||
@@ -409,12 +410,16 @@ class AI extends GetxController {
|
|||||||
.passwordController
|
.passwordController
|
||||||
.text
|
.text
|
||||||
.toString(),
|
.toString(),
|
||||||
'gender': responseNonIdCardFront['gender']?.toString() ?? 'Not specified',
|
'gender': encryptionHelper
|
||||||
|
.encryptData(responseNonIdCardFront['gender'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
'license_type': 'Foreign',
|
'license_type': 'Foreign',
|
||||||
'national_number':
|
'national_number': encryptionHelper
|
||||||
responseNonIdCardFront['passport_no']?.toString() ?? 'Not specified',
|
.encryptData(responseNonIdCardFront['passport_no'].toString()) ??
|
||||||
'name_arabic':
|
'Not specified',
|
||||||
responseNonIdCardFront['full_name']?.toString() ?? 'Not specified',
|
'name_arabic': encryptionHelper
|
||||||
|
.encryptData(responseNonIdCardFront['full_name'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
'name_english': 'Not specified',
|
'name_english': 'Not specified',
|
||||||
'issue_date':
|
'issue_date':
|
||||||
responseNonIdCardBack['issueDate']?.toString() ?? 'Not specified',
|
responseNonIdCardBack['issueDate']?.toString() ?? 'Not specified',
|
||||||
@@ -426,24 +431,32 @@ class AI extends GetxController {
|
|||||||
? responseIdEgyptDriverLicense['license_categories'].join(', ')
|
? responseIdEgyptDriverLicense['license_categories'].join(', ')
|
||||||
: responseIdEgyptDriverLicense['license_categories']?.toString() ??
|
: responseIdEgyptDriverLicense['license_categories']?.toString() ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'address':
|
'address': encryptionHelper
|
||||||
responseNonIdCardFront['address']?.toString() ?? 'Not specified',
|
.encryptData(responseNonIdCardFront['address'].toString()) ??
|
||||||
'card_id':
|
'Not specified',
|
||||||
responseNonIdCardFront['card_id']?.toString() ?? 'Not specified',
|
'card_id': encryptionHelper
|
||||||
'occupation':
|
.encryptData(responseNonIdCardFront['card_id'].toString()) ??
|
||||||
responseNonIdCardBack['workStatus']?.toString() ?? 'Not specified',
|
'Not specified',
|
||||||
|
'occupation': encryptionHelper
|
||||||
|
.encryptData(responseNonIdCardBack['workStatus'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
'education': 'Not specified',
|
'education': 'Not specified',
|
||||||
'licenseIssueDate':
|
'licenseIssueDate':
|
||||||
responseNonIdCardBack['issueDate']?.toString() ?? 'Not specified',
|
responseNonIdCardBack['issueDate']?.toString() ?? 'Not specified',
|
||||||
'religion':
|
'religion': encryptionHelper
|
||||||
responseNonIdCardFront['country']?.toString() ?? 'Not specified',
|
.encryptData(responseNonIdCardFront['country'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
'status': 'yet',
|
'status': 'yet',
|
||||||
'birthdate':
|
'birthdate': encryptionHelper
|
||||||
responseNonIdCardFront['birthdate']?.toString() ?? 'Not specified',
|
.encryptData(responseNonIdCardFront['birthdate'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
'maritalStatus': 'Not specified',
|
'maritalStatus': 'Not specified',
|
||||||
'site': responseNonIdCardFront['address']?.toString() ?? 'Not specified',
|
'site': encryptionHelper
|
||||||
'employmentType':
|
.encryptData(responseNonIdCardFront['address'].toString()) ??
|
||||||
responseNonIdCardBack['residencyType']?.toString() ?? 'Not specified',
|
'Not specified',
|
||||||
|
'employmentType': encryptionHelper
|
||||||
|
.encryptData(responseNonIdCardBack['residencyType'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
};
|
};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -486,9 +499,11 @@ class AI extends GetxController {
|
|||||||
update();
|
update();
|
||||||
|
|
||||||
var payload = {
|
var payload = {
|
||||||
'first_name': responseIdEgyptDriverLicense['firstName']?.toString() ??
|
'first_name': encryptionHelper.encryptData(
|
||||||
|
responseIdEgyptDriverLicense['firstName'].toString()) ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'last_name': responseIdEgyptDriverLicense['lastName']?.toString() ??
|
'last_name': encryptionHelper.encryptData(
|
||||||
|
responseIdEgyptDriverLicense['lastName'].toString()) ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'email': box.read(BoxName.emailDriver)?.toString() ?? 'Not specified',
|
'email': box.read(BoxName.emailDriver)?.toString() ?? 'Not specified',
|
||||||
'phone': box.read(BoxName.phoneDriver)?.toString() ?? 'Not specified',
|
'phone': box.read(BoxName.phoneDriver)?.toString() ?? 'Not specified',
|
||||||
@@ -500,17 +515,21 @@ class AI extends GetxController {
|
|||||||
.passwordController
|
.passwordController
|
||||||
.text
|
.text
|
||||||
.toString(),
|
.toString(),
|
||||||
'gender': responseIdEgyptBack['gender']?.toString() ?? 'Not specified',
|
'gender': encryptionHelper
|
||||||
'license_type':
|
.encryptData(responseIdEgyptBack['gender'].toString()) ??
|
||||||
responseIdEgyptDriverLicense['license_type']?.toString() ??
|
'Not specified',
|
||||||
'Not specified',
|
'license_type': encryptionHelper.encryptData(
|
||||||
'national_number':
|
responseIdEgyptDriverLicense['license_type'].toString()) ??
|
||||||
responseIdEgyptBack['nationalID']?.toString() ?? 'Not specified',
|
'Not specified',
|
||||||
'name_arabic': responseIdEgyptDriverLicense['name_arabic']?.toString() ??
|
'national_number': encryptionHelper
|
||||||
|
.encryptData(responseIdEgyptBack['nationalID'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
|
'name_arabic': encryptionHelper.encryptData(
|
||||||
|
responseIdEgyptDriverLicense['name_arabic'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
|
'name_english': encryptionHelper.encryptData(
|
||||||
|
responseIdEgyptDriverLicense['name_english'].toString()) ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'name_english':
|
|
||||||
responseIdEgyptDriverLicense['name_english']?.toString() ??
|
|
||||||
'Not specified',
|
|
||||||
'issue_date': responseIdEgyptDriverLicense['issue_date']?.toString() ??
|
'issue_date': responseIdEgyptDriverLicense['issue_date']?.toString() ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'expiry_date': responseIdEgyptDriverLicense['expiry_date']?.toString() ??
|
'expiry_date': responseIdEgyptDriverLicense['expiry_date']?.toString() ??
|
||||||
@@ -520,27 +539,36 @@ class AI extends GetxController {
|
|||||||
? responseIdEgyptDriverLicense['license_categories'].join(', ')
|
? responseIdEgyptDriverLicense['license_categories'].join(', ')
|
||||||
: responseIdEgyptDriverLicense['license_categories']?.toString() ??
|
: responseIdEgyptDriverLicense['license_categories']?.toString() ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'address': responseIdEgyptFront['address']?.toString() ?? 'Not specified',
|
'address': encryptionHelper
|
||||||
'card_id': responseIdEgyptFront['card_id']?.toString() ?? 'Not specified',
|
.encryptData(responseIdEgyptFront['address'].toString()) ??
|
||||||
'occupation':
|
|
||||||
responseIdEgyptBack['occupation']?.toString() ?? 'Not specified',
|
|
||||||
'education':
|
|
||||||
responseIdEgyptBack['occupation']?.toString() ?? 'Not specified',
|
|
||||||
'licenseIssueDate':
|
|
||||||
responseIdEgyptDriverLicense['issue_date']?.toString() ??
|
|
||||||
'Not specified',
|
|
||||||
'religion':
|
|
||||||
responseIdEgyptBack['religion']?.toString() ?? 'Not specified',
|
|
||||||
'status': 'yet',
|
|
||||||
'birthdate': extractDOB(
|
|
||||||
responseIdEgyptDriverLicense['national_number'].toString()),
|
|
||||||
'maritalStatus':
|
|
||||||
responseIdEgyptBack['maritalStatus']?.toString() ?? 'Not specified',
|
|
||||||
'site': responseIdEgyptDriverLicense['address']?.toString() ??
|
|
||||||
'Not specified',
|
'Not specified',
|
||||||
'employmentType':
|
'card_id': encryptionHelper
|
||||||
responseIdEgyptDriverLicense['employmentType']?.toString() ??
|
.encryptData(responseIdEgyptFront['card_id'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
|
'occupation': encryptionHelper
|
||||||
|
.encryptData(responseIdEgyptBack['occupation'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
|
'education': encryptionHelper
|
||||||
|
.encryptData(responseIdEgyptBack['occupation'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
|
'licenseIssueDate':
|
||||||
|
responseIdEgyptDriverLicense['issue_date'].toString() ??
|
||||||
'Not specified',
|
'Not specified',
|
||||||
|
'religion': encryptionHelper
|
||||||
|
.encryptData(responseIdEgyptBack['religion'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
|
'status': 'yet',
|
||||||
|
'birthdate': encryptionHelper.encryptData(extractDOB(
|
||||||
|
responseIdEgyptDriverLicense['national_number'].toString())),
|
||||||
|
'maritalStatus': encryptionHelper
|
||||||
|
.encryptData(responseIdEgyptBack['maritalStatus'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
|
'site': encryptionHelper.encryptData(
|
||||||
|
responseIdEgyptDriverLicense['address'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
|
'employmentType': encryptionHelper.encryptData(
|
||||||
|
responseIdEgyptDriverLicense['employmentType'].toString()) ??
|
||||||
|
'Not specified',
|
||||||
};
|
};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -583,7 +611,8 @@ class AI extends GetxController {
|
|||||||
var res = await CRUD().post(link: AppLink.addCriminalDocuments, payload: {
|
var res = await CRUD().post(link: AppLink.addCriminalDocuments, payload: {
|
||||||
"driverId": box.read(BoxName.driverID),
|
"driverId": box.read(BoxName.driverID),
|
||||||
"IssueDate": responseCriminalRecordEgypt['IssueDate'],
|
"IssueDate": responseCriminalRecordEgypt['IssueDate'],
|
||||||
"InspectionResult": responseCriminalRecordEgypt['InspectionResult'],
|
"InspectionResult": encryptionHelper
|
||||||
|
.encryptData(responseCriminalRecordEgypt['InspectionResult']),
|
||||||
});
|
});
|
||||||
if (res != 'failure') {
|
if (res != 'failure') {
|
||||||
mySnackbarSuccess('uploaded sucssefuly'.tr);
|
mySnackbarSuccess('uploaded sucssefuly'.tr);
|
||||||
@@ -597,16 +626,21 @@ class AI extends GetxController {
|
|||||||
var res = await CRUD().post(link: AppLink.addRegisrationCar, payload: {
|
var res = await CRUD().post(link: AppLink.addRegisrationCar, payload: {
|
||||||
'driverID': box.read(BoxName.driverID),
|
'driverID': box.read(BoxName.driverID),
|
||||||
'vin': responseIdCardDriverEgyptBack['chassis'].toString(),
|
'vin': responseIdCardDriverEgyptBack['chassis'].toString(),
|
||||||
'car_plate': responseIdCardDriverEgyptFront['car_plate'].toString(),
|
'car_plate': encryptionHelper.encryptData(
|
||||||
'make': responseIdCardDriverEgyptBack['make'].toString(),
|
responseIdCardDriverEgyptFront['car_plate'].toString()),
|
||||||
'model': responseIdCardDriverEgyptBack['model'],
|
'make': encryptionHelper
|
||||||
|
.encryptData(responseIdCardDriverEgyptBack['make'].toString()),
|
||||||
|
'model': encryptionHelper
|
||||||
|
.encryptData(responseIdCardDriverEgyptBack['model']),
|
||||||
'year': responseIdCardDriverEgyptBack['year'].toString(),
|
'year': responseIdCardDriverEgyptBack['year'].toString(),
|
||||||
'expiration_date':
|
'expiration_date':
|
||||||
responseIdCardDriverEgyptFront['LicenseExpirationDate'].toString(),
|
responseIdCardDriverEgyptFront['LicenseExpirationDate'].toString(),
|
||||||
'color': responseIdCardDriverEgyptBack['color'],
|
'color': responseIdCardDriverEgyptBack['color'],
|
||||||
'owner': responseIdCardDriverEgyptFront['owner'],
|
'owner': encryptionHelper
|
||||||
|
.encryptData(responseIdCardDriverEgyptFront['owner']),
|
||||||
'color_hex': responseIdCardDriverEgyptBack['color_hex'].toString(),
|
'color_hex': responseIdCardDriverEgyptBack['color_hex'].toString(),
|
||||||
'address': responseIdCardDriverEgyptFront['address'].toString(),
|
'address': encryptionHelper
|
||||||
|
.encryptData(responseIdCardDriverEgyptFront['address'].toString()),
|
||||||
'displacement': responseIdCardDriverEgyptBack['engine'].toString(),
|
'displacement': responseIdCardDriverEgyptBack['engine'].toString(),
|
||||||
'fuel': responseIdCardDriverEgyptBack['fuel'].toString(),
|
'fuel': responseIdCardDriverEgyptBack['fuel'].toString(),
|
||||||
'registration_date':
|
'registration_date':
|
||||||
@@ -624,19 +658,23 @@ class AI extends GetxController {
|
|||||||
payload: {
|
payload: {
|
||||||
'driverID': box.read(BoxName.driverID),
|
'driverID': box.read(BoxName.driverID),
|
||||||
'vin': responseIdCardDriverEgyptBack['chassis'].toString(),
|
'vin': responseIdCardDriverEgyptBack['chassis'].toString(),
|
||||||
'car_plate':
|
'car_plate': encryptionHelper.encryptData(
|
||||||
responseIdCardDriverEgyptFront['car_plate'].toString(),
|
responseIdCardDriverEgyptFront['car_plate'].toString()),
|
||||||
'make': responseIdCardDriverEgyptBack['make'].toString(),
|
'make': encryptionHelper.encryptData(
|
||||||
'model': responseIdCardDriverEgyptBack['model'],
|
responseIdCardDriverEgyptBack['make'].toString()),
|
||||||
|
'model': encryptionHelper
|
||||||
|
.encryptData(responseIdCardDriverEgyptBack['model']),
|
||||||
'year': responseIdCardDriverEgyptBack['year'].toString(),
|
'year': responseIdCardDriverEgyptBack['year'].toString(),
|
||||||
'expiration_date':
|
'expiration_date':
|
||||||
responseIdCardDriverEgyptFront['LicenseExpirationDate']
|
responseIdCardDriverEgyptFront['LicenseExpirationDate']
|
||||||
.toString(),
|
.toString(),
|
||||||
'color': responseIdCardDriverEgyptBack['color'],
|
'color': responseIdCardDriverEgyptBack['color'],
|
||||||
'owner': responseIdCardDriverEgyptFront['owner'],
|
'owner': encryptionHelper
|
||||||
|
.encryptData(responseIdCardDriverEgyptFront['owner']),
|
||||||
'color_hex':
|
'color_hex':
|
||||||
responseIdCardDriverEgyptBack['color_hex'].toString(),
|
responseIdCardDriverEgyptBack['color_hex'].toString(),
|
||||||
'address': responseIdCardDriverEgyptFront['address'].toString(),
|
'address': encryptionHelper.encryptData(
|
||||||
|
responseIdCardDriverEgyptFront['address'].toString()),
|
||||||
'displacement':
|
'displacement':
|
||||||
responseIdCardDriverEgyptBack['engine'].toString(),
|
responseIdCardDriverEgyptBack['engine'].toString(),
|
||||||
'fuel': responseIdCardDriverEgyptBack['fuel'].toString(),
|
'fuel': responseIdCardDriverEgyptBack['fuel'].toString(),
|
||||||
@@ -648,19 +686,23 @@ class AI extends GetxController {
|
|||||||
payload: {
|
payload: {
|
||||||
'driverID': box.read(BoxName.driverID),
|
'driverID': box.read(BoxName.driverID),
|
||||||
'vin': responseIdCardDriverEgyptBack['chassis'].toString(),
|
'vin': responseIdCardDriverEgyptBack['chassis'].toString(),
|
||||||
'car_plate':
|
'car_plate': encryptionHelper.encryptData(
|
||||||
responseIdCardDriverEgyptFront['car_plate'].toString(),
|
responseIdCardDriverEgyptFront['car_plate'].toString()),
|
||||||
'make': responseIdCardDriverEgyptBack['make'].toString(),
|
'make': encryptionHelper.encryptData(
|
||||||
'model': responseIdCardDriverEgyptBack['model'],
|
responseIdCardDriverEgyptBack['make'].toString()),
|
||||||
|
'model': encryptionHelper
|
||||||
|
.encryptData(responseIdCardDriverEgyptBack['model']),
|
||||||
'year': responseIdCardDriverEgyptBack['year'].toString(),
|
'year': responseIdCardDriverEgyptBack['year'].toString(),
|
||||||
'expiration_date':
|
'expiration_date':
|
||||||
responseIdCardDriverEgyptFront['LicenseExpirationDate']
|
responseIdCardDriverEgyptFront['LicenseExpirationDate']
|
||||||
.toString(),
|
.toString(),
|
||||||
'color': responseIdCardDriverEgyptBack['color'],
|
'color': responseIdCardDriverEgyptBack['color'],
|
||||||
'owner': responseIdCardDriverEgyptFront['owner'],
|
'owner': encryptionHelper
|
||||||
|
.encryptData(responseIdCardDriverEgyptFront['owner']),
|
||||||
'color_hex':
|
'color_hex':
|
||||||
responseIdCardDriverEgyptBack['color_hex'].toString(),
|
responseIdCardDriverEgyptBack['color_hex'].toString(),
|
||||||
'address': responseIdCardDriverEgyptFront['address'].toString(),
|
'address': encryptionHelper.encryptData(
|
||||||
|
responseIdCardDriverEgyptFront['address'].toString()),
|
||||||
'displacement':
|
'displacement':
|
||||||
responseIdCardDriverEgyptBack['engine'].toString(),
|
responseIdCardDriverEgyptBack['engine'].toString(),
|
||||||
'fuel': responseIdCardDriverEgyptBack['fuel'].toString(),
|
'fuel': responseIdCardDriverEgyptBack['fuel'].toString(),
|
||||||
|
|||||||
@@ -43,25 +43,62 @@ class LocationController extends GetxController {
|
|||||||
isActive = Get.put(HomeCaptainController()).isActive;
|
isActive = Get.put(HomeCaptainController()).isActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// String getLocationArea(double latitude, double longitude) {
|
||||||
|
// if (latitude >= 29.918901 &&
|
||||||
|
// latitude <= 30.198857 &&
|
||||||
|
// longitude >= 31.215009 &&
|
||||||
|
// longitude <= 31.532186) {
|
||||||
|
// return 'Cairo';
|
||||||
|
// } else if (latitude >= 29.904975 &&
|
||||||
|
// latitude <= 30.143372 &&
|
||||||
|
// longitude >= 30.787030 &&
|
||||||
|
// longitude <= 31.215009) {
|
||||||
|
// return 'Giza';
|
||||||
|
// } else if (latitude >= 30.396286 &&
|
||||||
|
// latitude <= 31.654458 &&
|
||||||
|
// longitude >= 29.041139 &&
|
||||||
|
// longitude <= 32.626259) {
|
||||||
|
// return 'Alexandria';
|
||||||
|
// } else {
|
||||||
|
// return 'Cairo';
|
||||||
|
// }
|
||||||
|
// }
|
||||||
String getLocationArea(double latitude, double longitude) {
|
String getLocationArea(double latitude, double longitude) {
|
||||||
if (latitude >= 29.918901 &&
|
final locations = box.read(BoxName.locationName) ?? [];
|
||||||
latitude <= 30.198857 &&
|
for (final location in locations) {
|
||||||
longitude >= 31.215009 &&
|
final locationData = location as Map<String, dynamic>;
|
||||||
longitude <= 31.532186) {
|
|
||||||
return 'Cairo';
|
// Debugging: Print location data
|
||||||
} else if (latitude >= 29.904975 &&
|
print('Location Data: $locationData');
|
||||||
latitude <= 30.143372 &&
|
|
||||||
longitude >= 30.787030 &&
|
// Convert string values to double
|
||||||
longitude <= 31.215009) {
|
final minLatitude =
|
||||||
return 'Giza';
|
double.tryParse(locationData['min_latitude'].toString()) ?? 0.0;
|
||||||
} else if (latitude >= 30.396286 &&
|
final maxLatitude =
|
||||||
latitude <= 31.654458 &&
|
double.tryParse(locationData['max_latitude'].toString()) ?? 0.0;
|
||||||
longitude >= 29.041139 &&
|
final minLongitude =
|
||||||
longitude <= 32.626259) {
|
double.tryParse(locationData['min_longitude'].toString()) ?? 0.0;
|
||||||
return 'Alexandria';
|
final maxLongitude =
|
||||||
} else {
|
double.tryParse(locationData['max_longitude'].toString()) ?? 0.0;
|
||||||
return 'Cairo';
|
|
||||||
|
// Debugging: Print converted values
|
||||||
|
// print(
|
||||||
|
// 'Converted Values: minLatitude=$minLatitude, maxLatitude=$maxLatitude, minLongitude=$minLongitude, maxLongitude=$maxLongitude');
|
||||||
|
|
||||||
|
if (latitude >= minLatitude &&
|
||||||
|
latitude <= maxLatitude &&
|
||||||
|
longitude >= minLongitude &&
|
||||||
|
longitude <= maxLongitude) {
|
||||||
|
box.write(BoxName.serverChosen, locationData['server_link']);
|
||||||
|
// Log.print(
|
||||||
|
// 'locationData----server_link: ${locationData['server_link']}');
|
||||||
|
return locationData['name'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Default case
|
||||||
|
box.write(BoxName.serverChosen, AppLink.seferCairoServer);
|
||||||
|
return 'Cairo';
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> startLocationUpdates() async {
|
Future<void> startLocationUpdates() async {
|
||||||
@@ -83,50 +120,30 @@ class LocationController extends GetxController {
|
|||||||
if (myLocation == null) {
|
if (myLocation == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
print(
|
// print(
|
||||||
'Latitude: ${myLocation.latitude}, Longitude: ${myLocation.longitude}');
|
// 'Latitude: ${myLocation.latitude}, Longitude: ${myLocation.longitude}');
|
||||||
|
|
||||||
String area =
|
String area =
|
||||||
getLocationArea(myLocation.latitude, myLocation.longitude);
|
getLocationArea(myLocation.latitude, myLocation.longitude);
|
||||||
print('Determined Area: $area');
|
print('Determined Area: $area');
|
||||||
|
|
||||||
String endpoint;
|
|
||||||
|
|
||||||
switch (area) {
|
|
||||||
case 'Cairo':
|
|
||||||
box.write(BoxName.serverChosen, AppLink.seferCairoServer);
|
|
||||||
endpoint = AppLink.addCarsLocationCairoEndpoint;
|
|
||||||
break;
|
|
||||||
case 'Giza':
|
|
||||||
box.write(BoxName.serverChosen, AppLink.seferGizaServer);
|
|
||||||
endpoint = AppLink.addCarsLocationGizaEndpoint;
|
|
||||||
break;
|
|
||||||
case 'Alexandria':
|
|
||||||
box.write(
|
|
||||||
BoxName.serverChosen, AppLink.seferAlexandriaServer);
|
|
||||||
endpoint = AppLink.addCarsLocationAlexandriaEndpoint;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
endpoint = AppLink.addCarsLocationCairoEndpoint;
|
|
||||||
box.write(BoxName.serverChosen, AppLink.seferCairoServer);
|
|
||||||
}
|
|
||||||
|
|
||||||
Log.print('Final Endpoint: $endpoint');
|
|
||||||
|
|
||||||
if (box.read(BoxName.driverID) != null) {
|
if (box.read(BoxName.driverID) != null) {
|
||||||
await CRUD().post(link: endpoint, payload: {
|
await CRUD().post(
|
||||||
'driver_id': box.read(BoxName.driverID).toString(),
|
link: box.read(BoxName.serverChosen) +
|
||||||
'latitude': myLocation.latitude.toString(),
|
'/ride/location/add.php',
|
||||||
'longitude': myLocation.longitude.toString(),
|
payload: {
|
||||||
'heading': heading.toString(),
|
'driver_id': box.read(BoxName.driverID).toString(),
|
||||||
'speed': (speed * 3.6).toStringAsFixed(1),
|
'latitude': myLocation.latitude.toString(),
|
||||||
'distance': totalDistance == 0 && (speed * 3.6) < 5
|
'longitude': myLocation.longitude.toString(),
|
||||||
? '0.0'
|
'heading': heading.toString(),
|
||||||
: totalDistance < 7
|
'speed': (speed * 3.6).toStringAsFixed(1),
|
||||||
? totalDistance.toStringAsFixed(3)
|
'distance': totalDistance == 0 && (speed * 3.6) < 5
|
||||||
: totalDistance.toStringAsFixed(1),
|
? '0.0'
|
||||||
'status': box.read(BoxName.statusDriverLocation).toString(),
|
: totalDistance < 7
|
||||||
});
|
? totalDistance.toStringAsFixed(3)
|
||||||
|
: totalDistance.toStringAsFixed(1),
|
||||||
|
'status': box.read(BoxName.statusDriverLocation) ?? 'off',
|
||||||
|
});
|
||||||
|
|
||||||
Get.find<HomeCaptainController>()
|
Get.find<HomeCaptainController>()
|
||||||
.mapHomeCaptainController
|
.mapHomeCaptainController
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import 'package:sefer_driver/views/widgets/elevated_btn.dart';
|
|||||||
import 'package:sefer_driver/views/widgets/my_textField.dart';
|
import 'package:sefer_driver/views/widgets/my_textField.dart';
|
||||||
|
|
||||||
import '../../constant/style.dart';
|
import '../../constant/style.dart';
|
||||||
|
import 'encrypt_decrypt.dart';
|
||||||
|
|
||||||
class LogOutController extends GetxController {
|
class LogOutController extends GetxController {
|
||||||
TextEditingController checkTxtController = TextEditingController();
|
TextEditingController checkTxtController = TextEditingController();
|
||||||
@@ -30,7 +31,8 @@ class LogOutController extends GetxController {
|
|||||||
checkBeforeDelete() async {
|
checkBeforeDelete() async {
|
||||||
var res = await CRUD().post(
|
var res = await CRUD().post(
|
||||||
link: AppLink.deletecaptainAccounr,
|
link: AppLink.deletecaptainAccounr,
|
||||||
payload: {'id': box.read(BoxName.driverID)}).then((value) => exit(0));
|
payload: {'id': box.read(BoxName.driverID)});
|
||||||
|
return res['message'][0]['id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
deletecaptainAccount() {
|
deletecaptainAccount() {
|
||||||
@@ -72,9 +74,15 @@ class LogOutController extends GetxController {
|
|||||||
),
|
),
|
||||||
confirm: MyElevatedButton(
|
confirm: MyElevatedButton(
|
||||||
title: 'Delete'.tr,
|
title: 'Delete'.tr,
|
||||||
onPressed: () {
|
onPressed: () async {
|
||||||
if (checkTxtController.text == box.read(BoxName.nameDriver)) {
|
if (checkTxtController.text ==
|
||||||
deletecaptainAccount();
|
encryptionHelper.decryptData(box.read(BoxName.nameDriver))) {
|
||||||
|
// deletecaptainAccount();
|
||||||
|
|
||||||
|
var id = await checkBeforeDelete();
|
||||||
|
deleteMyAccountDriver(id);
|
||||||
|
} else {
|
||||||
|
mySnackeBarError('Your Name is Wrong'.tr);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ import 'dart:convert';
|
|||||||
|
|
||||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||||
|
|
||||||
|
import '../../constant/box_name.dart';
|
||||||
import '../../constant/links.dart';
|
import '../../constant/links.dart';
|
||||||
import '../../main.dart';
|
import '../../main.dart';
|
||||||
|
import '../../print.dart';
|
||||||
import 'crud.dart';
|
import 'crud.dart';
|
||||||
|
|
||||||
class SecureStorage {
|
class SecureStorage {
|
||||||
@@ -28,35 +30,24 @@ const List<String> keysToFetch = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
class AppInitializer {
|
class AppInitializer {
|
||||||
// final FlutterSecureStorage _storage = const FlutterSecureStorage();
|
List<Map<String, dynamic>> links = [];
|
||||||
|
|
||||||
Future<void> initializeApp() async {
|
Future<void> initializeApp() async {
|
||||||
// Check if app is running for the first time
|
await getKey();
|
||||||
|
|
||||||
// Loop through the keys and fetch their values
|
|
||||||
for (String key in keysToFetch) {
|
|
||||||
try {
|
|
||||||
String? value = await getKey(key); // Fetch from server
|
|
||||||
if (value != null) {
|
|
||||||
await box.write(key, value); // Save securely
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
print('Error fetching or saving key $key: $e');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<String?> getKey(String key) async {
|
Future<void> getKey() async {
|
||||||
var res =
|
try {
|
||||||
await CRUD().get(link: AppLink.getapiKey, payload: {"keyName": key});
|
var res =
|
||||||
if (res != 'failure') {
|
await CRUD().get(link: AppLink.getLocationAreaLinks, payload: {});
|
||||||
try {
|
Log.print('res: ${res}');
|
||||||
var data = jsonDecode(res)['message'];
|
if (res != 'failure') {
|
||||||
return data[key]?.toString();
|
links = List<Map<String, dynamic>>.from(jsonDecode(res)['message']);
|
||||||
} catch (e) {
|
await box.remove(BoxName.locationName);
|
||||||
print('Error parsing response for $key: $e');
|
await box.write(BoxName.locationName, links);
|
||||||
}
|
}
|
||||||
|
} catch (e) {
|
||||||
|
print('Error fetching or decoding location data: $e');
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ import 'package:sefer_driver/views/widgets/elevated_btn.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
|
|
||||||
import '../../print.dart';
|
|
||||||
import '../auth/captin/login_captin_controller.dart';
|
import '../auth/captin/login_captin_controller.dart';
|
||||||
|
import 'encrypt_decrypt.dart';
|
||||||
|
|
||||||
class SmsEgyptController extends GetxController {
|
class SmsEgyptController extends GetxController {
|
||||||
var headers = {'Content-Type': 'application/json'};
|
var headers = {'Content-Type': 'application/json'};
|
||||||
@@ -46,11 +46,13 @@ class SmsEgyptController extends GetxController {
|
|||||||
|
|
||||||
if (jsonDecode(res.body)['message'].toString() != "Success") {
|
if (jsonDecode(res.body)['message'].toString() != "Success") {
|
||||||
await CRUD().post(link: AppLink.updatePhoneInvalidSMS, payload: {
|
await CRUD().post(link: AppLink.updatePhoneInvalidSMS, payload: {
|
||||||
"phone_number":
|
"phone_number": encryptionHelper.encryptData(
|
||||||
'+2${Get.find<RegisterCaptainController>().phoneController.text}'
|
'+2${Get.find<RegisterCaptainController>().phoneController.text}')
|
||||||
});
|
});
|
||||||
box.write(BoxName.phoneDriver,
|
box.write(
|
||||||
'+2${Get.find<RegisterCaptainController>().phoneController.text}');
|
BoxName.phoneDriver,
|
||||||
|
encryptionHelper.encryptData(
|
||||||
|
'+2${Get.find<RegisterCaptainController>().phoneController.text}'));
|
||||||
box.write(BoxName.phoneVerified, '1');
|
box.write(BoxName.phoneVerified, '1');
|
||||||
|
|
||||||
await Get.put(LoginDriverController()).loginWithGoogleCredential(
|
await Get.put(LoginDriverController()).loginWithGoogleCredential(
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import '../../constant/box_name.dart';
|
|||||||
import '../../constant/colors.dart';
|
import '../../constant/colors.dart';
|
||||||
import '../../main.dart';
|
import '../../main.dart';
|
||||||
import '../../print.dart';
|
import '../../print.dart';
|
||||||
|
import 'encrypt_decrypt.dart';
|
||||||
|
|
||||||
class ImageController extends GetxController {
|
class ImageController extends GetxController {
|
||||||
File? myImage;
|
File? myImage;
|
||||||
@@ -419,7 +420,8 @@ class ImageController extends GetxController {
|
|||||||
compressedImage,
|
compressedImage,
|
||||||
{
|
{
|
||||||
'driverID':
|
'driverID':
|
||||||
box.read(BoxName.driverID) ?? box.read(BoxName.passengerID),
|
encryptionHelper.decryptData(box.read(BoxName.driverID)) ??
|
||||||
|
encryptionHelper.decryptData(box.read(BoxName.passengerID)),
|
||||||
'imageType': imageType
|
'imageType': imageType
|
||||||
},
|
},
|
||||||
link,
|
link,
|
||||||
@@ -458,7 +460,8 @@ class ImageController extends GetxController {
|
|||||||
'image',
|
'image',
|
||||||
stream,
|
stream,
|
||||||
length,
|
length,
|
||||||
filename: '${box.read(BoxName.driverID)}.jpg',
|
filename:
|
||||||
|
'${encryptionHelper.decryptData(box.read(BoxName.driverID))}.jpg',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
data.forEach((key, value) {
|
data.forEach((key, value) {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import '../../../../constant/style.dart';
|
|||||||
import '../../../../main.dart';
|
import '../../../../main.dart';
|
||||||
import '../../../../views/widgets/elevated_btn.dart';
|
import '../../../../views/widgets/elevated_btn.dart';
|
||||||
import '../../../functions/crud.dart';
|
import '../../../functions/crud.dart';
|
||||||
|
import '../../../functions/encrypt_decrypt.dart';
|
||||||
|
|
||||||
class HelpController extends GetxController {
|
class HelpController extends GetxController {
|
||||||
bool isLoading = false;
|
bool isLoading = false;
|
||||||
@@ -30,7 +31,7 @@ class HelpController extends GetxController {
|
|||||||
update();
|
update();
|
||||||
var res = await CRUD().post(link: AppLink.addhelpCenter, payload: {
|
var res = await CRUD().post(link: AppLink.addhelpCenter, payload: {
|
||||||
'driverID': box.read(BoxName.driverID).toString(),
|
'driverID': box.read(BoxName.driverID).toString(),
|
||||||
'helpQuestion': helpQuestionController.text
|
'helpQuestion': encryptionHelper.encryptData(helpQuestionController.text)
|
||||||
});
|
});
|
||||||
var d = jsonDecode(res);
|
var d = jsonDecode(res);
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import '../../../views/Rate/rate_passenger.dart';
|
|||||||
import '../../../views/home/Captin/home_captain/home_captin.dart';
|
import '../../../views/home/Captin/home_captain/home_captin.dart';
|
||||||
import '../../firebase/firbase_messge.dart';
|
import '../../firebase/firbase_messge.dart';
|
||||||
import '../../functions/crud.dart';
|
import '../../functions/crud.dart';
|
||||||
|
import '../../functions/encrypt_decrypt.dart';
|
||||||
import '../../functions/location_controller.dart';
|
import '../../functions/location_controller.dart';
|
||||||
|
|
||||||
class MapDriverController extends GetxController {
|
class MapDriverController extends GetxController {
|
||||||
@@ -182,7 +183,9 @@ class MapDriverController extends GetxController {
|
|||||||
await CRUD().post(
|
await CRUD().post(
|
||||||
link: "${AppLink.seferCairoServer}/ride/rides/update.php",
|
link: "${AppLink.seferCairoServer}/ride/rides/update.php",
|
||||||
payload: {
|
payload: {
|
||||||
"id": rideId.toString(), // Convert to String
|
"id": encryptionHelper
|
||||||
|
.encryptData(rideId)
|
||||||
|
.toString(), // Convert to String
|
||||||
"status": 'CancelFromDriverAfterApply'
|
"status": 'CancelFromDriverAfterApply'
|
||||||
});
|
});
|
||||||
CRUD().postFromDialogue(
|
CRUD().postFromDialogue(
|
||||||
@@ -190,22 +193,26 @@ class MapDriverController extends GetxController {
|
|||||||
payload: {
|
payload: {
|
||||||
'driver_id': box.read(BoxName.driverID).toString(),
|
'driver_id': box.read(BoxName.driverID).toString(),
|
||||||
// box.read(BoxName.driverID).toString(),
|
// box.read(BoxName.driverID).toString(),
|
||||||
'order_id': rideId.toString(),
|
'order_id': encryptionHelper.encryptData(rideId).toString(),
|
||||||
'status': 'CancelFromDriverAfterApply'
|
'status': 'CancelFromDriverAfterApply'
|
||||||
});
|
});
|
||||||
await CRUD().post(
|
await CRUD().post(
|
||||||
link:
|
link:
|
||||||
"${AppLink.seferCairoServer}/ride/cancelRide/addCancelTripFromDriverAfterApplied.php",
|
"${AppLink.seferCairoServer}/ride/cancelRide/addCancelTripFromDriverAfterApplied.php",
|
||||||
payload: {
|
payload: {
|
||||||
"order_id": rideId.toString(),
|
"order_id": encryptionHelper.encryptData(rideId).toString(),
|
||||||
"driver_id": box.read(BoxName.driverID).toString(),
|
"driver_id": box.read(BoxName.driverID).toString(),
|
||||||
"status": 'reject After Applied',
|
"status": 'reject After Applied',
|
||||||
"notes": cancelTripCotroller.text.toString()
|
"notes": encryptionHelper
|
||||||
|
.encryptData(cancelTripCotroller.text)
|
||||||
|
.toString()
|
||||||
});
|
});
|
||||||
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
||||||
CRUD()
|
CRUD()
|
||||||
.post(link: "${AppLink.endPoint}/ride/rides/update.php", payload: {
|
.post(link: "${AppLink.endPoint}/ride/rides/update.php", payload: {
|
||||||
"id": rideId.toString(), // Convert to String
|
"id": encryptionHelper
|
||||||
|
.encryptData(rideId)
|
||||||
|
.toString(), // Convert to String
|
||||||
"status": 'CancelFromDriverAfterApply'
|
"status": 'CancelFromDriverAfterApply'
|
||||||
});
|
});
|
||||||
CRUD().postFromDialogue(
|
CRUD().postFromDialogue(
|
||||||
@@ -213,22 +220,24 @@ class MapDriverController extends GetxController {
|
|||||||
payload: {
|
payload: {
|
||||||
'driver_id': box.read(BoxName.driverID).toString(),
|
'driver_id': box.read(BoxName.driverID).toString(),
|
||||||
// box.read(BoxName.driverID).toString(),
|
// box.read(BoxName.driverID).toString(),
|
||||||
'order_id': rideId.toString(),
|
'order_id': encryptionHelper.encryptData(rideId).toString(),
|
||||||
'status': 'CancelFromDriverAfterApply'
|
'status': 'CancelFromDriverAfterApply'
|
||||||
});
|
});
|
||||||
CRUD().post(
|
CRUD().post(
|
||||||
link:
|
link:
|
||||||
"${AppLink.endPoint}/ride/cancelRide/addCancelTripFromDriverAfterApplied.php",
|
"${AppLink.endPoint}/ride/cancelRide/addCancelTripFromDriverAfterApplied.php",
|
||||||
payload: {
|
payload: {
|
||||||
"order_id": rideId.toString(),
|
"order_id": encryptionHelper.encryptData(rideId).toString(),
|
||||||
"driver_id": box.read(BoxName.driverID).toString(),
|
"driver_id": box.read(BoxName.driverID).toString(),
|
||||||
"status": 'reject After Applied',
|
"status": 'reject After Applied',
|
||||||
"notes": cancelTripCotroller.text.toString()
|
"notes": encryptionHelper
|
||||||
|
.encryptData(cancelTripCotroller.text)
|
||||||
|
.toString()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
sql.insertData({
|
sql.insertData({
|
||||||
'order_id': rideId,
|
'order_id': encryptionHelper.encryptData(rideId),
|
||||||
'created_at': DateTime.now().toString(),
|
'created_at': DateTime.now().toString(),
|
||||||
'driver_id': box.read(BoxName.driverID).toString(),
|
'driver_id': box.read(BoxName.driverID).toString(),
|
||||||
}, TableName.driverOrdersRefuse);
|
}, TableName.driverOrdersRefuse);
|
||||||
@@ -299,13 +308,13 @@ class MapDriverController extends GetxController {
|
|||||||
await CRUD().post(
|
await CRUD().post(
|
||||||
link: "${AppLink.seferCairoServer}/ride/rides/update.php",
|
link: "${AppLink.seferCairoServer}/ride/rides/update.php",
|
||||||
payload: {
|
payload: {
|
||||||
'id': rideId,
|
'id': encryptionHelper.encryptData(rideId),
|
||||||
'driverGoToPassengerTime': DateTime.now().toString(),
|
'driverGoToPassengerTime': DateTime.now().toString(),
|
||||||
'status': 'Applied'
|
'status': 'Applied'
|
||||||
});
|
});
|
||||||
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
||||||
CRUD().post(link: "${AppLink.endPoint}/ride/rides/update.php", payload: {
|
CRUD().post(link: "${AppLink.endPoint}/ride/rides/update.php", payload: {
|
||||||
'id': rideId,
|
'id': encryptionHelper.encryptData(rideId),
|
||||||
'driverGoToPassengerTime': DateTime.now().toString(),
|
'driverGoToPassengerTime': DateTime.now().toString(),
|
||||||
'status': 'Applied'
|
'status': 'Applied'
|
||||||
});
|
});
|
||||||
@@ -313,8 +322,8 @@ class MapDriverController extends GetxController {
|
|||||||
// Get.find<HomeCaptainController>().changeToAppliedRide('Applied');
|
// Get.find<HomeCaptainController>().changeToAppliedRide('Applied');
|
||||||
|
|
||||||
FirebaseMessagesController().sendNotificationToDriverMAP(
|
FirebaseMessagesController().sendNotificationToDriverMAP(
|
||||||
'DriverIsGoingToPassenger',
|
'Driver Is Going To Passenger'.tr,
|
||||||
box.read(BoxName.name).toString(),
|
box.read(BoxName.nameDriver).toString(), //todo name driver
|
||||||
tokenPassenger,
|
tokenPassenger,
|
||||||
[],
|
[],
|
||||||
'start.wav');
|
'start.wav');
|
||||||
@@ -392,18 +401,18 @@ class MapDriverController extends GetxController {
|
|||||||
// Get.find<HomeCaptainController>().update();
|
// Get.find<HomeCaptainController>().update();
|
||||||
update();
|
update();
|
||||||
await CRUD().post(link: AppLink.updateRides, payload: {
|
await CRUD().post(link: AppLink.updateRides, payload: {
|
||||||
'id': rideId,
|
'id': encryptionHelper.encryptData(rideId),
|
||||||
'rideTimeStart': DateTime.now().toString(),
|
'rideTimeStart': DateTime.now().toString(),
|
||||||
'status': 'Begin',
|
'status': 'Begin',
|
||||||
});
|
});
|
||||||
CRUD().post(link: AppLink.addDriverOrder, payload: {
|
CRUD().post(link: AppLink.addDriverOrder, payload: {
|
||||||
'driver_id': box.read(BoxName.driverID).toString(),
|
'driver_id': box.read(BoxName.driverID).toString(),
|
||||||
'order_id': rideId.toString(),
|
'order_id': encryptionHelper.encryptData(rideId).toString(),
|
||||||
'status': 'Begin'
|
'status': 'Begin'
|
||||||
});
|
});
|
||||||
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
||||||
CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: {
|
CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: {
|
||||||
'id': rideId,
|
'id': encryptionHelper.encryptData(rideId),
|
||||||
'rideTimeStart': DateTime.now().toString(),
|
'rideTimeStart': DateTime.now().toString(),
|
||||||
'status': 'Begin',
|
'status': 'Begin',
|
||||||
});
|
});
|
||||||
@@ -411,13 +420,13 @@ class MapDriverController extends GetxController {
|
|||||||
link: '${AppLink.endPoint}/rides/driver_order/add.php',
|
link: '${AppLink.endPoint}/rides/driver_order/add.php',
|
||||||
payload: {
|
payload: {
|
||||||
'driver_id': box.read(BoxName.driverID).toString(),
|
'driver_id': box.read(BoxName.driverID).toString(),
|
||||||
'order_id': rideId.toString(),
|
'order_id': encryptionHelper.encryptData(rideId).toString(),
|
||||||
'status': 'Begin'
|
'status': 'Begin'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
FirebaseMessagesController().sendNotificationToDriverMAP(
|
FirebaseMessagesController().sendNotificationToDriverMAP(
|
||||||
'Trip is Begin'.tr,
|
'Trip is Begin'.tr,
|
||||||
box.read(BoxName.name).toString(),
|
box.read(BoxName.nameDriver).toString(),
|
||||||
tokenPassenger,
|
tokenPassenger,
|
||||||
[],
|
[],
|
||||||
'start.wav');
|
'start.wav');
|
||||||
@@ -482,7 +491,8 @@ class MapDriverController extends GetxController {
|
|||||||
calculateDistanceBetweenDriverAndPassengerLocation() async {
|
calculateDistanceBetweenDriverAndPassengerLocation() async {
|
||||||
Get.put(LocationController());
|
Get.put(LocationController());
|
||||||
var res = await CRUD().get(
|
var res = await CRUD().get(
|
||||||
link: AppLink.getLatestLocationPassenger, payload: {'rideId': rideId});
|
link: AppLink.getLatestLocationPassenger,
|
||||||
|
payload: {'rideId': encryptionHelper.encryptData(rideId)});
|
||||||
if (res != 'failure') {
|
if (res != 'failure') {
|
||||||
var passengerLatestLocationString = jsonDecode(res)['message'];
|
var passengerLatestLocationString = jsonDecode(res)['message'];
|
||||||
|
|
||||||
@@ -519,35 +529,35 @@ class MapDriverController extends GetxController {
|
|||||||
: (distanceBetweenDriverAndPassengerWhenConfirm * .06) +
|
: (distanceBetweenDriverAndPassengerWhenConfirm * .06) +
|
||||||
(5 * .06); //for Eygpt other like jordan .06 per minute
|
(5 * .06); //for Eygpt other like jordan .06 per minute
|
||||||
await CRUD().post(link: AppLink.updateRides, payload: {
|
await CRUD().post(link: AppLink.updateRides, payload: {
|
||||||
'id': rideId,
|
'id': encryptionHelper.encryptData(rideId),
|
||||||
'rideTimeStart': DateTime.now().toString(),
|
'rideTimeStart': DateTime.now().toString(),
|
||||||
'status': 'CancelAfterWait',
|
'status': 'CancelAfterWait',
|
||||||
});
|
});
|
||||||
CRUD().post(link: AppLink.addDriverOrder, payload: {
|
CRUD().post(link: AppLink.addDriverOrder, payload: {
|
||||||
'driver_id': box.read(BoxName.driverID).toString(),
|
'driver_id': box.read(BoxName.driverID).toString(),
|
||||||
'order_id': rideId.toString(),
|
'order_id': encryptionHelper.encryptData(rideId).toString(),
|
||||||
'status': 'CancelAfterWait'
|
'status': 'CancelAfterWait'
|
||||||
});
|
});
|
||||||
|
|
||||||
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
||||||
CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: {
|
CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: {
|
||||||
'id': rideId,
|
'id': encryptionHelper.encryptData(rideId),
|
||||||
'rideTimeStart': DateTime.now().toString(),
|
'rideTimeStart': DateTime.now().toString(),
|
||||||
'status': 'CancelAfterWait',
|
'status': 'CancelAfterWait',
|
||||||
});
|
});
|
||||||
CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: {
|
CRUD().post(link: "${AppLink.endPoint}/rides/update.php", payload: {
|
||||||
'driver_id': box.read(BoxName.driverID).toString(),
|
'driver_id': box.read(BoxName.driverID).toString(),
|
||||||
'order_id': rideId.toString(),
|
'order_id': encryptionHelper.encryptData(rideId).toString(),
|
||||||
'status': 'CancelAfterWait'
|
'status': 'CancelAfterWait'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
var paymentTokenWait =
|
var paymentTokenWait =
|
||||||
await generateTokenDriver(costOfWaiting5Minute.toString());
|
await generateTokenDriver(costOfWaiting5Minute.toString());
|
||||||
var res = await CRUD().post(link: AppLink.addDrivePayment, payload: {
|
var res = await CRUD().post(link: AppLink.addDrivePayment, payload: {
|
||||||
'rideId': rideId,
|
'rideId': encryptionHelper.encryptData(rideId),
|
||||||
'amount': costOfWaiting5Minute.toString(),
|
'amount': (costOfWaiting5Minute.toString()),
|
||||||
'payment_method': 'wait-cancel',
|
'payment_method': 'wait-cancel',
|
||||||
'passengerID': passengerId,
|
'passengerID': encryptionHelper.encryptData(passengerId),
|
||||||
'token': paymentTokenWait,
|
'token': paymentTokenWait,
|
||||||
'driverID': box.read(BoxName.driverID).toString(),
|
'driverID': box.read(BoxName.driverID).toString(),
|
||||||
});
|
});
|
||||||
@@ -555,7 +565,7 @@ class MapDriverController extends GetxController {
|
|||||||
await generateTokenDriver(costOfWaiting5Minute.toString());
|
await generateTokenDriver(costOfWaiting5Minute.toString());
|
||||||
var res1 =
|
var res1 =
|
||||||
await CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
|
await CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
|
||||||
'paymentID': 'rideId$rideId',
|
'paymentID': 'rideId${encryptionHelper.encryptData(rideId)}',
|
||||||
'amount': (costOfWaiting5Minute).toStringAsFixed(0),
|
'amount': (costOfWaiting5Minute).toStringAsFixed(0),
|
||||||
'paymentMethod': 'wait',
|
'paymentMethod': 'wait',
|
||||||
'token': paymentTokenWait1,
|
'token': paymentTokenWait1,
|
||||||
@@ -571,7 +581,7 @@ class MapDriverController extends GetxController {
|
|||||||
var paymentTokenWaitPassenger1 =
|
var paymentTokenWaitPassenger1 =
|
||||||
await generateTokenPassenger((costOfWaiting5Minute * -1).toString());
|
await generateTokenPassenger((costOfWaiting5Minute * -1).toString());
|
||||||
await CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
await CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||||
'passenger_id': passengerId,
|
'passenger_id': encryptionHelper.encryptData(passengerId),
|
||||||
'balance': (costOfWaiting5Minute * -1).toString(),
|
'balance': (costOfWaiting5Minute * -1).toString(),
|
||||||
'token': paymentTokenWaitPassenger1,
|
'token': paymentTokenWaitPassenger1,
|
||||||
});
|
});
|
||||||
@@ -657,13 +667,13 @@ class MapDriverController extends GetxController {
|
|||||||
// Prepare data for API calls
|
// Prepare data for API calls
|
||||||
final nowString = DateTime.now().toString();
|
final nowString = DateTime.now().toString();
|
||||||
final basePayload = {
|
final basePayload = {
|
||||||
'id': rideId,
|
'id': encryptionHelper.encryptData(rideId),
|
||||||
'rideTimeFinish': nowString,
|
'rideTimeFinish': nowString,
|
||||||
'status': 'Finished',
|
'status': 'Finished',
|
||||||
'price': totalCost,
|
'price': totalCost,
|
||||||
};
|
};
|
||||||
final driverOrderPayload = {
|
final driverOrderPayload = {
|
||||||
'order_id': rideId.toString(),
|
'order_id': encryptionHelper.encryptData(rideId.toString()),
|
||||||
'status': 'Finished'
|
'status': 'Finished'
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -696,7 +706,7 @@ class MapDriverController extends GetxController {
|
|||||||
paymentToken = await generateTokenPassenger(
|
paymentToken = await generateTokenPassenger(
|
||||||
((-1) * double.parse(paymentAmount)).toString());
|
((-1) * double.parse(paymentAmount)).toString());
|
||||||
futures.add(CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
futures.add(CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||||
'passenger_id': passengerId,
|
'passenger_id': encryptionHelper.encryptData(passengerId),
|
||||||
'balance': ((-1) * double.parse(paymentAmount)).toString(),
|
'balance': ((-1) * double.parse(paymentAmount)).toString(),
|
||||||
'token': paymentToken,
|
'token': paymentToken,
|
||||||
}));
|
}));
|
||||||
@@ -704,11 +714,11 @@ class MapDriverController extends GetxController {
|
|||||||
|
|
||||||
paymentToken = await generateTokenDriver(paymentAmount.toString());
|
paymentToken = await generateTokenDriver(paymentAmount.toString());
|
||||||
futures.add(CRUD().post(link: AppLink.addDrivePayment, payload: {
|
futures.add(CRUD().post(link: AppLink.addDrivePayment, payload: {
|
||||||
'rideId': rideId,
|
'rideId': encryptionHelper.encryptData(rideId),
|
||||||
'amount': paymentAmount,
|
'amount': paymentAmount,
|
||||||
'payment_method':
|
'payment_method':
|
||||||
walletChecked == 'true' ? "${paymentMethod}Ride" : paymentMethod,
|
walletChecked == 'true' ? "${paymentMethod}Ride" : paymentMethod,
|
||||||
'passengerID': passengerId,
|
'passengerID': encryptionHelper.encryptData(passengerId),
|
||||||
'token': paymentToken,
|
'token': paymentToken,
|
||||||
'driverID': box.read(BoxName.driverID).toString(),
|
'driverID': box.read(BoxName.driverID).toString(),
|
||||||
}));
|
}));
|
||||||
@@ -717,7 +727,7 @@ class MapDriverController extends GetxController {
|
|||||||
final paymentToken1 = await generateTokenPassenger(
|
final paymentToken1 = await generateTokenPassenger(
|
||||||
((-1) * double.parse(passengerWalletBurc)).toString());
|
((-1) * double.parse(passengerWalletBurc)).toString());
|
||||||
futures.add(CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
futures.add(CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||||
'passenger_id': passengerId,
|
'passenger_id': encryptionHelper.encryptData(passengerId),
|
||||||
'token': paymentToken1,
|
'token': paymentToken1,
|
||||||
'balance': ((-1) * double.parse(passengerWalletBurc)).toString()
|
'balance': ((-1) * double.parse(passengerWalletBurc)).toString()
|
||||||
}));
|
}));
|
||||||
@@ -727,7 +737,7 @@ class MapDriverController extends GetxController {
|
|||||||
final paymentToken2 =
|
final paymentToken2 =
|
||||||
await generateTokenDriver((pointsSubtraction).toStringAsFixed(0));
|
await generateTokenDriver((pointsSubtraction).toStringAsFixed(0));
|
||||||
futures.add(CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
|
futures.add(CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
|
||||||
'paymentID': 'rideId$rideId',
|
'paymentID': 'rideId${encryptionHelper.encryptData(rideId)}',
|
||||||
'amount': (pointsSubtraction).toStringAsFixed(0),
|
'amount': (pointsSubtraction).toStringAsFixed(0),
|
||||||
'paymentMethod': paymentMethod,
|
'paymentMethod': paymentMethod,
|
||||||
'token': paymentToken2,
|
'token': paymentToken2,
|
||||||
@@ -884,7 +894,7 @@ class MapDriverController extends GetxController {
|
|||||||
var res = await CRUD().get(
|
var res = await CRUD().get(
|
||||||
link: "${AppLink.endPoint}/ride/driver_order/getOrderCancelStatus.php",
|
link: "${AppLink.endPoint}/ride/driver_order/getOrderCancelStatus.php",
|
||||||
payload: {
|
payload: {
|
||||||
'order_id': rideId,
|
'order_id': encryptionHelper.encryptData(rideId),
|
||||||
}); //.then((value) {
|
}); //.then((value) {
|
||||||
var response = jsonDecode(res);
|
var response = jsonDecode(res);
|
||||||
canelString = response['data']['status'];
|
canelString = response['data']['status'];
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import '../../../constant/box_name.dart';
|
|||||||
import '../../../print.dart';
|
import '../../../print.dart';
|
||||||
import '../../functions/audio_controller.dart';
|
import '../../functions/audio_controller.dart';
|
||||||
import '../../functions/crud.dart';
|
import '../../functions/crud.dart';
|
||||||
|
import '../../functions/encrypt_decrypt.dart';
|
||||||
import '../../functions/location_controller.dart';
|
import '../../functions/location_controller.dart';
|
||||||
import 'home_captain_controller.dart';
|
import 'home_captain_controller.dart';
|
||||||
|
|
||||||
@@ -210,17 +211,17 @@ class OrderRequestController extends GetxController {
|
|||||||
) async {
|
) async {
|
||||||
await CRUD().postFromDialogue(link: AppLink.addDriverOrder, payload: {
|
await CRUD().postFromDialogue(link: AppLink.addDriverOrder, payload: {
|
||||||
'driver_id': box.read(BoxName.driverID),
|
'driver_id': box.read(BoxName.driverID),
|
||||||
'order_id': orderID,
|
'order_id': (orderID),
|
||||||
'status': 'Refused'
|
'status': 'Refused'
|
||||||
});
|
});
|
||||||
await CRUD().post(link: AppLink.updateRides, payload: {
|
await CRUD().post(link: AppLink.updateRides, payload: {
|
||||||
'id': orderID,
|
'id': (orderID),
|
||||||
'status': 'Refused',
|
'status': 'Refused',
|
||||||
'driver_id': box.read(BoxName.driverID),
|
'driver_id': box.read(BoxName.driverID),
|
||||||
});
|
});
|
||||||
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
||||||
CRUD().post(link: '${AppLink.endPoint}/rides/update.php', payload: {
|
CRUD().post(link: '${AppLink.endPoint}/rides/update.php', payload: {
|
||||||
'id': orderID,
|
'id': (orderID),
|
||||||
'status': 'Refused',
|
'status': 'Refused',
|
||||||
'driver_id': box.read(BoxName.driverID),
|
'driver_id': box.read(BoxName.driverID),
|
||||||
});
|
});
|
||||||
@@ -244,13 +245,13 @@ class OrderRequestController extends GetxController {
|
|||||||
String duration,
|
String duration,
|
||||||
) async {
|
) async {
|
||||||
await CRUD().post(link: AppLink.addWaitingRide, payload: {
|
await CRUD().post(link: AppLink.addWaitingRide, payload: {
|
||||||
'id': orderID,
|
'id': (orderID),
|
||||||
'start_location': startLocation,
|
'start_location': startLocation,
|
||||||
'end_location': endLocation,
|
'end_location': endLocation,
|
||||||
'date': date,
|
'date': date,
|
||||||
'time': time,
|
'time': time,
|
||||||
'price': price,
|
'price': price,
|
||||||
'passenger_id': passengerId,
|
'passenger_id': (passengerId),
|
||||||
'status': status,
|
'status': status,
|
||||||
'carType': carType,
|
'carType': carType,
|
||||||
'passengerRate': passengerRate,
|
'passengerRate': passengerRate,
|
||||||
@@ -262,13 +263,13 @@ class OrderRequestController extends GetxController {
|
|||||||
CRUD().post(
|
CRUD().post(
|
||||||
link: '${AppLink.endPoint}/notificationCaptain/addWaitingRide.php',
|
link: '${AppLink.endPoint}/notificationCaptain/addWaitingRide.php',
|
||||||
payload: {
|
payload: {
|
||||||
'id': orderID,
|
'id': (orderID),
|
||||||
'start_location': startLocation,
|
'start_location': startLocation,
|
||||||
'end_location': endLocation,
|
'end_location': endLocation,
|
||||||
'date': date,
|
'date': date,
|
||||||
'time': time,
|
'time': time,
|
||||||
'price': price,
|
'price': price,
|
||||||
'passenger_id': passengerId,
|
'passenger_id': (passengerId),
|
||||||
'status': status,
|
'status': status,
|
||||||
'carType': carType,
|
'carType': carType,
|
||||||
'passengerRate': passengerRate,
|
'passengerRate': passengerRate,
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import 'package:url_launcher/url_launcher.dart';
|
|||||||
import '../../../../constant/colors.dart';
|
import '../../../../constant/colors.dart';
|
||||||
import '../../../../constant/links.dart';
|
import '../../../../constant/links.dart';
|
||||||
import '../../../../constant/style.dart';
|
import '../../../../constant/style.dart';
|
||||||
|
import '../../../../controller/functions/encrypt_decrypt.dart';
|
||||||
import '../../../../controller/functions/package_info.dart';
|
import '../../../../controller/functions/package_info.dart';
|
||||||
import '../../../../main.dart';
|
import '../../../../main.dart';
|
||||||
import '../../../widgets/my_scafold.dart';
|
import '../../../widgets/my_scafold.dart';
|
||||||
@@ -321,7 +322,8 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI(
|
||||||
ai.prompts[0]['prompt'].toString(),
|
encryptionHelper.encryptData(
|
||||||
|
ai.prompts[0]['prompt'].toString()),
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'driver_license'); //egypt
|
'driver_license'); //egypt
|
||||||
},
|
},
|
||||||
@@ -382,8 +384,11 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await ai.allMethodForAI(ai.prompts[0]['prompt'].toString(),
|
await ai.allMethodForAI(
|
||||||
AppLink.uploadEgypt, 'driver_license'); //egypt
|
encryptionHelper
|
||||||
|
.encryptData(ai.prompts[0]['prompt'].toString()),
|
||||||
|
AppLink.uploadEgypt,
|
||||||
|
'driver_license'); //egypt
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -436,7 +441,8 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI(
|
||||||
ai.prompts[1]['prompt'].toString(),
|
encryptionHelper.encryptData(
|
||||||
|
ai.prompts[1]['prompt'].toString()),
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'id_back'); //egypt
|
'id_back'); //egypt
|
||||||
},
|
},
|
||||||
@@ -506,8 +512,11 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await ai.allMethodForAI(ai.prompts[1]['prompt'].toString(),
|
await ai.allMethodForAI(
|
||||||
AppLink.uploadEgypt, 'id_back'); //egypt
|
encryptionHelper
|
||||||
|
.encryptData(ai.prompts[1]['prompt'].toString()),
|
||||||
|
AppLink.uploadEgypt,
|
||||||
|
'id_back'); //egypt
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -558,7 +567,9 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI(
|
||||||
ai.prompts[7]['prompt'].toString(),
|
encryptionHelper.decryptData(
|
||||||
|
encryptionHelper.encryptData(
|
||||||
|
ai.prompts[7]['prompt'].toString())),
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'non_id_back');
|
'non_id_back');
|
||||||
},
|
},
|
||||||
@@ -609,8 +620,11 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await ai.allMethodForAI(ai.prompts[7]['prompt'].toString(),
|
await ai.allMethodForAI(
|
||||||
AppLink.uploadEgypt, 'non_id_back');
|
encryptionHelper
|
||||||
|
.encryptData(ai.prompts[7]['prompt'].toString()),
|
||||||
|
AppLink.uploadEgypt,
|
||||||
|
'non_id_back');
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -653,7 +667,8 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI(
|
||||||
ai.prompts[2]['id_front'].toString(),
|
encryptionHelper.encryptData(
|
||||||
|
ai.prompts[2]['id_front'].toString()),
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'id_front'); //egypt
|
'id_front'); //egypt
|
||||||
},
|
},
|
||||||
@@ -708,8 +723,11 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await ai.allMethodForAI(ai.prompts[2]['prompt'].toString(),
|
await ai.allMethodForAI(
|
||||||
AppLink.uploadEgypt, 'id_front'); //egypt
|
encryptionHelper
|
||||||
|
.encryptData(ai.prompts[2]['prompt'].toString()),
|
||||||
|
AppLink.uploadEgypt,
|
||||||
|
'id_front'); //egypt
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -752,7 +770,8 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI(
|
||||||
ai.prompts[6]['prompt'].toString(),
|
encryptionHelper.encryptData(
|
||||||
|
ai.prompts[6]['prompt'].toString()),
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'non_id_front');
|
'non_id_front');
|
||||||
},
|
},
|
||||||
@@ -807,8 +826,11 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await ai.allMethodForAI(ai.prompts[6]['prompt'].toString(),
|
await ai.allMethodForAI(
|
||||||
AppLink.uploadEgypt, 'non_id_front');
|
encryptionHelper
|
||||||
|
.encryptData(ai.prompts[6]['prompt'].toString()),
|
||||||
|
AppLink.uploadEgypt,
|
||||||
|
'non_id_front');
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -858,8 +880,11 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
style: AppStyle.headTitle2),
|
style: AppStyle.headTitle2),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
ai.allMethodForAI(ai.prompts[3]['prompt'].toString(),
|
ai.allMethodForAI(
|
||||||
AppLink.uploadEgypt, 'car_front');
|
encryptionHelper.encryptData(
|
||||||
|
ai.prompts[3]['prompt'].toString()),
|
||||||
|
AppLink.uploadEgypt,
|
||||||
|
'car_front');
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.refresh),
|
icon: const Icon(Icons.refresh),
|
||||||
),
|
),
|
||||||
@@ -903,8 +928,11 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
ai.allMethodForAI(ai.prompts[3]['prompt'].toString(),
|
ai.allMethodForAI(
|
||||||
AppLink.uploadEgypt, 'car_front');
|
encryptionHelper
|
||||||
|
.encryptData(ai.prompts[3]['prompt'].toString()),
|
||||||
|
AppLink.uploadEgypt,
|
||||||
|
'car_front');
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -971,8 +999,11 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
style: AppStyle.headTitle2),
|
style: AppStyle.headTitle2),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
ai.allMethodForAI(ai.prompts[4]['prompt'].toString(),
|
ai.allMethodForAI(
|
||||||
AppLink.uploadEgypt, 'car_back');
|
encryptionHelper.encryptData(
|
||||||
|
ai.prompts[4]['prompt'].toString()),
|
||||||
|
AppLink.uploadEgypt,
|
||||||
|
'car_back');
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.refresh),
|
icon: const Icon(Icons.refresh),
|
||||||
),
|
),
|
||||||
@@ -1042,8 +1073,11 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
ai.allMethodForAI(ai.prompts[4]['prompt'].toString(),
|
ai.allMethodForAI(
|
||||||
AppLink.uploadEgypt, 'car_back');
|
encryptionHelper
|
||||||
|
.encryptData(ai.prompts[4]['prompt'].toString()),
|
||||||
|
AppLink.uploadEgypt,
|
||||||
|
'car_back');
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -1086,7 +1120,8 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI(
|
||||||
ai.prompts[5]['prompt'].toString(),
|
encryptionHelper.encryptData(
|
||||||
|
ai.prompts[5]['prompt'].toString()),
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'criminalRecord',
|
'criminalRecord',
|
||||||
);
|
);
|
||||||
@@ -1124,7 +1159,8 @@ class EgyptCardAI extends StatelessWidget {
|
|||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await ai.allMethodForAI(
|
await ai.allMethodForAI(
|
||||||
ai.prompts[5]['prompt'].toString(),
|
encryptionHelper
|
||||||
|
.encryptData(ai.prompts[5]['prompt'].toString()),
|
||||||
AppLink.uploadEgypt,
|
AppLink.uploadEgypt,
|
||||||
'criminalRecord',
|
'criminalRecord',
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import 'package:flutter/cupertino.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
import '../../../controller/auth/captin/invit_controller.dart';
|
import '../../../controller/auth/captin/invit_controller.dart';
|
||||||
|
import '../../../controller/functions/encrypt_decrypt.dart';
|
||||||
|
|
||||||
class InviteScreen extends StatelessWidget {
|
class InviteScreen extends StatelessWidget {
|
||||||
final InviteController controller = Get.put(InviteController());
|
final InviteController controller = Get.put(InviteController());
|
||||||
@@ -367,8 +368,9 @@ class InviteScreen extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildInvitationItem(BuildContext context, int index) {
|
Widget _buildInvitationItem(BuildContext context, int index) {
|
||||||
int countOfInvitDriver = int.tryParse(controller.driverInvitationData[index]
|
int countOfInvitDriver = int.tryParse(encryptionHelper
|
||||||
['countOfInvitDriver']
|
.decryptData(controller.driverInvitationData[index]
|
||||||
|
['countOfInvitDriver'])
|
||||||
?.toString() ??
|
?.toString() ??
|
||||||
'0') ??
|
'0') ??
|
||||||
0;
|
0;
|
||||||
@@ -389,7 +391,8 @@ class InviteScreen extends StatelessWidget {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
controller.driverInvitationData[index]['invitorName'],
|
encryptionHelper.decryptData(
|
||||||
|
controller.driverInvitationData[index]['invitorName']),
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 17,
|
fontSize: 17,
|
||||||
fontWeight: FontWeight.w600,
|
fontWeight: FontWeight.w600,
|
||||||
@@ -425,8 +428,11 @@ class InviteScreen extends StatelessWidget {
|
|||||||
// Extracting the data from the sample JSON-like structure
|
// Extracting the data from the sample JSON-like structure
|
||||||
var invitation = controller.driverInvitationDataToPassengers[index];
|
var invitation = controller.driverInvitationDataToPassengers[index];
|
||||||
|
|
||||||
int countOfInvitDriver =
|
int countOfInvitDriver = int.tryParse(encryptionHelper
|
||||||
int.tryParse(invitation['countOfInvitDriver']?.toString() ?? '0') ?? 0;
|
.decryptData(invitation['countOfInvitDriver'])
|
||||||
|
?.toString() ??
|
||||||
|
'0') ??
|
||||||
|
0;
|
||||||
double progressValue = (countOfInvitDriver / 10.0).clamp(0.0, 1.0);
|
double progressValue = (countOfInvitDriver / 10.0).clamp(0.0, 1.0);
|
||||||
|
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
@@ -444,7 +450,8 @@ class InviteScreen extends StatelessWidget {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
invitation['passengerName']
|
encryptionHelper
|
||||||
|
.decryptData(invitation['passengerName'])
|
||||||
.toString(), // Handle null or missing data
|
.toString(), // Handle null or missing data
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 17,
|
fontSize: 17,
|
||||||
@@ -499,13 +506,17 @@ class InviteScreen extends StatelessWidget {
|
|||||||
_buildStatItem(
|
_buildStatItem(
|
||||||
context,
|
context,
|
||||||
"Total Invites".tr,
|
"Total Invites".tr,
|
||||||
controller.driverInvitationDataToPassengers[0]['countOfInvitDriver']
|
encryptionHelper
|
||||||
|
.decryptData(controller.driverInvitationDataToPassengers[0]
|
||||||
|
['countOfInvitDriver'])
|
||||||
.toString(),
|
.toString(),
|
||||||
),
|
),
|
||||||
_buildStatItem(
|
_buildStatItem(
|
||||||
context,
|
context,
|
||||||
"Active Users".tr,
|
"Active Users".tr,
|
||||||
controller.driverInvitationDataToPassengers[0]['passengerName']
|
encryptionHelper
|
||||||
|
.decryptData(controller.driverInvitationDataToPassengers[0]
|
||||||
|
['passengerName'])
|
||||||
.toString(),
|
.toString(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import '../../../../controller/auth/captin/history_captain.dart';
|
|||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
|
import '../../../../controller/functions/encrypt_decrypt.dart';
|
||||||
|
|
||||||
class HistoryCaptain extends StatelessWidget {
|
class HistoryCaptain extends StatelessWidget {
|
||||||
const HistoryCaptain({super.key});
|
const HistoryCaptain({super.key});
|
||||||
|
|
||||||
@@ -78,7 +80,8 @@ class HistoryCaptain extends StatelessWidget {
|
|||||||
.navTitleTextStyle,
|
.navTitleTextStyle,
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
list['order_id'],
|
encryptionHelper
|
||||||
|
.decryptData(list['order_id']),
|
||||||
style: CupertinoTheme.of(context)
|
style: CupertinoTheme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.textStyle,
|
.textStyle,
|
||||||
@@ -105,14 +108,18 @@ class HistoryCaptain extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
list['status'],
|
list['status'],
|
||||||
style: list['status'] == 'Apply'
|
style: encryptionHelper.decryptData(
|
||||||
|
list['status']) ==
|
||||||
|
'Apply'
|
||||||
? CupertinoTheme.of(context)
|
? CupertinoTheme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.navTitleTextStyle
|
.navTitleTextStyle
|
||||||
.copyWith(
|
.copyWith(
|
||||||
color: CupertinoColors
|
color: CupertinoColors
|
||||||
.systemGreen)
|
.systemGreen)
|
||||||
: list['status'] == 'Refused'
|
: encryptionHelper.decryptData(
|
||||||
|
list['status']) ==
|
||||||
|
'Refused'
|
||||||
? CupertinoTheme.of(context)
|
? CupertinoTheme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.navTitleTextStyle
|
.navTitleTextStyle
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import 'package:google_maps_flutter/google_maps_flutter.dart';
|
|||||||
|
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
|
|
||||||
|
import '../../../../controller/functions/encrypt_decrypt.dart';
|
||||||
|
|
||||||
class HistoryDetailsPage extends StatelessWidget {
|
class HistoryDetailsPage extends StatelessWidget {
|
||||||
HistoryDetailsPage({super.key});
|
HistoryDetailsPage({super.key});
|
||||||
HistoryCaptainController historyCaptainController =
|
HistoryCaptainController historyCaptainController =
|
||||||
@@ -44,7 +46,7 @@ class HistoryDetailsPage extends StatelessWidget {
|
|||||||
CupertinoButton(
|
CupertinoButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
String mapUrl =
|
String mapUrl =
|
||||||
'https://www.google.com/maps/dir/${res['start_location']}/${res['end_location']}/';
|
'https://www.google.com/maps/dir/${encryptionHelper.decryptData(res['start_location'])}/${encryptionHelper.decryptData(res['end_location'])}/';
|
||||||
showInBrowser(mapUrl);
|
showInBrowser(mapUrl);
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
@@ -77,18 +79,26 @@ class HistoryDetailsPage extends StatelessWidget {
|
|||||||
polylineId: const PolylineId('route'),
|
polylineId: const PolylineId('route'),
|
||||||
points: [
|
points: [
|
||||||
LatLng(
|
LatLng(
|
||||||
double.parse(res['start_location']
|
double.parse(encryptionHelper
|
||||||
|
.decryptData(
|
||||||
|
res['start_location'])
|
||||||
.toString()
|
.toString()
|
||||||
.split(',')[0]),
|
.split(',')[0]),
|
||||||
double.parse(res['start_location']
|
double.parse(encryptionHelper
|
||||||
|
.decryptData(
|
||||||
|
res['start_location'])
|
||||||
.toString()
|
.toString()
|
||||||
.split(',')[1]),
|
.split(',')[1]),
|
||||||
),
|
),
|
||||||
LatLng(
|
LatLng(
|
||||||
double.parse(res['end_location']
|
double.parse(encryptionHelper
|
||||||
|
.decryptData(
|
||||||
|
res['end_location'])
|
||||||
.toString()
|
.toString()
|
||||||
.split(',')[0]),
|
.split(',')[0]),
|
||||||
double.parse(res['end_location']
|
double.parse(encryptionHelper
|
||||||
|
.decryptData(
|
||||||
|
res['end_location'])
|
||||||
.toString()
|
.toString()
|
||||||
.split(',')[1]),
|
.split(',')[1]),
|
||||||
)
|
)
|
||||||
@@ -105,7 +115,7 @@ class HistoryDetailsPage extends StatelessWidget {
|
|||||||
MainAxisAlignment.spaceBetween,
|
MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'${'Order ID'.tr} ${res['id']}',
|
'${'Order ID'.tr} ${encryptionHelper.decryptData(res['id'])}',
|
||||||
style: CupertinoTheme.of(context)
|
style: CupertinoTheme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.navActionTextStyle,
|
.navActionTextStyle,
|
||||||
@@ -135,13 +145,13 @@ class HistoryDetailsPage extends StatelessWidget {
|
|||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'${'Price is'.tr} ${res['price_for_driver']}',
|
'${'Price is'.tr} ${encryptionHelper.decryptData(res['price_for_driver'])}',
|
||||||
style: CupertinoTheme.of(context)
|
style: CupertinoTheme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.textStyle,
|
.textStyle,
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'${'Distance is'.tr} ${res['distance']} KM',
|
'${'Distance is'.tr} ${encryptionHelper.decryptData(res['distance'])} KM',
|
||||||
style: CupertinoTheme.of(context)
|
style: CupertinoTheme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.textStyle,
|
.textStyle,
|
||||||
@@ -200,7 +210,7 @@ class HistoryDetailsPage extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Text(
|
child: Text(
|
||||||
'${'Passenger Name is'.tr} ${res['first_name']} ${res['last_name']}',
|
'${'Passenger Name is'.tr} ${encryptionHelper.decryptData(res['first_name'])} ${encryptionHelper.decryptData(res['last_name'])}',
|
||||||
style: CupertinoTheme.of(context)
|
style: CupertinoTheme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.textStyle,
|
.textStyle,
|
||||||
@@ -219,7 +229,7 @@ class HistoryDetailsPage extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Text(
|
child: Text(
|
||||||
'${'Status is'.tr} ${res['status']}',
|
'${'Status is'.tr} ${encryptionHelper.decryptData(res['status'])}',
|
||||||
style: CupertinoTheme.of(context)
|
style: CupertinoTheme.of(context)
|
||||||
.textTheme
|
.textTheme
|
||||||
.textStyle,
|
.textStyle,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'package:sefer_driver/constant/api_key.dart';
|
import 'package:sefer_driver/constant/api_key.dart';
|
||||||
import 'package:sefer_driver/constant/links.dart';
|
import 'package:sefer_driver/constant/links.dart';
|
||||||
import 'package:sefer_driver/constant/style.dart';
|
import 'package:sefer_driver/constant/style.dart';
|
||||||
|
import 'package:sefer_driver/controller/functions/encrypt_decrypt.dart';
|
||||||
import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
|
import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
|
||||||
import 'package:sefer_driver/views/Rate/rate_app_page.dart';
|
import 'package:sefer_driver/views/Rate/rate_app_page.dart';
|
||||||
import 'package:sefer_driver/views/auth/captin/contact_us_page.dart';
|
import 'package:sefer_driver/views/auth/captin/contact_us_page.dart';
|
||||||
@@ -485,7 +486,7 @@ class UserAccountHeader extends StatelessWidget {
|
|||||||
: ClipRRect(
|
: ClipRRect(
|
||||||
borderRadius: BorderRadius.circular(50),
|
borderRadius: BorderRadius.circular(50),
|
||||||
child: Image.network(
|
child: Image.network(
|
||||||
'${AppLink.seferCairoServer}/portrate_captain_image/${box.read(BoxName.driverID)}.jpg',
|
'${AppLink.seferCairoServer}/portrate_captain_image/${encryptionHelper.decryptData(box.read(BoxName.driverID))}.jpg',
|
||||||
fit: BoxFit.cover,
|
fit: BoxFit.cover,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -519,7 +520,7 @@ class UserAccountHeader extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
Text(
|
Text(
|
||||||
'${box.read(BoxName.nameDriver).toString().split(' ')[0]} ${box.read(BoxName.nameDriver).toString().split(' ')[1]}',
|
box.read(BoxName.nameDriver).toString(),
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
fontSize: 24,
|
fontSize: 24,
|
||||||
@@ -535,7 +536,9 @@ class UserAccountHeader extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(height: 4),
|
const SizedBox(height: 4),
|
||||||
Text(
|
Text(
|
||||||
box.read(BoxName.emailDriver),
|
encryptionHelper.decryptData(
|
||||||
|
box.read(BoxName.emailDriver),
|
||||||
|
),
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.white.withOpacity(0.9),
|
color: Colors.white.withOpacity(0.9),
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
|
|||||||
@@ -4,11 +4,8 @@ import 'package:sefer_driver/controller/home/captin/help/help_controller.dart';
|
|||||||
import 'package:sefer_driver/views/home/Captin/home_captain/help_details_replay_page.dart';
|
import 'package:sefer_driver/views/home/Captin/home_captain/help_details_replay_page.dart';
|
||||||
|
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import '../../../../controller/functions/encrypt_decrypt.dart';
|
||||||
import 'package:get/get.dart';
|
|
||||||
import 'package:sefer_driver/controller/home/captin/help/help_controller.dart';
|
|
||||||
import 'package:sefer_driver/views/home/Captin/home_captain/help_details_replay_page.dart';
|
|
||||||
|
|
||||||
class HelpCaptain extends StatelessWidget {
|
class HelpCaptain extends StatelessWidget {
|
||||||
HelpCaptain({super.key});
|
HelpCaptain({super.key});
|
||||||
@@ -128,7 +125,8 @@ class HelpCaptain extends StatelessWidget {
|
|||||||
.helpQuestionDate['message'][index];
|
.helpQuestionDate['message'][index];
|
||||||
return CupertinoListTile(
|
return CupertinoListTile(
|
||||||
title: Text(
|
title: Text(
|
||||||
list['helpQuestion'],
|
encryptionHelper
|
||||||
|
.decryptData(list['helpQuestion']),
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
trailing: Row(
|
trailing: Row(
|
||||||
@@ -145,7 +143,10 @@ class HelpCaptain extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
helpController.getIndex(
|
helpController.getIndex(
|
||||||
list['id'], list['helpQuestion']);
|
int.parse(encryptionHelper
|
||||||
|
.decryptData(list['id'])),
|
||||||
|
encryptionHelper
|
||||||
|
.decryptData(list['helpQuestion']));
|
||||||
helpController
|
helpController
|
||||||
.getHelpRepley(list['id'].toString());
|
.getHelpRepley(list['id'].toString());
|
||||||
Get.to(() => const HelpDetailsReplayPage());
|
Get.to(() => const HelpDetailsReplayPage());
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import 'package:get/get.dart';
|
|||||||
import 'package:sefer_driver/constant/style.dart';
|
import 'package:sefer_driver/constant/style.dart';
|
||||||
import 'package:sefer_driver/views/widgets/mycircular.dart';
|
import 'package:sefer_driver/views/widgets/mycircular.dart';
|
||||||
|
|
||||||
|
import '../../../../controller/functions/encrypt_decrypt.dart';
|
||||||
import '../../../../controller/home/captin/help/help_controller.dart';
|
import '../../../../controller/home/captin/help/help_controller.dart';
|
||||||
import '../../../widgets/my_scafold.dart';
|
import '../../../widgets/my_scafold.dart';
|
||||||
|
|
||||||
@@ -53,9 +54,10 @@ class HelpDetailsReplayPage extends StatelessWidget {
|
|||||||
padding: const EdgeInsets.all(8.0),
|
padding: const EdgeInsets.all(8.0),
|
||||||
child: helpController.status ==
|
child: helpController.status ==
|
||||||
'not yet' ||
|
'not yet' ||
|
||||||
helpController
|
encryptionHelper
|
||||||
.helpQuestionRepleyDate[
|
.decryptData(helpController
|
||||||
'message']['replay']
|
.helpQuestionRepleyDate[
|
||||||
|
'message']['replay'])
|
||||||
.toString() ==
|
.toString() ==
|
||||||
'not yet'
|
'not yet'
|
||||||
? Text(
|
? Text(
|
||||||
@@ -63,9 +65,10 @@ class HelpDetailsReplayPage extends StatelessWidget {
|
|||||||
style: AppStyle.title,
|
style: AppStyle.title,
|
||||||
)
|
)
|
||||||
: Text(
|
: Text(
|
||||||
helpController
|
encryptionHelper
|
||||||
.helpQuestionRepleyDate[
|
.decryptData(helpController
|
||||||
'message']['replay']
|
.helpQuestionRepleyDate[
|
||||||
|
'message']['replay'])
|
||||||
.toString(),
|
.toString(),
|
||||||
style: AppStyle.title,
|
style: AppStyle.title,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import 'package:bubble_head/bubble.dart';
|
|||||||
import '../../../../constant/colors.dart';
|
import '../../../../constant/colors.dart';
|
||||||
import '../../../../constant/info.dart';
|
import '../../../../constant/info.dart';
|
||||||
import '../../../../constant/style.dart';
|
import '../../../../constant/style.dart';
|
||||||
|
import '../../../../controller/functions/encrypt_decrypt.dart';
|
||||||
import '../../../../controller/functions/location_controller.dart';
|
import '../../../../controller/functions/location_controller.dart';
|
||||||
import '../../../../controller/functions/overlay_permisssion.dart';
|
import '../../../../controller/functions/overlay_permisssion.dart';
|
||||||
import '../../../../controller/functions/package_info.dart';
|
import '../../../../controller/functions/package_info.dart';
|
||||||
@@ -73,7 +74,7 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(width: 8),
|
const SizedBox(width: 8),
|
||||||
Text(
|
Text(
|
||||||
'SEFER'.tr,
|
AppInformation.appName.split(' ')[0].toString().tr,
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
fontSize: 22,
|
fontSize: 22,
|
||||||
fontWeight: FontWeight.w600,
|
fontWeight: FontWeight.w600,
|
||||||
@@ -228,7 +229,7 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(width: 8),
|
const SizedBox(width: 8),
|
||||||
Text(
|
Text(
|
||||||
'${"Today".tr}: ${homeCaptainController.totalMoneyToday}',
|
'${"Today".tr}: ${encryptionHelper.decryptData(homeCaptainController.totalMoneyToday)}',
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
color: AppColor.greenColor,
|
color: AppColor.greenColor,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
@@ -252,7 +253,7 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(width: 8),
|
const SizedBox(width: 8),
|
||||||
Text(
|
Text(
|
||||||
'${AppInformation.appName}: ${homeCaptainController.totalMoneyInSEFER}',
|
'${AppInformation.appName}: ${encryptionHelper.decryptData(homeCaptainController.totalMoneyInSEFER)}',
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
color: AppColor.yellowColor,
|
color: AppColor.yellowColor,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
@@ -267,7 +268,7 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'${'Total Points is'.tr}: ${homeCaptainController.totalPoints}',
|
'${'Total Points is'.tr}: ${encryptionHelper.decryptData(homeCaptainController.totalPoints)}',
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
fontWeight: FontWeight.w600,
|
fontWeight: FontWeight.w600,
|
||||||
@@ -278,15 +279,19 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
horizontal: 12, vertical: 6),
|
horizontal: 12, vertical: 6),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(20),
|
borderRadius: BorderRadius.circular(20),
|
||||||
color: int.parse(homeCaptainController
|
color: int.parse(encryptionHelper.decryptData(
|
||||||
.countRideToday) <
|
homeCaptainController
|
||||||
|
.countRideToday)) <
|
||||||
5
|
5
|
||||||
? AppColor.accentColor
|
? AppColor.accentColor
|
||||||
: int.parse(homeCaptainController
|
: int.parse(encryptionHelper.decryptData(
|
||||||
.countRideToday) >
|
homeCaptainController
|
||||||
|
.countRideToday)) >
|
||||||
5 &&
|
5 &&
|
||||||
int.parse(homeCaptainController
|
int.parse(
|
||||||
.countRideToday) <
|
encryptionHelper.decryptData(
|
||||||
|
homeCaptainController
|
||||||
|
.countRideToday)) <
|
||||||
10
|
10
|
||||||
? AppColor.yellowColor
|
? AppColor.yellowColor
|
||||||
: AppColor.greenColor,
|
: AppColor.greenColor,
|
||||||
@@ -300,7 +305,7 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
Text(
|
||||||
'${"Ride Today : ".tr}: ${homeCaptainController.countRideToday}',
|
'${"Ride Today : ".tr}: ${encryptionHelper.decryptData(homeCaptainController.countRideToday)}',
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
@@ -351,7 +356,8 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
Text(
|
||||||
homeCaptainController.stringActiveDuration,
|
encryptionHelper.decryptData(
|
||||||
|
homeCaptainController.stringActiveDuration),
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
color: AppColor.greenColor,
|
color: AppColor.greenColor,
|
||||||
@@ -372,7 +378,8 @@ class HomeCaptain extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
Text(
|
||||||
homeCaptainController.totalDurationToday,
|
encryptionHelper.decryptData(
|
||||||
|
homeCaptainController.totalDurationToday),
|
||||||
style: AppStyle.title.copyWith(
|
style: AppStyle.title.copyWith(
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
color: AppColor.accentColor,
|
color: AppColor.accentColor,
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'package:get/get.dart';
|
|||||||
import 'package:sefer_driver/controller/home/payment/captain_wallet_controller.dart';
|
import 'package:sefer_driver/controller/home/payment/captain_wallet_controller.dart';
|
||||||
|
|
||||||
import '../../../../../constant/style.dart';
|
import '../../../../../constant/style.dart';
|
||||||
|
import '../../../../../controller/functions/encrypt_decrypt.dart';
|
||||||
import '../../../../widgets/elevated_btn.dart';
|
import '../../../../widgets/elevated_btn.dart';
|
||||||
import '../../../../../controller/home/captin/home_captain_controller.dart';
|
import '../../../../../controller/home/captin/home_captain_controller.dart';
|
||||||
|
|
||||||
@@ -23,26 +24,27 @@ class ConnectWidget extends StatelessWidget {
|
|||||||
captainWalletController.getCaptainWalletFromBuyPoints();
|
captainWalletController.getCaptainWalletFromBuyPoints();
|
||||||
return Center(
|
return Center(
|
||||||
child: GetBuilder<HomeCaptainController>(
|
child: GetBuilder<HomeCaptainController>(
|
||||||
builder: (homeCaptainController) => double.parse(
|
builder: (homeCaptainController) => double.parse(encryptionHelper
|
||||||
captainWalletController.totalPoints) <
|
.decryptData(captainWalletController.totalPoints)) <
|
||||||
-300
|
-300
|
||||||
? CupertinoButton(
|
? CupertinoButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Get.defaultDialog(
|
Get.defaultDialog(
|
||||||
// backgroundColor: CupertinoColors.destructiveRed,
|
// backgroundColor: CupertinoColors.destructiveRed,
|
||||||
barrierDismissible: false,
|
barrierDismissible: false,
|
||||||
title:
|
title: double.parse(encryptionHelper.decryptData(
|
||||||
double.parse(captainWalletController.totalPoints) <
|
captainWalletController.totalPoints)) <
|
||||||
-300
|
-300
|
||||||
? 'You dont have Points'.tr
|
? 'You dont have Points'.tr
|
||||||
: 'You Are Stopped For this Day !'.tr,
|
: 'You Are Stopped For this Day !'.tr,
|
||||||
titleStyle: AppStyle.title,
|
titleStyle: AppStyle.title,
|
||||||
content: Column(
|
content: Column(
|
||||||
children: [
|
children: [
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
double.parse(captainWalletController
|
double.parse(encryptionHelper.decryptData(
|
||||||
.totalPoints) <
|
captainWalletController
|
||||||
|
.totalPoints)) <
|
||||||
-300
|
-300
|
||||||
? await Get.find<TextToSpeechController>()
|
? await Get.find<TextToSpeechController>()
|
||||||
.speakText(
|
.speakText(
|
||||||
@@ -56,8 +58,9 @@ class ConnectWidget extends StatelessWidget {
|
|||||||
icon: const Icon(Icons.headphones),
|
icon: const Icon(Icons.headphones),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
double.parse(
|
double.parse(encryptionHelper.decryptData(
|
||||||
captainWalletController.totalPoints) <
|
captainWalletController
|
||||||
|
.totalPoints)) <
|
||||||
-300
|
-300
|
||||||
? 'You must be recharge your Account'.tr
|
? 'You must be recharge your Account'.tr
|
||||||
: 'You Refused 3 Rides this Day that is the reason \nSee you Tomorrow!'
|
: 'You Refused 3 Rides this Day that is the reason \nSee you Tomorrow!'
|
||||||
@@ -66,21 +69,20 @@ class ConnectWidget extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
confirm:
|
confirm: double.parse(encryptionHelper.decryptData(
|
||||||
double.parse(captainWalletController.totalPoints) <
|
captainWalletController.totalPoints)) <
|
||||||
-300
|
-300
|
||||||
? MyElevatedButton(
|
? MyElevatedButton(
|
||||||
title: 'Recharge my Account'.tr,
|
title: 'Recharge my Account'.tr,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
homeCaptainController
|
homeCaptainController.goToWalletFromConnect();
|
||||||
.goToWalletFromConnect();
|
})
|
||||||
})
|
: MyElevatedButton(
|
||||||
: MyElevatedButton(
|
title: 'Ok , See you Tomorrow'.tr,
|
||||||
title: 'Ok , See you Tomorrow'.tr,
|
onPressed: () {
|
||||||
onPressed: () {
|
Get.back();
|
||||||
Get.back();
|
Get.back();
|
||||||
Get.back();
|
}));
|
||||||
}));
|
|
||||||
},
|
},
|
||||||
color: CupertinoColors.destructiveRed,
|
color: CupertinoColors.destructiveRed,
|
||||||
child: Text(
|
child: Text(
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import 'package:get/get.dart';
|
|||||||
import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
|
import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
|
||||||
|
|
||||||
import '../../../../../constant/colors.dart';
|
import '../../../../../constant/colors.dart';
|
||||||
|
import '../../../../../controller/functions/encrypt_decrypt.dart';
|
||||||
import '../../../../Rate/ride_calculate_driver.dart';
|
import '../../../../Rate/ride_calculate_driver.dart';
|
||||||
|
|
||||||
GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
||||||
@@ -90,26 +91,38 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
)
|
)
|
||||||
: const SizedBox(),
|
: const SizedBox(),
|
||||||
// : const SizedBox(),
|
// : const SizedBox(),
|
||||||
// AnimatedContainer(
|
AnimatedContainer(
|
||||||
// duration: const Duration(microseconds: 200),
|
duration: const Duration(microseconds: 200),
|
||||||
// width: controller.widthMapTypeAndTraffic,
|
width: controller.widthMapTypeAndTraffic,
|
||||||
// decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
// color: AppColor.secondaryColor,
|
color: AppColor.secondaryColor,
|
||||||
// border: Border.all(color: AppColor.blueColor),
|
border: Border.all(color: AppColor.blueColor),
|
||||||
// borderRadius: BorderRadius.circular(15)),
|
borderRadius: BorderRadius.circular(15)),
|
||||||
// child: Builder(builder: (context) {
|
child: Builder(builder: (context) {
|
||||||
// return IconButton(
|
return IconButton(
|
||||||
// onPressed: () async {
|
onPressed: () async {
|
||||||
// MyCircularProgressIndicator();
|
final plainText = 'Al-sayyd';
|
||||||
// },
|
debugPrint('Plain Text: $plainText');
|
||||||
// icon: const Icon(
|
|
||||||
// FontAwesome5.grin_tears,
|
// Encrypt the data
|
||||||
// size: 29,
|
final encryptedData = encryptionHelper.encryptData(plainText);
|
||||||
// color: AppColor.blueColor,
|
debugPrint('Encrypted: $encryptedData');
|
||||||
// ),
|
|
||||||
// );
|
// Decrypt the data
|
||||||
// }),
|
final decryptedData = encryptionHelper.decryptData(
|
||||||
// ),
|
encryptedData); // Use the encryptedData variable
|
||||||
|
debugPrint('Decrypted: $decryptedData');
|
||||||
|
// rlyouFVUqI7TEhu9UEMangaIViglSgxLk3/d1c0Yo7g=
|
||||||
|
// rlyouFVUqI7TEhu9UEMangaIViglSgxLk3/d1c0Yo7g=
|
||||||
|
},
|
||||||
|
icon: const Icon(
|
||||||
|
FontAwesome5.grin_tears,
|
||||||
|
size: 29,
|
||||||
|
color: AppColor.blueColor,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
|
||||||
const SizedBox(
|
const SizedBox(
|
||||||
height: 5,
|
height: 5,
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import '../../../../constant/colors.dart';
|
|||||||
import '../../../../constant/links.dart';
|
import '../../../../constant/links.dart';
|
||||||
import '../../../../constant/style.dart';
|
import '../../../../constant/style.dart';
|
||||||
import '../../../../controller/functions/crud.dart';
|
import '../../../../controller/functions/crud.dart';
|
||||||
|
import '../../../../controller/functions/encrypt_decrypt.dart';
|
||||||
import '../../../../controller/functions/launch.dart';
|
import '../../../../controller/functions/launch.dart';
|
||||||
import '../../../../controller/home/captin/order_request_controller.dart';
|
import '../../../../controller/home/captin/order_request_controller.dart';
|
||||||
import '../../../widgets/elevated_btn.dart';
|
import '../../../widgets/elevated_btn.dart';
|
||||||
@@ -222,7 +223,7 @@ class _OrderRequestPageState extends State<OrderRequestPage> {
|
|||||||
var res = await CRUD().post(
|
var res = await CRUD().post(
|
||||||
link: AppLink.updateStausFromSpeed,
|
link: AppLink.updateStausFromSpeed,
|
||||||
payload: {
|
payload: {
|
||||||
'id': controller.myList[16],
|
'id': (controller.myList[16]),
|
||||||
'rideTimeStart': DateTime.now().toString(),
|
'rideTimeStart': DateTime.now().toString(),
|
||||||
'status': 'Apply',
|
'status': 'Apply',
|
||||||
'driver_id': box.read(BoxName.driverID),
|
'driver_id': box.read(BoxName.driverID),
|
||||||
@@ -232,7 +233,7 @@ class _OrderRequestPageState extends State<OrderRequestPage> {
|
|||||||
link:
|
link:
|
||||||
"${AppLink.endPoint}/ride/rides/updateStausFromSpeed.php",
|
"${AppLink.endPoint}/ride/rides/updateStausFromSpeed.php",
|
||||||
payload: {
|
payload: {
|
||||||
'id': controller.myList[16],
|
'id': (controller.myList[16]),
|
||||||
'rideTimeStart': DateTime.now().toString(),
|
'rideTimeStart': DateTime.now().toString(),
|
||||||
'status': 'Apply',
|
'status': 'Apply',
|
||||||
'driver_id': box.read(BoxName.driverID),
|
'driver_id': box.read(BoxName.driverID),
|
||||||
@@ -250,9 +251,9 @@ class _OrderRequestPageState extends State<OrderRequestPage> {
|
|||||||
link: AppLink.addDriverOrder,
|
link: AppLink.addDriverOrder,
|
||||||
payload: {
|
payload: {
|
||||||
'driver_id':
|
'driver_id':
|
||||||
controller.myList[6].toString(),
|
(controller.myList[6].toString()),
|
||||||
'order_id':
|
'order_id':
|
||||||
controller.myList[16].toString(),
|
(controller.myList[16].toString()),
|
||||||
'status': 'Apply'
|
'status': 'Apply'
|
||||||
});
|
});
|
||||||
if (AppLink.endPoint !=
|
if (AppLink.endPoint !=
|
||||||
@@ -262,9 +263,9 @@ class _OrderRequestPageState extends State<OrderRequestPage> {
|
|||||||
'${AppLink.endPoint}/rides/driver_order/add.php',
|
'${AppLink.endPoint}/rides/driver_order/add.php',
|
||||||
payload: {
|
payload: {
|
||||||
'driver_id':
|
'driver_id':
|
||||||
controller.myList[6].toString(),
|
(controller.myList[6].toString()),
|
||||||
'order_id':
|
'order_id':
|
||||||
controller.myList[16].toString(),
|
(controller.myList[16].toString()),
|
||||||
'status': 'Apply'
|
'status': 'Apply'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -300,9 +301,12 @@ class _OrderRequestPageState extends State<OrderRequestPage> {
|
|||||||
'https://www.google.com/maps/dir/${controller.myList[0]}/${controller.myList[1]}/',
|
'https://www.google.com/maps/dir/${controller.myList[0]}/${controller.myList[1]}/',
|
||||||
'DurationToPassenger':
|
'DurationToPassenger':
|
||||||
controller.myList[15].toString(),
|
controller.myList[15].toString(),
|
||||||
'rideId': controller.myList[16].toString(),
|
'rideId': encryptionHelper.decryptData(
|
||||||
'passengerId': controller.myList[7].toString(),
|
controller.myList[16].toString()),
|
||||||
'driverId': controller.myList[18].toString(),
|
'passengerId': encryptionHelper.decryptData(
|
||||||
|
controller.myList[7].toString()),
|
||||||
|
'driverId': encryptionHelper.decryptData(
|
||||||
|
controller.myList[18].toString()),
|
||||||
'durationOfRideValue':
|
'durationOfRideValue':
|
||||||
controller.myList[19].toString(),
|
controller.myList[19].toString(),
|
||||||
'paymentAmount':
|
'paymentAmount':
|
||||||
@@ -374,7 +378,8 @@ class _OrderRequestPageState extends State<OrderRequestPage> {
|
|||||||
'notification.wav');
|
'notification.wav');
|
||||||
|
|
||||||
controller.refuseOrder(
|
controller.refuseOrder(
|
||||||
controller.myList[16].toString(),
|
encryptionHelper.encryptData(
|
||||||
|
controller.myList[16].toString()),
|
||||||
);
|
);
|
||||||
controller.addRideToNotificationDriverString(
|
controller.addRideToNotificationDriverString(
|
||||||
controller.myList[16].toString(),
|
controller.myList[16].toString(),
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import 'package:get/get.dart';
|
|||||||
import '../../../constant/colors.dart';
|
import '../../../constant/colors.dart';
|
||||||
import '../../../constant/links.dart';
|
import '../../../constant/links.dart';
|
||||||
import '../../../constant/style.dart';
|
import '../../../constant/style.dart';
|
||||||
|
import '../../../controller/functions/encrypt_decrypt.dart';
|
||||||
import '../../../controller/functions/gemeni.dart';
|
import '../../../controller/functions/gemeni.dart';
|
||||||
import '../../auth/captin/driver_car_controller.dart';
|
import '../../auth/captin/driver_car_controller.dart';
|
||||||
|
|
||||||
@@ -93,8 +94,11 @@ GetBuilder<AI> egyptCarLicenceFront() {
|
|||||||
style: AppStyle.headTitle2),
|
style: AppStyle.headTitle2),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
ai.allMethodForAI(ai.prompts[3]['prompt'].toString(),
|
ai.allMethodForAI(
|
||||||
AppLink.uploadEgypt, 'car_front');
|
encryptionHelper.decryptData(
|
||||||
|
ai.prompts[3]['prompt'].toString()),
|
||||||
|
AppLink.uploadEgypt,
|
||||||
|
'car_front');
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.refresh),
|
icon: const Icon(Icons.refresh),
|
||||||
),
|
),
|
||||||
@@ -138,8 +142,12 @@ GetBuilder<AI> egyptCarLicenceFront() {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
ai.allMethodForAINewCar(ai.prompts[3]['prompt'].toString(),
|
ai.allMethodForAINewCar(
|
||||||
AppLink.uploadEgypt1, 'car_front', 'carId'); //todo
|
encryptionHelper
|
||||||
|
.decryptData(ai.prompts[3]['prompt'].toString()),
|
||||||
|
AppLink.uploadEgypt1,
|
||||||
|
'car_front',
|
||||||
|
'carId'); //todo
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -205,8 +213,11 @@ GetBuilder<AI> egyptCarLicenceBack() {
|
|||||||
Text('Vehicle Details Back'.tr, style: AppStyle.headTitle2),
|
Text('Vehicle Details Back'.tr, style: AppStyle.headTitle2),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
ai.allMethodForAI(ai.prompts[4]['prompt'].toString(),
|
ai.allMethodForAI(
|
||||||
AppLink.uploadEgypt, 'car_back');
|
encryptionHelper.decryptData(
|
||||||
|
ai.prompts[4]['prompt'].toString()),
|
||||||
|
AppLink.uploadEgypt,
|
||||||
|
'car_back');
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.refresh),
|
icon: const Icon(Icons.refresh),
|
||||||
),
|
),
|
||||||
@@ -275,8 +286,11 @@ GetBuilder<AI> egyptCarLicenceBack() {
|
|||||||
return Card(
|
return Card(
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
ai.allMethodForAI(ai.prompts[4]['prompt'].toString(),
|
ai.allMethodForAI(
|
||||||
AppLink.uploadEgypt, 'car_back');
|
encryptionHelper
|
||||||
|
.decryptData(ai.prompts[4]['prompt'].toString()),
|
||||||
|
AppLink.uploadEgypt,
|
||||||
|
'car_back');
|
||||||
},
|
},
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
|
|||||||
Reference in New Issue
Block a user