Update: 2026-06-26 17:29:23

This commit is contained in:
Hamza-Ayed
2026-06-26 17:29:23 +03:00
parent a323da29aa
commit 9ded734e38
139 changed files with 1815 additions and 2676 deletions

View File

@@ -14,9 +14,9 @@ import '../../constant/links.dart';
import '../../env/env.dart';
import '../../main.dart';
import '../../print.dart';
import '../../views/widgets/snackbar.dart';
import 'device_info.dart';
import 'encrypt_decrypt.dart';
import 'security_checks.dart';
import 'ssl_pinning.dart';
class CRUD {
@@ -36,7 +36,7 @@ class CRUD {
'password': AK.passnpassenger,
'aud': '${AK.allowed}$dev',
};
Log.print('payload: ${payload}');
Log.print('payload: $payload');
var response1 = await _client.post(
Uri.parse(AppLink.loginJwtDriver),
body: payload,
@@ -46,7 +46,7 @@ class CRUD {
final decodedResponse1 = jsonDecode(response1.body);
final jwt = decodedResponse1['jwt'];
Log.print('jwt: ${jwt}');
Log.print('jwt: $jwt');
await box.write(BoxName.jwt, X.c(X.c(X.c(jwt, cn), cC), cs));
await storage.write(key: BoxName.jwt, value: X.c(X.c(X.c(jwt, cn), cC), cs));
// await AppInitializer().getKey();
@@ -334,11 +334,11 @@ class CRUD {
Future<dynamic> postWallet(
{required String link, Map<String, dynamic>? payload}) async {
var s = await getJwtWallet();
Log.print('jwt: ${s}');
Log.print('jwt: $s');
final hmac = box.read(BoxName.hmac);
Log.print('hmac: ${hmac}');
Log.print('hmac: $hmac');
var url = Uri.parse(link);
Log.print('url: ${url}');
Log.print('url: $url');
// إضافة الـ HMAC للـ payload لزيادة التوافقية
if (payload != null && hmac != null) {
@@ -389,9 +389,9 @@ class CRUD {
link: AppLink.send_whatsapp_message,
payload: {'receiver': to, 'message': message});
if (res != 'failure') {
Get.snackbar('Success', 'Message sent successfully');
mySnackbarSuccess('Message sent successfully');
} else {
Get.snackbar('Error', 'Failed to send message');
mySnackbarError('Failed to send message');
}
}
@@ -399,7 +399,6 @@ class CRUD {
required String channelName,
required String uid,
}) async {
var uid = box.read(BoxName.phone) ?? box.read(BoxName.phoneDriver);
var res = await _client.get(
Uri.parse(
'https://repulsive-pig-rugby-shirt.cyclic.app/token?channelName=$channelName'),
@@ -450,15 +449,6 @@ class CRUD {
}
Future allMethodForAI(String prompt, driverID, imagePath) async {
// await ImageController().choosImage(linkPHP, imagePath);
Future.delayed(const Duration(seconds: 2));
var extractedString = await arabicTextExtractByVisionAndAI(
imagePath: imagePath, driverID: driverID);
var json = jsonDecode(extractedString);
var textValues = getAllTextValuesWithLineNumbers(json);
// List<String> textValues = getAllTextValues(json);
// await AI().geminiAiExtraction(prompt, textValues);
}
Map<String, List<Map<String, String>>> getAllTextValuesWithLineNumbers(
@@ -616,7 +606,7 @@ class CRUD {
"receiver": phone
});
var res = await _client.post(
await _client.post(
Uri.parse(AppLink.sendSms),
body: body,
headers: headers,

View File

@@ -12,7 +12,7 @@ import '../../print.dart';
class DeviceHelper {
static Future<String> getDeviceFingerprint() async {
final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
var deviceData;
Map<String, dynamic> deviceData;
try {
if (Platform.isAndroid) {
@@ -58,9 +58,6 @@ class SecurityHelper {
bool isNotTrust = false;
bool isJailBroken = false;
bool isRealDevice = true;
bool isOnExternalStorage = false;
bool checkForIssues = false;
bool isDevMode = false;
bool isTampered = false;
String bundleId = "";
@@ -68,15 +65,6 @@ class SecurityHelper {
isNotTrust = await JailbreakRootDetection.instance.isNotTrust;
isJailBroken = await JailbreakRootDetection.instance.isJailBroken;
isRealDevice = await JailbreakRootDetection.instance.isRealDevice;
isOnExternalStorage =
await JailbreakRootDetection.instance.isOnExternalStorage;
List<JailbreakIssue> issues =
await JailbreakRootDetection.instance.checkForIssues;
checkForIssues = issues.isNotEmpty;
isDevMode = await JailbreakRootDetection.instance.isDevMode;
PackageInfo packageInfo = await PackageInfo.fromPlatform();
bundleId = packageInfo.packageName;
if (bundleId.isNotEmpty) {

View File

@@ -26,8 +26,6 @@ class DigitObscuringFormatter extends TextInputFormatter {
TextSelection updateCursorPosition(
String maskedText, TextSelection currentSelection) {
final cursorPosition = currentSelection.baseOffset;
final cursorOffset =
currentSelection.extentOffset - currentSelection.baseOffset;
final totalDigits = maskedText.length;
const visibleDigits = 4;
final hiddenDigits = totalDigits - visibleDigits * 2;

View File

@@ -4,8 +4,6 @@ import 'package:secure_string_operations/secure_string_operations.dart';
import '../../constant/char_map.dart';
import '../../env/env.dart';
import '../../main.dart';
import '../../print.dart';
class EncryptionHelper {
static EncryptionHelper? _instance;

View File

@@ -10,6 +10,7 @@ import '../../constant/style.dart';
import '../../main.dart';
import '../../views/widgets/elevated_btn.dart';
import '../../views/widgets/my_textField.dart';
import '../../views/widgets/snackbar.dart';
import 'crud.dart';
class LogOutController extends GetxController {
@@ -20,12 +21,11 @@ class LogOutController extends GetxController {
Future deleteMyAccountDriver(String id) async {
await CRUD().post(link: AppLink.removeUser, payload: {'id': id}).then(
(value) => Get.snackbar('Deleted'.tr, 'Your Account is Deleted',
backgroundColor: AppColor.redColor));
(value) => mySnackbarWarning('Your Account is Deleted'.tr));
}
checkBeforeDelete() async {
var res = await CRUD().post(
await CRUD().post(
link: AppLink.deletecaptainAccounr,
payload: {'id': box.read(BoxName.driverID)}).then((value) => exit(0));
}
@@ -88,7 +88,7 @@ class LogOutController extends GetxController {
),
ElevatedButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(AppColor.redColor),
backgroundColor: WidgetStateProperty.all(AppColor.redColor),
),
onPressed: () {
// box.remove(BoxName.agreeTerms);
@@ -131,7 +131,7 @@ class LogOutController extends GetxController {
),
ElevatedButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(AppColor.redColor),
backgroundColor: WidgetStateProperty.all(AppColor.redColor),
),
onPressed: () {
// box.remove(BoxName.agreeTerms);
@@ -172,9 +172,7 @@ class LogOutController extends GetxController {
'email': box.read(BoxName.email),
});
} else {
Get.snackbar('Email Wrong'.tr, 'Email you inserted is Wrong.'.tr,
snackPosition: SnackPosition.BOTTOM,
backgroundColor: AppColor.redColor);
mySnackbarError('Email you inserted is Wrong.'.tr);
}
}
}

View File

@@ -1,7 +1,5 @@
import 'dart:async';
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';

View File

@@ -5,7 +5,6 @@ import 'package:get/get.dart';
import 'package:http/http.dart' as http;
import 'package:image_cropper/image_cropper.dart';
import 'package:image_picker/image_picker.dart';
import 'package:path/path.dart';
import 'package:image/image.dart' as img;
import 'package:path_provider/path_provider.dart' as path_provider;
@@ -16,6 +15,7 @@ import '../../constant/colors.dart';
import '../../constant/info.dart';
import '../../main.dart';
import '../../print.dart';
import '../../views/widgets/snackbar.dart';
import 'encrypt_decrypt.dart';
class ImageController extends GetxController {
@@ -141,7 +141,7 @@ class ImageController extends GetxController {
File compressedImage = await compressImage(processedImage);
print('link =$link');
Log.print('link: ${link}');
Log.print('link: $link');
await uploadImage(
compressedImage,
@@ -153,8 +153,7 @@ class ImageController extends GetxController {
);
} catch (e) {
print('Error in choosImage: $e');
Get.snackbar('Image Upload Failed'.tr, e.toString(),
backgroundColor: AppColor.redColor);
mySnackbarError('Image Upload Failed'.tr);
} finally {
isloading = false;
update();
@@ -229,8 +228,7 @@ class ImageController extends GetxController {
link,
);
} catch (e) {
Get.snackbar('Image Upload Failed'.tr, e.toString(),
backgroundColor: AppColor.redColor);
mySnackbarError('Image Upload Failed'.tr);
} finally {
isloading = false;
update();
@@ -243,7 +241,7 @@ class ImageController extends GetxController {
'POST',
Uri.parse(link),
);
Log.print('request: ${request}');
Log.print('request: $request');
var length = await file.length();
var stream = http.ByteStream(file.openRead());
final headers = {
@@ -251,14 +249,8 @@ class ImageController extends GetxController {
'Bearer ${r(box.read(BoxName.jwt)).split(AppInformation.addd)[0]}',
// 'X-HMAC-Auth': '${box.read(BoxName.hmac)}',
};
Log.print('headers: ${headers}');
Log.print('headers: $headers');
var multipartFile = http.MultipartFile(
'image',
stream,
length,
filename: basename(file.path),
);
request.headers.addAll(headers);
// Set the file name to the driverID
@@ -278,8 +270,7 @@ class ImageController extends GetxController {
if (res.statusCode == 200) {
Log.print('jsonDecode(res.body): ${jsonDecode(res.body)}');
if (jsonDecode(res.body)['status'] == 'Image uploaded successfully!') {
Get.snackbar('Success'.tr, 'Image uploaded successfully!'.tr,
backgroundColor: AppColor.greenColor);
mySnackbarSuccess('Image uploaded successfully!'.tr);
}
return jsonDecode(res.body);
} else {
@@ -330,8 +321,7 @@ class ImageController extends GetxController {
link,
);
} catch (e) {
Get.snackbar('Image Upload Failed'.tr, e.toString(),
backgroundColor: AppColor.redColor);
mySnackbarError('Image Upload Failed'.tr);
} finally {
isloading = false;
update();
@@ -346,12 +336,6 @@ class ImageController extends GetxController {
var length = await file.length();
var stream = http.ByteStream(file.openRead());
var multipartFile = http.MultipartFile(
'image',
stream,
length,
filename: basename(file.path),
);
request.headers.addAll({
'Authorization':
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials.toString()))}',

View File

@@ -1,10 +1,9 @@
import 'dart:convert';
import 'package:get/get.dart';
import 'package:siro_admin/constant/colors.dart';
import '../../constant/links.dart';
import '../firebase/firbase_messge.dart';
import '../../views/widgets/snackbar.dart';
import 'crud.dart';
class WalletController extends GetxController {
@@ -35,11 +34,9 @@ class WalletController extends GetxController {
// token, // Access token correctly
// 'ding.wav',
// );
Get.snackbar('success', 'addPaymentToDriver',
backgroundColor: AppColor.greenColor);
mySnackbarSuccess('addPaymentToDriver');
} else {
Get.snackbar('error', 'addPaymentToDriver',
backgroundColor: AppColor.redColor);
mySnackbarError('addPaymentToDriver');
}
}
@@ -68,10 +65,9 @@ class WalletController extends GetxController {
'phone': phone,
});
if (res != 'failure') {
Get.snackbar('success', 'addDrivergift300',
backgroundColor: AppColor.greenColor);
mySnackbarSuccess('addDrivergift300');
} else {
Get.snackbar('error', res, backgroundColor: AppColor.redColor);
mySnackbarError(res);
}
}
@@ -86,11 +82,9 @@ class WalletController extends GetxController {
'driverId': driverID.toString(),
});
if (res != 'failure') {
Get.snackbar('success', 'addSeferWallet',
backgroundColor: AppColor.greenColor);
mySnackbarSuccess('addSeferWallet');
} else {
Get.snackbar('error', 'addSeferWallet',
backgroundColor: AppColor.redColor);
mySnackbarError('addSeferWallet');
}
}
}