26-1-20/1

This commit is contained in:
Hamza-Ayed
2026-01-20 10:11:10 +03:00
parent 374f9e9bf3
commit 3c0ae4cf2f
53 changed files with 89652 additions and 6861 deletions

View File

@@ -9,6 +9,7 @@ import 'package:sefer_driver/views/home/on_boarding_page.dart';
import '../../constant/box_name.dart';
import '../../main.dart';
import '../../onbording_page.dart';
import '../../print.dart';
import '../functions/encrypt_decrypt.dart';
import '../functions/secure_storage.dart';
@@ -94,46 +95,33 @@ class SplashScreenController extends GetxController
/// is expected to be handled by an internal process (like login).
Future<Widget?> _getNavigationTarget() async {
try {
// ... (التحقق من OnBoarding)
// 1) Onboarding
final doneOnboarding = box.read(BoxName.onBoarding) == 'yes';
if (!doneOnboarding) {
// الأفضل: رجّع الواجهة بدل Get.off داخل الدالة
return OnBoardingPage();
}
// 2) Login
final isDriverDataAvailable = box.read(BoxName.phoneDriver) != null;
// final isPhoneVerified = box.read(BoxName.phoneVerified).toString() == '1'; // <-- ⛔️ تم حذف هذا السطر
if (!isDriverDataAvailable) {
return LoginCaptin();
}
final loginController = Get.put(LoginDriverController());
// ✅ --- (الحل) ---
// تم حذف التحقق من "isPhoneVerified"
// هذا يسمح لـ "loginWithGoogleCredential" بتحديد الحالة والتوجيه الصحيح
// (إلى Home أو DriverVerificationScreen أو PhoneNumberScreen)
if (isDriverDataAvailable) {
Log.print('المستخدم مسجل. جارٍ تهيئة الجلسة...');
final AppInitializer initializer = AppInitializer();
await initializer.initializeApp();
await EncryptionHelper.initialize();
// الخطوة 1: ضمان جلب الـ JWT أولاً
// (هذا هو الكود الذي كان في main.dart)
final AppInitializer initializer = AppInitializer();
await initializer.initializeApp();
await EncryptionHelper.initialize();
// انتظر حتى ينتهي جلب الـ JWT
await loginController.loginWithGoogleCredential(
box.read(BoxName.driverID).toString(),
box.read(BoxName.emailDriver).toString(),
);
Log.print('تم جلب الـ JWT. جارٍ تسجيل الدخول ببيانات جوجل...');
// الخطوة 2: الآن قم بتسجيل الدخول وأنت متأكد أن الـ JWT موجود
// يجب تعديل "loginWithGoogleCredential" لتعيد "bool" (نجاح/فشل)
await loginController.loginWithGoogleCredential(
box.read(BoxName.driverID).toString(),
box.read(BoxName.emailDriver).toString(),
);
// إذا نجح تسجيل الدخول (سواء لـ Home أو لـ DriverVerification)
// فإن "loginWithGoogleCredential" تقوم بالتوجيه بنفسها
// ونحن نُرجع "null" هنا لمنع "SplashScreen" من التوجيه مرة أخرى.
} else {
Log.print('مستخدم غير مسجل. اذهب لصفحة الدخول.');
return LoginCaptin();
}
return null; // لأن loginWithGoogleCredential يوجّه
} catch (e) {
Log.print("Error during navigation logic: $e");
// أي خطأ فادح (مثل خطأ في جلب الـ JWT) سيعيدك للدخول
return LoginCaptin();
}
}