Updates & fixes

merge-update-with-lab-changes
haroon amjad 4 years ago
parent 8e27cfba9b
commit eb3f5b5cb5

@ -6,6 +6,8 @@
-keep class com.ejada.** { *; }
-keep class org.webrtc.** { *; }
-keep class com.builttoroam.devicecalendar.** { *; }
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions

@ -405,7 +405,7 @@ var UPDATE_COVID_QUESTIONNAIRE = 'Services/Doctors.svc/REST/COVID19_Questionnar
var CHANNEL = 3;
var GENERAL_ID = 'Cs2020@2016\$2958';
var IP_ADDRESS = '10.20.10.20';
var VERSION_ID = 8.4;
var VERSION_ID = 8.5;
var SETUP_ID = '91877';
var LANGUAGE = 2;
var PATIENT_OUT_SA = 0;

@ -25,6 +25,7 @@ class RequestSendRadReportEmail {
String to;
String tokenID;
double versionID;
int invoiceLineItemNo;
RequestSendRadReportEmail(
{this.channel,
@ -81,6 +82,7 @@ class RequestSendRadReportEmail {
to = json['To'];
tokenID = json['TokenID'];
versionID = json['VersionID'];
invoiceLineItemNo = json['InvoiceLineItemNo'];
}
Map<String, dynamic> toJson() {
@ -111,6 +113,7 @@ class RequestSendRadReportEmail {
data['To'] = this.to;
data['TokenID'] = this.tokenID;
data['VersionID'] = this.versionID;
data['InvoiceLineItemNo'] = this.invoiceLineItemNo;
return data;
}
}

@ -58,6 +58,7 @@ class RadiologyService extends BaseService {
_requestSendRadReportEmail.projectID = finalRadiology.projectID;
_requestSendRadReportEmail.clinicName = finalRadiology.clinicDescription;
_requestSendRadReportEmail.invoiceNo = finalRadiology.invoiceNo;
_requestSendRadReportEmail.invoiceLineItemNo = finalRadiology.invoiceLineItemNo;
_requestSendRadReportEmail.setupID = finalRadiology.setupID;
_requestSendRadReportEmail.doctorName = finalRadiology.doctorName;
_requestSendRadReportEmail.orderDate =

@ -32,6 +32,7 @@ class ProjectViewModel extends BaseViewModel {
String error = '';
dynamic searchvalue;
bool isLogin = false;
int laserSelectionDuration;
dynamic get searchValue => searchvalue;
@ -49,7 +50,6 @@ class ProjectViewModel extends BaseViewModel {
isLoginChild ? privilegeChildUser : privilegeChildUser;
List<LaserBodyPart> selectedBodyPartList = [];
int laserSelectionDuration = 0;
StreamSubscription subscription;

@ -213,17 +213,16 @@ class _NewCMCStepTowPageState extends State<NewCMCStepTowPage> {
longitude: longitude,
onPick: () {
isNeedToUpdate = true;
print("onPickonPick1");
},
);
},
));
if (isNeedToUpdate) {
print("onPickonPick2");
_selectedAddress = new AddressInfo();
_selectedAddress.address1 = widget.model.addressesList.last.address1;
showCurrentLocation = false;
setLatitudeAndLongitude();
setState(() {});
}
},
child: Padding(

@ -197,9 +197,10 @@ class _NewHomeHealthCareStepTowPageState extends State<NewHomeHealthCareStepTowP
longitude: longitude,
),
),
).then((value) {
).then((value) async {
print(value);
widget.model.getCustomerAddresses();
await widget.model.getCustomerAddresses();
setState(() {});
});
},
child: Padding(

@ -481,7 +481,7 @@ class _AnicllaryOrdersState extends State<AnicllaryOrdersDetails> with SingleTic
onBrowserExit(AppoitmentAllHistoryResultList appo, bool isPaymentMade) {
print("onBrowserExit Called!!!!");
if (isPaymentMade) checkPaymentStatus(appo);
checkPaymentStatus(appo);
}
checkPaymentStatus(AppoitmentAllHistoryResultList appo) {

@ -221,7 +221,7 @@ class ConfirmPaymentPage extends StatelessWidget {
onBrowserExit(AppoitmentAllHistoryResultList appo, bool isPaymentMade) {
print("onBrowserExit Called!!!!");
if (isPaymentMade) checkPaymentStatus(appo);
checkPaymentStatus(appo);
}
checkPaymentStatus(AppoitmentAllHistoryResultList appo) {

@ -65,7 +65,7 @@ class _BookConfirmState extends State<BookConfirm> {
@override
Widget build(BuildContext context) {
toDoProvider = Provider.of<ToDoCountProviderModel>(context);
projectViewModel = Provider.of<ProjectViewModel>(context);
projectViewModel = Provider.of(context);
return AppScaffold(
appBarTitle: widget.doctor.doctorTitle + " " + widget.doctor.name,
isShowDecPage: false,
@ -376,12 +376,16 @@ class _BookConfirmState extends State<BookConfirm> {
getPatientShare(context, String appointmentNo, int clinicID, int projectID, DoctorList docObject) {
widget.service.getPatientShare(appointmentNo, clinicID, projectID, context).then((res) {
projectViewModel.selectedBodyPartList.clear();
projectViewModel.laserSelectionDuration = 0;
print(res);
widget.patientShareResponse = new PatientShareResponse.fromJson(res);
navigateToBookSuccess(context, docObject, widget.patientShareResponse);
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(context);
// AppToast.showErrorToast(message: err);
projectViewModel.selectedBodyPartList.clear();
projectViewModel.laserSelectionDuration = 0;
navigateToHome(context);
print(err);
});

@ -592,12 +592,12 @@ class _BookSuccessState extends State<BookSuccess> {
}
onBrowserExit(AppoitmentAllHistoryResultList appo, bool isPaymentMade) {
if (isPaymentMade) checkPaymentStatus(appo);
checkPaymentStatus(appo);
}
checkPaymentStatus(AppoitmentAllHistoryResultList appo) {
String txn_ref;
String amount;
num amount;
String payment_method;
final currency = projectViewModel.user.outSA == 0 ? "sar" : 'aed';
GifLoaderDialogUtils.showMyDialog(context);
@ -625,7 +625,7 @@ class _BookSuccessState extends State<BookSuccess> {
}
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: err);
AppToast.showErrorToast(message: err.toString());
print(err);
});
}

@ -495,7 +495,7 @@ class _DoctorProfileState extends State<DoctorProfile> with TickerProviderStateM
void goToBookConfirm() async {
if (DocAvailableAppointments.areSlotsAvailable) {
if (await sharedPref.getObject(USER_PROFILE) != null) {
if (projectViewModel.isLogin) {
final timeSlot = DocAvailableAppointments.selectedAppoDateTime;
navigateToBookConfirm(context);
projectViewModel.analytics.appointment.book_appointment_review(appointment_type: 'regular', dateTime: timeSlot, doctor: widget.doctor);

@ -239,6 +239,7 @@ class _LaserClinicState extends State<LaserClinic> with SingleTickerProviderStat
result = LinkedHashSet<String>.from(arr).toList();
numAll = result.length;
projectViewModel.laserSelectionDuration = _duration;
navigateToSearchResults(context, doctorsList, _patientDoctorAppointmentListHospital);
} else {
AppToast.showErrorToast(message: res['ErrorEndUserMessage']);
@ -264,6 +265,7 @@ class _LaserClinicState extends State<LaserClinic> with SingleTickerProviderStat
int duration = 0;
if (_isFullBody) {
_duration = int.parse(fullBody.timeDuration);
projectViewModel.laserSelectionDuration = duration;
return _duration;
}

@ -14,13 +14,11 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/dragable_sheet.dart';
import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
class CovidPaymentSummary extends StatefulWidget {
@ -229,8 +227,7 @@ class _CovidPaymentSummaryState extends State<CovidPaymentSummary> {
widget.patientShareResponse.appointmentNo,
widget.patientShareResponse.clinicID,
widget.patientShareResponse.doctorID,
widget.selectedInstallmentPlan
);
widget.selectedInstallmentPlan);
}
onBrowserLoadStart(String url) {
@ -256,16 +253,7 @@ class _CovidPaymentSummaryState extends State<CovidPaymentSummary> {
onBrowserExit(AppoitmentAllHistoryResultList appo, bool isPaymentMade) {
print("onBrowserExit Called!!!!");
if (isPaymentMade) {
checkPaymentStatus(appo);
} else {
print("onBrowserExit Payment Not made");
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) => LandingPage()),
(Route<dynamic> route) => false,
);
}
checkPaymentStatus(appo);
}
checkPaymentStatus(AppoitmentAllHistoryResultList appo) {
@ -280,6 +268,11 @@ class _CovidPaymentSummaryState extends State<CovidPaymentSummary> {
} else {
GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: res['Response_Message']);
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) => LandingPage()),
(Route<dynamic> route) => false,
);
}
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(context);

@ -4,12 +4,32 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:flutter/material.dart';
import 'package:youtube_player_flutter/youtube_player_flutter.dart';
class NotificationsDetailsPage extends StatelessWidget {
class NotificationsDetailsPage extends StatefulWidget {
final GetNotificationsResponseModel notification;
NotificationsDetailsPage({this.notification});
@override
State<NotificationsDetailsPage> createState() => _NotificationsDetailsPageState();
}
class _NotificationsDetailsPageState extends State<NotificationsDetailsPage> {
YoutubePlayerController _controller;
@override
void initState() {
_controller = YoutubePlayerController(
initialVideoId: getVideoURL(),
flags: YoutubePlayerFlags(
autoPlay: true,
mute: true,
),
);
super.initState();
}
getDateForm(String date) {
DateTime d = DateUtil.convertStringToDate(date);
String monthName = DateUtil.getMonth(d.month).toString();
@ -27,6 +47,13 @@ class NotificationsDetailsPage extends StatelessWidget {
return monthName + ',${d.day},${d.year}, $hour';
}
String getVideoURL() {
String videoId;
videoId = YoutubePlayer.convertUrlToId(widget.notification.videoURL);
print(videoId); // BBAyRBTfsOU
return videoId;
}
@override
Widget build(BuildContext context) {
return AppScaffold(
@ -40,9 +67,9 @@ class NotificationsDetailsPage extends StatelessWidget {
padding: EdgeInsets.all(21),
children: [
Text(
DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(notification.createdOn)) +
DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(widget.notification.createdOn)) +
" " +
DateUtil.formatDateToTimeLang(DateUtil.convertStringToDate(notification.createdOn), false),
DateUtil.formatDateToTimeLang(DateUtil.convertStringToDate(widget.notification.createdOn), false),
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
@ -50,10 +77,18 @@ class NotificationsDetailsPage extends StatelessWidget {
letterSpacing: -0.64,
),
),
if (notification.messageTypeData.length != 0)
if (widget.notification.notificationType == "2")
Padding(
padding: const EdgeInsets.only(top: 18),
child: YoutubePlayer(
controller: _controller,
showVideoProgressIndicator: true,
),
),
if (widget.notification.messageTypeData.length != 0 && widget.notification.notificationType != "2")
Padding(
padding: const EdgeInsets.only(top: 18),
child: Image.network(notification.messageTypeData, loadingBuilder: (BuildContext context, Widget child, ImageChunkEvent loadingProgress) {
child: Image.network(widget.notification.messageTypeData, loadingBuilder: (BuildContext context, Widget child, ImageChunkEvent loadingProgress) {
if (loadingProgress == null) return child;
return Center(
child: SizedBox(
@ -66,7 +101,7 @@ class NotificationsDetailsPage extends StatelessWidget {
),
SizedBox(height: 18),
Text(
notification.message.trim(),
widget.notification.message.trim(),
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,

@ -195,7 +195,7 @@ class _EdPaymentInformationPageState extends State<EdPaymentInformationPage> {
onBrowserExit(AppoitmentAllHistoryResultList appo, bool isPaymentMade) {
print("onBrowserExit Called!!!!");
if (isPaymentMade) checkPaymentStatus(appo);
checkPaymentStatus(appo);
}
checkPaymentStatus(AppoitmentAllHistoryResultList appo) {

@ -153,6 +153,7 @@ class _AppointmentDetailsState extends State<AppointmentDetails> with SingleTick
if (widget.appo.clinicID == 17 ||
widget.appo.clinicID == 47 ||
widget.appo.clinicID == 23 ||
widget.appo.clinicID == 253 ||
widget.appo.clinicID == 265 ||
widget.appo.isExecludeDoctor ||
widget.appo.isLiveCareAppointment) {
@ -170,6 +171,7 @@ class _AppointmentDetailsState extends State<AppointmentDetails> with SingleTick
widget.appo.clinicID == 23 ||
widget.appo.clinicID == 47 ||
widget.appo.clinicID == 265 ||
widget.appo.clinicID == 253 ||
widget.appo.isExecludeDoctor ||
widget.appo.isLiveCareAppointment
? Tab(

@ -891,12 +891,12 @@ class _ToDoState extends State<ToDo> with SingleTickerProviderStateMixin {
onBrowserExit(AppoitmentAllHistoryResultList appo, bool isPaymentMade) {
print("onBrowserExit Called!!!!");
if (isPaymentMade) checkPaymentStatus(appo);
checkPaymentStatus(appo);
}
checkPaymentStatus(AppoitmentAllHistoryResultList appo) {
String txn_ref;
String amount;
num amount;
String payment_method;
final currency = projectViewModel.user.outSA == 0 ? "sar" : 'aed';
GifLoaderDialogUtils.showMyDialog(context);

@ -7,7 +7,7 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:url_launcher/url_launcher.dart';
class AppUpdatePage extends StatefulWidget {
String appUpdateText;
final String appUpdateText;
AppUpdatePage({@required this.appUpdateText});
@ -59,9 +59,9 @@ class _AppUpdatePageState extends State<AppUpdatePage> {
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.grey[600],
fontSize: 16.0,
fontSize: 14.0,
height: 1.5,
fontWeight: FontWeight.bold))),
fontWeight: FontWeight.w600))),
Container(
margin: EdgeInsets.only(left: 20.0, right: 20.0, top: 20.0),
child: ButtonTheme(

@ -109,7 +109,6 @@ class _clinic_listState extends State<ClinicList> {
}
void startLiveCare() {
bool isError = false;
LiveCareService service = new LiveCareService();
GifLoaderDialogUtils.showMyDialog(context);
@ -332,7 +331,7 @@ class _clinic_listState extends State<ClinicList> {
onBrowserExit(AppoitmentAllHistoryResultList appo, bool isPaymentMade) {
print("onBrowserExit Called!!!!");
if (isPaymentMade) checkPaymentStatus(appo);
checkPaymentStatus(appo);
}
checkPaymentStatus(AppoitmentAllHistoryResultList appo) {
@ -397,7 +396,7 @@ class _clinic_listState extends State<ClinicList> {
liveCareOfflineClinicsListResponse.add(clinic);
}
});
if(liveCareClinicIDs != null) {
if (liveCareClinicIDs != null) {
selectedClinicID = int.parse(liveCareClinicIDs.split("-")[2]);
selectedClinicName = liveCareClinicIDs.split("-")[0];
} else {
@ -616,7 +615,6 @@ class _clinic_listState extends State<ClinicList> {
}
void startScheduleLiveCare() {
List<DoctorList> doctorsList = [];
LiveCareService service = new LiveCareService();
GifLoaderDialogUtils.showMyDialog(context);

@ -397,7 +397,6 @@ class _ConfirmPaymentPageState extends State<ConfirmPaymentPage> {
onBrowserExit(AppoitmentAllHistoryResultList appo, bool isPaymentMade) {
print("onBrowserExit Called!!!!");
// if (isPaymentMade)
checkPaymentStatus(appo);
}

@ -163,14 +163,13 @@ class PaymentBottomWidget extends StatelessWidget {
onBrowserExit(AppoitmentAllHistoryResultList appo, bool isPaymentMade) {
print("onBrowserExit Called!!!!");
if (isPaymentMade) {
AppToast.showSuccessToast(message: "شكراً\nPayment status for your order is Paid");
// Navigator.pop(context);
// Navigator.pop(context);
} else {
AppToast.showErrorToast(message: "Transaction Failed!\Your transaction is field to some reason please try again or contact to the administration");
// Navigator.pop(context);
// Navigator.pop(context);
}
// } else {
// AppToast.showErrorToast(message: "Transaction Failed!\Your transaction is field to some reason please try again or contact to the administration");
// // Navigator.pop(context);
// // Navigator.pop(context);
// }
}
}

@ -404,7 +404,7 @@ class Signaling {
'to': session.remote_user?.id,
'from': session.local_user.id,
'candidate': {
'sdpMLineIndex': candidate.sdpMlineIndex,
'sdpMLineIndex': candidate.sdpMLineIndex,
'sdpMid': candidate.sdpMid,
'candidate': candidate.candidate,
},

@ -367,15 +367,17 @@ class DoctorsListService extends BaseService {
if (clinicID == 253) {
List<String> procedureID = projectViewModel.selectedBodyPartList.map((element) => element.id.toString()).toList();
request["GeneralProcedureList"] = procedureID;
request["InitialSlotDuration"] = projectViewModel.laserSelectionDuration;
if (procedureID.length == 1 && procedureID[0] == "1") {
request["InitialSlotDuration"] = 90;
} else {
request["InitialSlotDuration"] = projectViewModel.laserSelectionDuration;
}
}
dynamic localRes;
await baseAppClient.post(INSERT_SPECIFIC_APPOINTMENT, onSuccess: (response, statusCode) async {
localRes = response;
projectViewModel.selectedBodyPartList.clear();
projectViewModel.laserSelectionDuration = 0;
}, onFailure: (String error, int statusCode) {
throw error;
}, body: request);
@ -1415,7 +1417,8 @@ class DoctorsListService extends BaseService {
return Future.value(localRes);
}
Future<Map> ER_InsertEROnlinePaymentDetails(AppoitmentAllHistoryResultList appo, String projectID, double payedAmount, String paymentReference, String paymentMethodName, BuildContext context) async {
Future<Map> ER_InsertEROnlinePaymentDetails(
AppoitmentAllHistoryResultList appo, String projectID, double payedAmount, String paymentReference, String paymentMethodName, BuildContext context) async {
Map<String, dynamic> request;
if (await this.sharedPref.getObject(USER_PROFILE) != null) {
var data = AuthenticatedUser.fromJson(await this.sharedPref.getObject(USER_PROFILE));

@ -93,10 +93,10 @@ class _SplashScreenState extends State<SplashScreen> {
SizedBox(
height: 7,
),
Text(
"Version 1.1.0",
style: TextStyle(fontSize: 10, fontWeight: FontWeight.w400, color: Color(0xff3989898), letterSpacing: 0, height: 12 / 10),
),
// Text(
// "Version 1.1.0",
// style: TextStyle(fontSize: 10, fontWeight: FontWeight.w400, color: Color(0xff3989898), letterSpacing: 0, height: 12 / 10),
// ),
SizedBox(
height: 18,
)

@ -62,7 +62,10 @@ class CalendarUtils {
TZDateTime scheduleDateTimeUTZ = TZDateTime.from(scheduleDateTime, _currentLocation);
print("eventId " + eventId);
print("eventId: " + eventId);
print("writableCalendars-name: " + writableCalendars.name);
print("writableCalendars-Id: " + writableCalendars.id);
print("writableCalendarsToString: " + writableCalendars.toString());
Event event = Event(writableCalendars.id, start: scheduleDateTimeUTZ, end: scheduleDateTimeUTZ.add(Duration(minutes: 30)), title: title, description: description);
deviceCalendarPlugin.createOrUpdateEvent(event).catchError((e) {
print("catchError " + e.toString());

@ -284,7 +284,7 @@ class PushNotificationHandler {
onToken(fcm_token);
});
FirebaseMessaging.instance.getToken(vapidKey: 'BHRJG8sIzcysWxPw3B6xQjz_85nUuCfU6EAmpH18kyUTmB2cj35IdFwCyWSab80SA1v6oBSWVh-p6PcHPw_y00Y').then((String token){
FirebaseMessaging.instance.getToken(vapidKey: 'BHRJG8sIzcysWxPw3B6xQjz_85nUuCfU6EAmpH18kyUTmB2cj35IdFwCyWSab80SA1v6oBSWVh-p6PcHPw_y00Y').then((String token) {
print("Push Notification getToken: " + token);
onToken(token);
});
@ -310,6 +310,10 @@ class PushNotificationHandler {
notification.createdOn = DateUtil.convertDateToString(DateTime.now());
notification.messageTypeData = remoteMessage.data['picture'];
notification.message = remoteMessage.data['message'];
notification.notificationType = remoteMessage.data["NotificationType"].toString();
if (remoteMessage.data["NotificationType"] == "2") {
notification.videoURL = remoteMessage.data["VideoUrl"];
}
await NavigationService.navigateToPage(NotificationsDetailsPage(
notification: notification,

@ -1,7 +1,7 @@
name: diplomaticquarterapp
description: A new Flutter application.
version: 4.4.95+404095
version: 4.4.97+404097
environment:
sdk: ">=2.7.0 <3.0.0"
@ -135,7 +135,7 @@ dependencies:
flutter_local_notifications: ^9.1.4
#device_calendar
device_calendar: ^4.0.1
device_calendar: ^4.2.0
#Handle Geolocation
geolocator: ^7.7.1
@ -183,6 +183,7 @@ dependencies:
syncfusion_flutter_sliders: ^19.3.55
searchable_dropdown: ^1.1.3
dropdown_search: 0.4.9
youtube_player_flutter: ^8.0.0
# Dep by Zohaib
shimmer: ^2.0.0

Loading…
Cancel
Save