diff --git a/lib/core/utils/push_notification_handler.dart b/lib/core/utils/push_notification_handler.dart index c82c608d..23cb4f51 100644 --- a/lib/core/utils/push_notification_handler.dart +++ b/lib/core/utils/push_notification_handler.dart @@ -58,6 +58,10 @@ _incomingCall(Map data) async { String roomID = data['session_id'] ?? ''; String callTypeID = data['AppointmentNo'] ?? ''; + print('🔍 Extracted from notification data:'); + print(' - roomID (session_id): "$roomID"'); + print(' - callTypeID (AppointmentNo): "$callTypeID"'); + // Generate unique call ID var _currentUuid = Uuid().v4(); _currentCallId = _currentUuid; @@ -70,6 +74,11 @@ _incomingCall(Map data) async { await Utils.saveStringFromPrefs(CacheConst.callTypeID, callTypeID); await Utils.saveBoolFromPrefs(CacheConst.isAppOpenedFromCall, true); + print('💾 Saved to cache:'); + print(' - CacheConst.zoomRoomID: "$roomID"'); + print(' - CacheConst.callTypeID: "$callTypeID"'); + print(' - CacheConst.isAppOpenedFromCall: true'); + WidgetsFlutterBinding.ensureInitialized(); int callKitType = callTypeID == '2' ? 0 : 1; diff --git a/lib/features/authentication/authentication_view_model.dart b/lib/features/authentication/authentication_view_model.dart index eb922652..31618918 100644 --- a/lib/features/authentication/authentication_view_model.dart +++ b/lib/features/authentication/authentication_view_model.dart @@ -1120,7 +1120,7 @@ class AuthenticationViewModel extends ChangeNotifier { _dialogService.showPhoneNumberPickerSheet( // label: "Where would you like to receive OTP?", label: LocaleKeys.receiveOtpToast.tr(), - message: _appState.isArabic() ? "يرجى الاختيار من الخيارات أدناه لاستلام رمز التحقق." "Please select from the below options to receive OTP.", + message: _appState.isArabic() ? "يرجى الاختيار من الخيارات أدناه لاستلام رمز التحقق.": "Please select from the below options to receive OTP.", onSMSPress: () { checkUserAuthentication(otpTypeEnum: OTPTypeEnum.sms); }, diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart index 22cca7e4..61eff14b 100644 --- a/lib/generated/locale_keys.g.dart +++ b/lib/generated/locale_keys.g.dart @@ -1767,6 +1767,10 @@ abstract class LocaleKeys { static const locationServicesDisabled = 'locationServicesDisabled'; static const selectDateTimeKey = 'selectDateTimeKey'; static const medicalKey = 'medicalKey'; + static const doctors2 = 'doctors2'; + static const illurgyInfomation = 'illurgyInfomation'; + static const vaccineInfomation = 'vaccineInfomation'; + static const approvals1 = 'approvals1'; static const convertBloodcholesterolInfo = 'convertBloodcholesterolInfo'; static const carbsAlert = 'carbsAlert'; static const bodyFatAlert = 'bodyFatAlert'; @@ -1783,9 +1787,5 @@ abstract class LocaleKeys { static const selectBloodDonationCity = 'selectBloodDonationCity'; static const selectBloodDonationGender = 'selectBloodDonationGender'; static const selectBloodType = 'selectBloodType'; - static const doctors2 = 'doctors2'; - static const illurgyInfomation = 'illurgyInfomation'; - static const vaccineInfomation = 'vaccineInfomation'; - static const approvals1 = 'approvals1'; } diff --git a/lib/splashPage.dart b/lib/splashPage.dart index 7fe97e6f..cf1ca7f4 100644 --- a/lib/splashPage.dart +++ b/lib/splashPage.dart @@ -185,13 +185,28 @@ class _SplashScreenState extends State { case Event.actionCallDecline: print('actionCallDecline Event Received: ------->'); - // Get session ID from cache - String sessionId = await Utils.getStringFromPrefs(CacheConst.zoomRoomID); - // - // // Update session status to 3 (declined by patient) - // if (sessionId.isNotEmpty) { + // Try to get session ID from event data first + String? sessionIdFromEvent = event.body['extra']?['roomID']; + + // Get session ID from cache as backup + String sessionIdFromCache = await Utils.getStringFromPrefs(CacheConst.zoomRoomID); + + // Use event data if available, otherwise use cache + String sessionId = (sessionIdFromEvent != null && sessionIdFromEvent.isNotEmpty) + ? sessionIdFromEvent + : sessionIdFromCache; + + print('🔍 Session ID from event: "$sessionIdFromEvent"'); + print('🔍 Session ID from cache: "$sessionIdFromCache"'); + print('🔍 Final session ID to use: "$sessionId"'); + + // Update session status to 3 (declined by patient) + if (sessionId.isNotEmpty) { + print('✅ Session ID found, calling API...'); await _updateSessionStatus(sessionId, 3, 'Patient'); - // } + } else { + print('⚠️ Session ID is empty, skipping API call'); + } await FlutterCallkitIncoming.endAllCalls(); GetIt.instance().remove(key: CacheConst.isAppOpenedFromCall); @@ -243,9 +258,9 @@ class _SplashScreenState extends State { print('📡 Updating session status - SessionID: $sessionId, Status: $sessionStatus, EndedBy: $sessionEndedBy'); final apiClient = getIt.get(); - String sessionID = await Utils.getStringFromPrefs(CacheConst.zoomRoomID); + Map requestBody = { - "Open_SessionID": sessionID, + "Open_SessionID": sessionId, "SessionStatus": sessionStatus, "SessionEndedBy": sessionEndedBy };