This commit is contained in:
Hamza-Ayed
2024-07-07 12:25:20 +03:00
parent 819a32eec1
commit 9925e12447
8 changed files with 189 additions and 164 deletions

131
.env
View File

@@ -30,86 +30,69 @@ passwordPayMob='g@nkD2#99!hD_.wXrXlBl'
integrationIdPayMob=0237730XrXlBl integrationIdPayMob=0237730XrXlBl
payMobApikey='MDrGqKEWS1rVqHvEPDvPjJ7vZDBExrO7S3BEBgrlfUwTA3i5RnP5ZnvoL3M2S9rEBgrlNTdexH5pTPf7NJrvy1reZJv1Tn7zf7vTIDywjHg1C7Ley38HTDyNA3v7TPfdxJrax1rwPmPtMJyzqKEYZeghq3MuLUrFH3A1AgHcH15CZ9UaZTLOxnw0BTdzHHrBArisZerUMUUzZ1BnBeEijHvNjYLnS1BUICMhSmPhA15ifHyVqKEMHWyKLbyuIPvcH9UeL3vZyDf=XrXlBl' payMobApikey='MDrGqKEWS1rVqHvEPDvPjJ7vZDBExrO7S3BEBgrlfUwTA3i5RnP5ZnvoL3M2S9rEBgrlNTdexH5pTPf7NJrvy1reZJv1Tn7zf7vTIDywjHg1C7Ley38HTDyNA3v7TPfdxJrax1rwPmPtMJyzqKEYZeghq3MuLUrFH3A1AgHcH15CZ9UaZTLOxnw0BTdzHHrBArisZerUMUUzZ1BnBeEijHvNjYLnS1BUICMhSmPhA15ifHyVqKEMHWyKLbyuIPvcH9UeL3vZyDf=XrXlBl'
integrationIdPayMobWallet=0237739XrXlBl integrationIdPayMobWallet=0237739XrXlBl
ocpApimSubscriptionKey=17373j50x53u07q0830634f512j731yuXrXlBl ocpApimSubscriptionKey=0f5dacccdbce4131b1a5f952996302e3
smsPasswordEgypt="J)Vh=qb/@MXrXlBl" smsPasswordEgypt="J)Vh=qb/@MXrXlBl"
chatGPTkeySeferNew4=zg-vlie-2l1ZlpxiLJ6wQOvbb4TnC9XrxgUEyVQIu6TID4qP4FUUqoS5XrXlBl chatGPTkeySeferNew4=zg-vlie-2l1ZlpxiLJ6wQOvbb4TnC9XrxgUEyVQIu6TID4qP4FUUqoS5XrXlBl
anthropicAIkeySeferNew=zg-qbc-qvo39-n4VdMQ5nuJeIYhMN4PDYr7qox3-t2i1Lh7aNTDfYF-Gf8whUJZCs47EeelKn8_UcmUMmiSLaf0UJg0DvUlQrDt-76CRrkQQXrXlBl anthropicAIkeySeferNew=zg-qbc-qvo39-n4VdMQ5nuJeIYhMN4PDYr7qox3-t2i1Lh7aNTDfYF-Gf8whUJZCs47EeelKn8_UcmUMmiSLaf0UJg0DvUlQrDt-76CRrkQQXrXlBl
llama3Key=kzg_uTXy3e9DBbCQ1FnMGxYwTKysx9US1burxJj4fFwOje4LZBUFKJS1XrXlBl llama3Key=kzg_uTXy3e9DBbCQ1FnMGxYwTKysx9US1burxJj4fFwOje4LZBUFKJS1XrXlBl
payMobOutClientSecrret='wcP2bUQBRYy254hjCJhNlOatefDzifNDnXRQSiu6UhhcXfZdyCyiBaUr9JQpI2mlIkKVRyoNliuBv1P8QZPLveiZrUeYBLmS6wuVhbQEJku1B5MHhgbB0AboqaOMpqBcXrXlBl' payMobOutClientSecrret='xyjjRlahJM0Xc38WjApCOh8bvgL9slFpNdM9YeCu9AhLqboKMPtmSvc2N9O4tXxFLV2JAV6stBSTAGFGCVubGe6MNpc7MzJnZ3SiT6GpavBoCLWkUvVbdSDaM0zHvuBOXrXlBl'
payMobOutClient_id='gnBTH5kGzR4RGPwzEUxIKCJx9SA5zAwpXiX4vaiTXrXlBl' payMobOutClient_id='Z05ut48dVkS2gI2zenFFcKsfDKfHAU0WELqKyJ0LXrXlBl'
payMobOutPassword='#f9vZtxHdIGvAbl5wWMQkvgZTXrXlBl' payMobOutPassword='D2zJFxkE#LN3vz38z2dYxpNfWXrXlBl'
payMobOutUserName='zjujl_qvo_fwjfgjlXrXlBl' payMobOutUserName='zjujl_qvo_fwjfgjlXrXlBl'
keyOfApp=nqryjp@1737wqnmqqsjyzjujljksvceiXrXlBl
a=q
b=x
c=f
d=y
e=j
f=u
g=k
h=w
i=o
j=e
k=g
l=r
m=n
n=b
o=i
p=v
q=a
r=l
s=z
t=c
u=h
v=p
w=t
x=d
y=s
z=m
A=Q
import '../controller/functions/encrypt.dart'; B=X
import '../env/env.dart'; C=F
import 'char_map.dart'; D=Y
import 'credential.dart'; E=J
F=U
class AK { G=K
static final AC a = AC(); H=W
static final String publishableKey = I=O
KeyEncryption.decryptKey(Env.stripePublishableKe); J=E
static final String secretKey = KeyEncryption.decryptKey(Env.secretKey); K=G
static final String basicAuthCredentials = L=R
KeyEncryption.decryptKey(Env.basicAuthCredentials); M=N
static final String accountSIDTwillo = N=B
KeyEncryption.decryptKey(Env.accountSIDTwillo); O=I
static final String serverAPI = KeyEncryption.decryptKey(Env.serverAPI); P=V
static final String mapAPIKEY = KeyEncryption.decryptKey(Env.mapAPIKEY); Q=A
static final String twilloRecoveryCode = R=L
KeyEncryption.decryptKey(Env.twilloRecoveryCode); S=Z
static final String authTokenTwillo = T=C
KeyEncryption.decryptKey(Env.authTokenTwillo); U=H
static final String chatGPTkey = KeyEncryption.decryptKey(Env.chatGPTkey); V=P
static final String transactionCloude = W=T
KeyEncryption.decryptKey(Env.transactionCloude); X=D
static final String visionApi = KeyEncryption.decryptKey(Env.visionApi); Y=S
static final String chatGPTkeySefer = Z=M
KeyEncryption.decryptKey(Env.chatGPTkeySefer);
static final String chatGPTkeySeferNew =
KeyEncryption.decryptKey(Env.chatGPTkeySeferNew);
static final String serverPHP = Env.serverPHP;
static final String llamaKey = KeyEncryption.decryptKey(Env.llamaKey);
static final String cohere = KeyEncryption.decryptKey(Env.cohere);
static final String claudeAiAPI = KeyEncryption.decryptKey(Env.claudeAiAPI);
static final String payPalClientId =
KeyEncryption.decryptKey(Env.payPalClientId);
static final String payPalSecret = KeyEncryption.decryptKey(Env.payPalSecret);
static final String geminiApi = KeyEncryption.decryptKey(Env.geminiApi);
static final String agoraAppId = KeyEncryption.decryptKey(Env.agoraAppId);
static final String agoraAppCertificate =
KeyEncryption.decryptKey(Env.agoraAppCertificate);
static final String payPalClientIdLive =
KeyEncryption.decryptKey(Env.payPalClientIdLive);
static final String payPalSecretLive =
KeyEncryption.decryptKey(Env.payPalSecretLive);
static final String integrationIdPayMob =
KeyEncryption.decryptKey(Env.integrationIdPayMob);
static final String passwordPayMob =
KeyEncryption.decryptKey(Env.passwordPayMob);
static final String usernamePayMob =
KeyEncryption.decryptKey(Env.usernamePayMob);
static final String payMobApikey = KeyEncryption.decryptKey(Env.payMobApikey);
static final String integrationIdPayMobWallet =
KeyEncryption.decryptKey(Env.integrationIdPayMobWallet);
static final String smsPasswordEgypt =
KeyEncryption.decryptKey(Env.smsPasswordEgypt);
static final String ocpApimSubscriptionKey = Env.ocpApimSubscriptionKey;
static final String chatGPTkeySeferNew4 =
KeyEncryption.decryptKey(Env.chatGPTkeySeferNew4);
static final String anthropicAIkeySeferNew =
KeyEncryption.decryptKey(Env.anthropicAIkeySeferNew);
static final String llama3Key = KeyEncryption.decryptKey(Env.llama3Key);
static final String payMobOutClientSecrret =
KeyEncryption.decryptKey(Env.payMobOutClientSecrret);
static final String payMobOutClient_id =
KeyEncryption.decryptKey(Env.payMobOutClient_id);
static final String payMobOutPassword =
KeyEncryption.decryptKey(Env.payMobOutPassword);
static final String payMobOutUserName =
KeyEncryption.decryptKey(Env.payMobOutUserName);
}

View File

@@ -54,10 +54,21 @@ class AK {
a.r(a.r(a.r(Env.integrationIdPayMobWallet, cn), cC), cs); a.r(a.r(a.r(Env.integrationIdPayMobWallet, cn), cC), cs);
static final String smsPasswordEgypt = static final String smsPasswordEgypt =
a.r(a.r(a.r(Env.smsPasswordEgypt, cn), cC), cs); a.r(a.r(a.r(Env.smsPasswordEgypt, cn), cC), cs);
static final String ocpApimSubscriptionKey = static final String ocpApimSubscriptionKey = Env.ocpApimSubscriptionKey;
a.r(a.r(a.r(Env.ocpApimSubscriptionKey, cn), cC), cs);
static final String chatGPTkeySeferNew4 = static final String chatGPTkeySeferNew4 =
a.r(a.r(a.r(Env.chatGPTkeySeferNew4, cn), cC), cs); a.r(a.r(a.r(Env.chatGPTkeySeferNew4, cn), cC), cs);
static final String anthropicAIkeySeferNew = static final String anthropicAIkeySeferNew =
a.r(a.r(a.r(Env.anthropicAIkeySeferNew, cn), cC), cs); a.r(a.r(a.r(Env.anthropicAIkeySeferNew, cn), cC), cs);
static final String llama3Key = a.r(a.r(a.r(Env.llama3Key, cn), cC), cs);
static final String payMobOutClientSecrret =
a.r(a.r(a.r(Env.payMobOutClientSecrret, cn), cC), cs);
static final String payMobOutClient_id =
a.r(a.r(a.r(Env.payMobOutClient_id, cn), cC), cs);
static final String payMobOutPassword =
a.r(a.r(a.r(Env.payMobOutPassword, cn), cC), cs);
static final String payMobOutUserName =
a.r(a.r(a.r(Env.payMobOutUserName, cn), cC), cs);
///////////
static final String keyOfApp = a.r(a.r(a.r(Env.keyOfApp, cn), cC), cs);
} }

View File

@@ -1,3 +1,66 @@
import '../env/env.dart';
Map<String, String> cs = {
"a": Env.a,
"b": Env.b,
"c": Env.c,
"d": Env.d,
"e": Env.e,
"f": Env.f,
"g": Env.g,
"h": Env.h,
"i": Env.i,
"j": Env.j,
"k": Env.k,
"l": Env.l,
"m": Env.m,
"n": Env.n,
"o": Env.o,
"p": Env.p,
"q": Env.q,
"r": Env.r,
"s": Env.s,
"t": Env.t,
"u": Env.u,
"v": Env.v,
"w": Env.w,
"x": Env.x,
"y": Env.y,
"z": Env.z,
};
Map<String, String> cC = {
"A": Env.A,
"B": Env.B,
"C": Env.C,
"D": Env.D,
"E": Env.E,
"F": Env.F,
"G": Env.G,
"H": Env.H,
"I": Env.I,
"J": Env.J,
"K": Env.K,
"L": Env.L,
"M": Env.M,
"N": Env.N,
"O": Env.O,
"P": Env.P,
"Q": Env.Q,
"R": Env.R,
"S": Env.S,
"T": Env.T,
"U": Env.U,
"V": Env.V,
"W": Env.W,
"X": Env.X,
"Y": Env.Y,
"Z": Env.Z
};
//
//
Map<String, String> cn = { Map<String, String> cn = {
"0": "3", "0": "3",
"1": "7", "1": "7",
@@ -10,59 +73,3 @@ Map<String, String> cn = {
"8": "4", "8": "4",
"9": "8" "9": "8"
}; };
Map<String, String> cs = {
"a": "q",
"b": "x",
"c": "f",
"d": "y",
"e": "j",
"f": "u",
"g": "k",
"h": "w",
"i": "o",
"j": "e",
"k": "g",
"l": "r",
"m": "n",
"n": "b",
"o": "i",
"p": "v",
"q": "a",
"r": "l",
"s": "z",
"t": "c",
"u": "h",
"v": "p",
"w": "t",
"x": "d",
"y": "s",
"z": "m"
};
Map<String, String> cC = {
"A": "Q",
"B": "X",
"C": "F",
"D": "Y",
"E": "J",
"F": "U",
"G": "K",
"H": "W",
"I": "O",
"J": "E",
"K": "G",
"L": "R",
"M": "N",
"N": "B",
"O": "I",
"P": "V",
"Q": "A",
"R": "L",
"S": "Z",
"T": "C",
"U": "H",
"V": "P",
"W": "T",
"X": "D",
"Y": "S",
"Z": "M"
};

View File

@@ -74,7 +74,7 @@ class LoginController extends GetxController {
var jsonDecoeded = jsonDecode(res); var jsonDecoeded = jsonDecode(res);
if (jsonDecoeded.isNotEmpty) { if (jsonDecoeded.isNotEmpty) {
if (jsonDecoeded['status'] == 'success' && if (jsonDecoeded['status'] == 'success' &&
jsonDecoeded['data'][0]['verified'] == 1) { jsonDecoeded['data'][0]['verified'].toString() == '1') {
// //
box.write(BoxName.isVerified, '1'); box.write(BoxName.isVerified, '1');
box.write(BoxName.email, jsonDecoeded['data'][0]['email']); box.write(BoxName.email, jsonDecoeded['data'][0]['email']);

View File

@@ -93,7 +93,7 @@ class RegisterController extends GetxController {
.post(link: AppLink.checkPhoneNumberISVerfiedPassenger, payload: { .post(link: AppLink.checkPhoneNumberISVerfiedPassenger, payload: {
'phone_number': '+2${phoneController.text}', 'phone_number': '+2${phoneController.text}',
}); });
// if (responseCheker != 'failure') { if (responseCheker != 'failure') {
var d = jsonDecode(responseCheker); var d = jsonDecode(responseCheker);
if (d['message'][0]['verified'].toString() == '1') { if (d['message'][0]['verified'].toString() == '1') {
Get.snackbar('Phone number is verified before'.tr, '', Get.snackbar('Phone number is verified before'.tr, '',
@@ -101,7 +101,6 @@ class RegisterController extends GetxController {
box.write(BoxName.isVerified, '1'); box.write(BoxName.isVerified, '1');
box.write(BoxName.phone, '+2${phoneController.text}'); box.write(BoxName.phone, '+2${phoneController.text}');
Get.offAll(const MapPagePassenger()); Get.offAll(const MapPagePassenger());
// }
} else { } else {
await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: { await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: {
'phone_number': '+2${phoneController.text}', 'phone_number': '+2${phoneController.text}',
@@ -116,6 +115,22 @@ class RegisterController extends GetxController {
isLoading = false; isLoading = false;
update(); update();
} }
} else {
await CRUD().post(link: AppLink.sendVerifyOtpMessage, payload: {
'phone_number': '+2${phoneController.text}',
'token': randomNumber.toString(),
});
await smsEgyptController.sendSmsEgypt(
phoneController.text.toString(), randomNumber.toString());
isSent = true;
remainingTime = 300; // Reset to 5 minutes
startTimer();
isLoading = false;
update();
// Get.snackbar(responseCheker, 'message');
}
} }
} }
} }

View File

@@ -894,8 +894,9 @@ class MapPassengerController extends GetxController {
try { try {
Uri uri = Uri.parse(link); Uri uri = Uri.parse(link);
if (uri.host == 'maps.google.com') { if (uri.host == 'maps.google.com' || uri.host == 'www.google.com') {
String? query = uri.queryParameters['q']; String? query = uri.queryParameters['q'];
query ??= uri.queryParameters['ll'];
if (query != null) { if (query != null) {
List<String> coordinates = query.split(','); List<String> coordinates = query.split(',');
@@ -910,6 +911,9 @@ class MapPassengerController extends GetxController {
}; };
} }
} }
} else if (uri.host == 'goo.gl') {
// Shortened URLs might need to be expanded first
// Implement additional logic to expand the URL here if necessary
} }
} catch (e) { } catch (e) {
print('Error parsing WhatsApp location link: $e'); print('Error parsing WhatsApp location link: $e');
@@ -1164,7 +1168,7 @@ class MapPassengerController extends GetxController {
} }
void delayAndFetchRideStatus(String rideId) { void delayAndFetchRideStatus(String rideId) {
Timer(const Duration(milliseconds: 200), () async { Timer(const Duration(seconds: 1), () async {
if (shouldFetch) { if (shouldFetch) {
if (remainingTimeToPassengerFromDriverAfterApplied > 0) { if (remainingTimeToPassengerFromDriverAfterApplied > 0) {
var res = await getRideStatus(rideId); var res = await getRideStatus(rideId);
@@ -1197,7 +1201,7 @@ class MapPassengerController extends GetxController {
} }
void delayAndFetchRideStatusForAllDriverAvailable(String rideId) { void delayAndFetchRideStatusForAllDriverAvailable(String rideId) {
Timer(const Duration(milliseconds: 200), () async { Timer(const Duration(milliseconds: 1000), () async {
if (shouldFetch) { if (shouldFetch) {
var res = await getRideStatus(rideId); var res = await getRideStatus(rideId);
// var decod = jsonDecode(res); // var decod = jsonDecode(res);
@@ -1532,10 +1536,10 @@ class MapPassengerController extends GetxController {
await Future.delayed(const Duration(seconds: 4)); await Future.delayed(const Duration(seconds: 4));
if (rideTimerBegin == true || statusRide == 'Apply') { if (rideTimerBegin == true || statusRide == 'Apply') {
await getDriverCarsLocationToPassengerAfterApplied(); await getDriverCarsLocationToPassengerAfterApplied();
}
reloadMarkerDriverCarsLocationToPassengerAfterApplied(); reloadMarkerDriverCarsLocationToPassengerAfterApplied();
} }
} }
}
Future runWhenRideIsBegin() async { Future runWhenRideIsBegin() async {
// Calculate the duration of the trip in minutes. // Calculate the duration of the trip in minutes.
@@ -2107,6 +2111,7 @@ class MapPassengerController extends GetxController {
reloadMarkers() async { reloadMarkers() async {
if (statusRide == 'wait') { if (statusRide == 'wait') {
clearMarkersExceptStartEnd();
await getCarsLocationByPassengerAndReloadMarker(); await getCarsLocationByPassengerAndReloadMarker();
await getNearestDriverByPassengerLocation(); await getNearestDriverByPassengerLocation();
} }

View File

@@ -1,3 +1,5 @@
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/views/auth/sms_verfy_page.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
@@ -6,6 +8,7 @@ import '../../../constant/colors.dart';
import '../../../constant/credential.dart'; import '../../../constant/credential.dart';
import '../../../controller/functions/tts.dart'; import '../../../controller/functions/tts.dart';
import '../../../controller/home/map_passenger_controller.dart'; import '../../../controller/home/map_passenger_controller.dart';
import '../../../main.dart';
GetBuilder<MapPassengerController> leftMainMenuIcons() { GetBuilder<MapPassengerController> leftMainMenuIcons() {
final textToSpeechController = Get.put(TextToSpeechController()); final textToSpeechController = Get.put(TextToSpeechController());
@@ -82,23 +85,24 @@ GetBuilder<MapPassengerController> leftMainMenuIcons() {
const SizedBox( const SizedBox(
width: 5, width: 5,
), ),
// 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(), border: Border.all(),
// borderRadius: BorderRadius.circular(15)), borderRadius: BorderRadius.circular(15)),
// child: IconButton( child: IconButton(
// onPressed: () async { onPressed: () async {
// makePhoneCall('+201023248456'); box.remove(BoxName.isVerified);
// }, Get.to(() => SmsSignupEgypt());
// icon: const Icon( },
// Icons.voice_chat, icon: const Icon(
// size: 29, Icons.voice_chat,
// ), size: 29,
// ), ),
// ), ),
),
// AnimatedContainer( // AnimatedContainer(
// duration: const Duration(microseconds: 200), // duration: const Duration(microseconds: 200),
// width: controller.widthMapTypeAndTraffic, // width: controller.widthMapTypeAndTraffic,

View File

@@ -298,7 +298,7 @@ class RideBeginPassenger extends StatelessWidget {
}, },
icon: const Icon( icon: const Icon(
Foundation.record, Foundation.record,
color: AppColor.yellowColor, color: AppColor.blueColor,
), ),
), ),
), ),