updates & fixes

updare-to-3.32.sultan
haroon amjad 9 months ago
parent 1aab92b50a
commit 4b5a3af4cd

@ -45,3 +45,4 @@ const IS_COVID_CONSENT_SHOWN = 'IS_COVID_CONSENT_SHOWN';
const REGISTER_INFO_DUBAI ='register-info-dubai'; const REGISTER_INFO_DUBAI ='register-info-dubai';
const IS_LAST_APPOINTMENT_RATE_SHOWN ='is-last-appointment-rate-shown'; const IS_LAST_APPOINTMENT_RATE_SHOWN ='is-last-appointment-rate-shown';
const PATIENT_OCCUPATION_LIST ='patient-occupation-list'; const PATIENT_OCCUPATION_LIST ='patient-occupation-list';
const HAS_ENABLED_QUICK_LOGIN ='has-enabled-quick-login';

@ -23,8 +23,7 @@ import 'package:hmg_patient_app/pages/login/welcome.dart';
import 'package:hmg_patient_app/pages/medical/medical_profile_page_new.dart'; import 'package:hmg_patient_app/pages/medical/medical_profile_page_new.dart';
import 'package:hmg_patient_app/services/authentication/auth_provider.dart'; import 'package:hmg_patient_app/services/authentication/auth_provider.dart';
import 'package:hmg_patient_app/services/clinic_services/get_clinic_service.dart'; import 'package:hmg_patient_app/services/clinic_services/get_clinic_service.dart';
import 'package:hmg_patient_app/services/family_files/family_files_provider.dart' import 'package:hmg_patient_app/services/family_files/family_files_provider.dart' as family;
as family;
import 'package:hmg_patient_app/services/livecare_services/livecare_provider.dart'; import 'package:hmg_patient_app/services/livecare_services/livecare_provider.dart';
import 'package:hmg_patient_app/services/payfort_services/payfort_view_model.dart'; import 'package:hmg_patient_app/services/payfort_services/payfort_view_model.dart';
import 'package:hmg_patient_app/services/robo_search/event_provider.dart'; import 'package:hmg_patient_app/services/robo_search/event_provider.dart';
@ -43,6 +42,7 @@ import 'package:hmg_patient_app/widgets/others/app_scaffold_widget.dart';
import 'package:hmg_patient_app/widgets/others/not_auh_page.dart'; import 'package:hmg_patient_app/widgets/others/not_auh_page.dart';
import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
// import 'package:flutter_app_icon_badge/flutter_app_icon_badge.dart'; // import 'package:flutter_app_icon_badge/flutter_app_icon_badge.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
@ -87,6 +87,7 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
var themeNotifier; var themeNotifier;
DateTime? currentBackPressTime; DateTime? currentBackPressTime;
bool authenticated = false; bool authenticated = false;
// SignalRUtil signalRUtil; // SignalRUtil signalRUtil;
// bool isDoneQuickLogin =false; // bool isDoneQuickLogin =false;
late ToDoCountProviderModel toDoProvider; late ToDoCountProviderModel toDoProvider;
@ -109,6 +110,7 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
bool isTalking = false; bool isTalking = false;
var sharedPref = new AppSharedPreferences(); var sharedPref = new AppSharedPreferences();
// //
// var data = { // var data = {
// "AppointmentNo": "2016059247", // "AppointmentNo": "2016059247",
@ -383,8 +385,6 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
builder: (BuildContext context) => SavedLogin(savedData), builder: (BuildContext context) => SavedLogin(savedData),
), ),
); );
} else { } else {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
authService.selectDeviceImei(DEVICE_TOKEN).then((value) async { authService.selectDeviceImei(DEVICE_TOKEN).then((value) async {
@ -481,7 +481,6 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
authService.getDashboard().then((value) => { authService.getDashboard().then((value) => {
if (value != null) if (value != null)
{ {
setState(() { setState(() {
notificationCount = notificationCount =
value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString(); value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString();
@ -684,11 +683,9 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
authService.getDashboard().then((value) async { authService.getDashboard().then((value) async {
setState(() { setState(() {
if (value != null) { if (value != null) {
notificationCount = value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString(); notificationCount = value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString();
model.setState(model.count, model.ancillaryCount, true, notificationCount); model.setState(model.count, model.ancillaryCount, true, notificationCount);
sharedPref.setString(NOTIFICATION_COUNT, notificationCount); sharedPref.setString(NOTIFICATION_COUNT, notificationCount);
} }
}); });
// if (await AppSharedPreferences().getBool(IS_LAST_APPOINTMENT_RATE_SHOWN) == null || !await AppSharedPreferences().getBool(IS_LAST_APPOINTMENT_RATE_SHOWN)) { // if (await AppSharedPreferences().getBool(IS_LAST_APPOINTMENT_RATE_SHOWN) == null || !await AppSharedPreferences().getBool(IS_LAST_APPOINTMENT_RATE_SHOWN)) {
@ -735,13 +732,16 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
sharedPref.setString(IS_COVID_CONSENT_SHOWN, "true"); sharedPref.setString(IS_COVID_CONSENT_SHOWN, "true");
} }
checkLastLoginStatus(AuthenticatedUser user, String deviceToken) async{ checkLastLoginStatus(AuthenticatedUser user, String deviceToken) async {
int lastLoginStatus = await sharedPref.getInt(LAST_LOGIN) != null ? await sharedPref.getInt(LAST_LOGIN) : 1; int lastLoginStatus = await sharedPref.getInt(LAST_LOGIN) != null ? await sharedPref.getInt(LAST_LOGIN) : 1;
if(lastLoginStatus == 1 || lastLoginStatus == 4){ if (lastLoginStatus == 1 || lastLoginStatus == 4) {
showQuickLoginBottomSheet(context, user, deviceToken,false); if (await sharedPref.getBool(HAS_ENABLED_QUICK_LOGIN) == null || !await sharedPref.getBool(HAS_ENABLED_QUICK_LOGIN)) {
showQuickLoginBottomSheet(context, user, deviceToken, false);
} }
// showQuickLoginBottomSheet(context, user, deviceToken, false);
}
} }
void showQuickLoginBottomSheet(BuildContext context, AuthenticatedUser user, String deviceToken, bool isDone) { void showQuickLoginBottomSheet(BuildContext context, AuthenticatedUser user, String deviceToken, bool isDone) {
@ -754,15 +754,20 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
child: Padding( child: Padding(
padding: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom), padding: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
child: QuickLoginBottomSheet( child: QuickLoginBottomSheet(
isDone:isDone, isDone: isDone,
onPressed: (){ onPressed: () {
sharedPref.setBool(HAS_ENABLED_QUICK_LOGIN, true);
loginWithFingerPrintFace(3, 1, user, deviceToken); loginWithFingerPrintFace(3, 1, user, deviceToken);
},), },
), ),
), ),
); ),
).then((value) {
sharedPref.setBool(HAS_ENABLED_QUICK_LOGIN, value);
});
} }
loginWithFingerPrintFace(type, int isActive, AuthenticatedUser user, String deviceToken ) async {
loginWithFingerPrintFace(type, int isActive, AuthenticatedUser user, String deviceToken) async {
try { try {
authenticated = await auth.authenticate( authenticated = await auth.authenticate(
localizedReason: 'Scan your fingerprint to authenticate', localizedReason: 'Scan your fingerprint to authenticate',
@ -816,5 +821,4 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
await sharedPref.setInt(LAST_LOGIN, lastLogin); await sharedPref.setInt(LAST_LOGIN, lastLogin);
authService.registeredAuthenticatedUser(data, deviceToken, 0, 0).then((res) => {}); authService.registeredAuthenticatedUser(data, deviceToken, 0, 0).then((res) => {});
} }
} }

@ -762,6 +762,7 @@ class _RegisterNew extends State<RegisterNew> {
final isHijriDate = isHijri == 1; final isHijriDate = isHijri == 1;
final dobString = isHijriDate ? selectedDOB!.toString() : dateFormat.format(selectedDOB!); final dobString = isHijriDate ? selectedDOB!.toString() : dateFormat.format(selectedDOB!);
var req; var req;
GifLoaderDialogUtils.showMyDialog(context);
if (skipRegistration) { if (skipRegistration) {
req = getCommonRequest(type: type); req = getCommonRequest(type: type);
} else { } else {

@ -217,7 +217,7 @@ class _SavedLogin extends State<SavedLogin> {
widget.savedLoginData.logInType != null && widget.savedLoginData.logInType != 1 widget.savedLoginData.logInType != null && widget.savedLoginData.logInType != 1
? Column( ? Column(
children: [ children: [
CustomButton( widget.savedLoginData.logInType !=1 ? CustomButton(
text: TranslationBase.of(context).loginByOTP, text: TranslationBase.of(context).loginByOTP,
onPressed: () { onPressed: () {
widget.savedLoginData.logInType = 1; widget.savedLoginData.logInType = 1;
@ -230,11 +230,11 @@ class _SavedLogin extends State<SavedLogin> {
borderWidth: 2, borderWidth: 2,
padding: EdgeInsets.fromLTRB(0, 14, 0, 14), padding: EdgeInsets.fromLTRB(0, 14, 0, 14),
icon: "assets/images/svg/password-validation.svg", icon: "assets/images/svg/password-validation.svg",
), ) : Container(),
SizedBox( SizedBox(
height: 20, height: 20,
), ),
CustomButton( widget.savedLoginData.logInType !=4 ? CustomButton(
text: "${TranslationBase.of(context).loginBy} ${getType(4, context)}", text: "${TranslationBase.of(context).loginBy} ${getType(4, context)}",
onPressed: () { onPressed: () {
widget.savedLoginData.logInType = 4; widget.savedLoginData.logInType = 4;
@ -247,7 +247,7 @@ class _SavedLogin extends State<SavedLogin> {
borderWidth: 2, borderWidth: 2,
padding: EdgeInsets.fromLTRB(0, 14, 0, 14), padding: EdgeInsets.fromLTRB(0, 14, 0, 14),
icon: "assets/images/svg/whatsapp.svg", icon: "assets/images/svg/whatsapp.svg",
), ) : Container(),
], ],
) )
: CustomButton( : CustomButton(
@ -703,6 +703,7 @@ class _SavedLogin extends State<SavedLogin> {
phoneController!.text, phoneController!.text,
(code) { (code) {
checkActivationCode(code, type, loginToken, onWrongActivationCode: (String? message) { checkActivationCode(code, type, loginToken, onWrongActivationCode: (String? message) {
smsOtp.clearOTPInput();
context.showBottomSheet( context.showBottomSheet(
child: ExceptionBottomSheet( child: ExceptionBottomSheet(
message: message.toString(), message: message.toString(),

@ -6,8 +6,6 @@ import 'package:hmg_patient_app/uitl/translations_delegate_base.dart';
import 'package:hmg_patient_app/uitl/utils.dart'; import 'package:hmg_patient_app/uitl/utils.dart';
import 'package:hmg_patient_app/widgets/buttons/defaultButton.dart'; import 'package:hmg_patient_app/widgets/buttons/defaultButton.dart';
class QuickLoginBottomSheet extends StatefulWidget { class QuickLoginBottomSheet extends StatefulWidget {
final VoidCallback onPressed; final VoidCallback onPressed;
final bool isDone; final bool isDone;
@ -17,8 +15,8 @@ class QuickLoginBottomSheet extends StatefulWidget {
@override @override
_QuickLoginBottomSheet createState() => _QuickLoginBottomSheet(); _QuickLoginBottomSheet createState() => _QuickLoginBottomSheet();
} }
class _QuickLoginBottomSheet extends State<QuickLoginBottomSheet> {
class _QuickLoginBottomSheet extends State<QuickLoginBottomSheet> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
@ -30,18 +28,23 @@ class _QuickLoginBottomSheet extends State<QuickLoginBottomSheet> {
), ),
), ),
padding: const EdgeInsets.all(24), padding: const EdgeInsets.all(24),
child: Column( mainAxisSize: MainAxisSize.min, child: Column(
crossAxisAlignment: CrossAxisAlignment.center,children: [ mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
widget.isDone ? Column(children: [ widget.isDone
? Column(
children: [
Row( Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ InkWell( children: [
InkWell(
onTap: () { onTap: () {
Navigator.of(context).pop(); Navigator.pop(context, true);
}, },
child: SvgPicture.asset("assets/images/svg/cross-circle.svg", width: 24, height: 24)),],), child: SvgPicture.asset("assets/images/svg/cross-circle.svg", width: 24, height: 24)),
],
),
Utils.showLottie(context: context, assetPath: 'assets/animations/lottie/checkmark.json', width: 120, height: 120, repeat: true), Utils.showLottie(context: context, assetPath: 'assets/animations/lottie/checkmark.json', width: 120, height: 120, repeat: true),
Text( Text(
TranslationBase.of(context).allSet, TranslationBase.of(context).allSet,
@ -50,16 +53,18 @@ class _QuickLoginBottomSheet extends State<QuickLoginBottomSheet> {
fontSize: 16, fontSize: 16,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: Colors.black, color: Colors.black,
), ),
), ),
],
],) : Column( )
: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Image.asset(
Image.asset("assets/images/lock-icon.png", height: 101,), "assets/images/lock-icon.png",
height: 101,
),
const SizedBox(height: 10), const SizedBox(height: 10),
Text( Text(
TranslationBase.of(context).enableQuickLogin, TranslationBase.of(context).enableQuickLogin,
@ -69,9 +74,7 @@ class _QuickLoginBottomSheet extends State<QuickLoginBottomSheet> {
color: Colors.black, color: Colors.black,
), ),
), ),
const SizedBox(height: 5), const SizedBox(height: 5),
// Description // Description
Text( Text(
TranslationBase.of(context).enableMsg, TranslationBase.of(context).enableMsg,
@ -81,46 +84,47 @@ class _QuickLoginBottomSheet extends State<QuickLoginBottomSheet> {
height: 1.5, height: 1.5,
), ),
), ),
const SizedBox(height: 24), const SizedBox(height: 24),
// Buttons // Buttons
Row( Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
Expanded(child: Expanded(
CustomButton( child: CustomButton(
text:TranslationBase.of(context).enableQuickLogin, text: TranslationBase.of(context).enableQuickLogin,
onPressed:widget.onPressed, onPressed: () {
backgroundColor:Color(0xffED1C2B), widget.onPressed();
borderColor:Color(0xffED1C2B), },
backgroundColor: Color(0xffED1C2B),
borderColor: Color(0xffED1C2B),
textColor: Colors.white, textColor: Colors.white,
icon: "assets/images/svg/apple-finder.svg", icon: "assets/images/svg/apple-finder.svg",
)), )),
], ],
), ),
SizedBox(height: 16,), SizedBox(
height: 16,
),
Row( Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
Expanded(child: Expanded(
child: CustomButton(
CustomButton( text: TranslationBase.of(context).notNow,
text:TranslationBase.of(context).notNow, onPressed: () {
onPressed: (){ Navigator.pop(context);}, Navigator.pop(context, true);
backgroundColor:Color(0xffFEE9EA), },
borderColor:Color(0xffFEE9EA), backgroundColor: Color(0xffFEE9EA),
borderColor: Color(0xffFEE9EA),
textColor: Colors.red, textColor: Colors.red,
// icon: "assets/images/svg/apple-finder.svg", // icon: "assets/images/svg/apple-finder.svg",
)), )),
], ],
), ),
], ],
)],), )
],
),
); );
} }
} }
Loading…
Cancel
Save