25-10-11/1

This commit is contained in:
Hamza-Ayed
2025-11-06 12:29:17 +03:00
parent 14484fcd8f
commit a69e4c6912
46 changed files with 14145 additions and 13529 deletions

View File

@@ -10,6 +10,8 @@ import 'package:sefer_driver/views/home/on_boarding_page.dart';
import '../../constant/box_name.dart';
import '../../main.dart';
import '../../print.dart';
import '../functions/encrypt_decrypt.dart';
import '../functions/secure_storage.dart';
// Assuming you have a home page to navigate to after successful login.
// If not, you might need to adjust the navigation target.
@@ -92,33 +94,46 @@ class SplashScreenController extends GetxController
/// is expected to be handled by an internal process (like login).
Future<Widget?> _getNavigationTarget() async {
try {
final onBoardingShown = box.read(BoxName.onBoarding) != null;
if (!onBoardingShown) {
return OnBoardingPage();
}
// ... (التحقق من OnBoarding)
final isDriverDataAvailable = box.read(BoxName.phoneDriver) != null;
final isPhoneVerified = box.read(BoxName.phoneVerified).toString() == '1';
// final isPhoneVerified = box.read(BoxName.phoneVerified).toString() == '1'; // <-- ⛔️ تم حذف هذا السطر
if (isDriverDataAvailable && isPhoneVerified) {
Log.print('Attempting to log in with stored credentials...');
final loginController = Get.put(LoginDriverController());
final loginController = Get.put(LoginDriverController());
// Assume loginWithGoogleCredential handles its own navigation on success.
// ✅ --- (الحل) ---
// تم حذف التحقق من "isPhoneVerified"
// هذا يسمح لـ "loginWithGoogleCredential" بتحديد الحالة والتوجيه الصحيح
// (إلى Home أو DriverVerificationScreen أو PhoneNumberScreen)
if (isDriverDataAvailable) {
Log.print('المستخدم مسجل. جارٍ تهيئة الجلسة...');
// الخطوة 1: ضمان جلب الـ JWT أولاً
// (هذا هو الكود الذي كان في main.dart)
final AppInitializer initializer = AppInitializer();
await initializer.initializeApp();
await EncryptionHelper.initialize();
// انتظر حتى ينتهي جلب الـ JWT
Log.print('تم جلب الـ JWT. جارٍ تسجيل الدخول ببيانات جوجل...');
// الخطوة 2: الآن قم بتسجيل الدخول وأنت متأكد أن الـ JWT موجود
// يجب تعديل "loginWithGoogleCredential" لتعيد "bool" (نجاح/فشل)
await loginController.loginWithGoogleCredential(
box.read(BoxName.driverID).toString(),
box.read(BoxName.emailDriver).toString(),
);
// *** FIX: Return null to signify that navigation has been handled. ***
return null;
// إذا نجح تسجيل الدخول (سواء لـ Home أو لـ DriverVerification)
// فإن "loginWithGoogleCredential" تقوم بالتوجيه بنفسها
// ونحن نُرجع "null" هنا لمنع "SplashScreen" من التوجيه مرة أخرى.
} else {
Log.print('No valid driver session found. Navigating to login page.');
Log.print('مستخدم غير مسجل. اذهب لصفحة الدخول.');
return LoginCaptin();
}
} catch (e) {
Log.print("Error during navigation logic: $e");
// Fallback to the login page in case of any error.
// أي خطأ فادح (مثل خطأ في جلب الـ JWT) سيعيدك للدخول
return LoginCaptin();
}
}