25-10-11/1
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user