From 26e80356e190781af6c94d6c959ca9dfbf58f6d9 Mon Sep 17 00:00:00 2001 From: Elham Rababh Date: Tue, 28 Dec 2021 17:32:57 +0200 Subject: [PATCH] first change --- lib/UpdatePage.dart | 2 + lib/client/base_app_client.dart | 13 +- .../viewModel/authentication_view_model.dart | 6 +- lib/core/viewModel/dashboard_view_model.dart | 10 +- lib/landing_page.dart | 2 + lib/main.dart | 2 + .../line_chart_for_diabetic.dart | 9 +- .../profile/lab_result/LineChartCurved.dart | 11 +- .../lab_result/LineChartCurvedLabHistory.dart | 11 +- .../AddVerifyMedicalReport.dart | 5 +- .../profile/vital_sign/LineChartCurved.dart | 10 +- .../LineChartCurvedBloodPressure.dart | 9 +- .../RegisterSearchPatientPage.dart | 2 +- lib/screens/qr_reader/QR_reader_screen.dart | 4 +- .../reschedule-leaves/reschedule_leave.dart | 10 +- lib/util/dr_app_toast_msg.dart | 77 ++--------- lib/widgets/shared/TextFields.dart | 4 +- .../shared/app_expandable_notifier_new.dart | 127 ------------------ lib/widgets/shared/app_loader_widget.dart | 1 - .../text_fields/app_text_form_field.dart | 2 +- .../shared/text_fields/html_rich_editor.dart | 104 +++++++------- .../shared/text_fields/new_text_Field.dart | 6 +- pubspec.yaml | 123 +++++++++-------- 23 files changed, 182 insertions(+), 368 deletions(-) delete mode 100644 lib/widgets/shared/app_expandable_notifier_new.dart diff --git a/lib/UpdatePage.dart b/lib/UpdatePage.dart index 16284ed1..b81e2e4c 100644 --- a/lib/UpdatePage.dart +++ b/lib/UpdatePage.dart @@ -1,3 +1,5 @@ +// @dart=2.9 + import 'dart:io' show Platform; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; diff --git a/lib/client/base_app_client.dart b/lib/client/base_app_client.dart index af4e6e97..0a7792b2 100644 --- a/lib/client/base_app_client.dart +++ b/lib/client/base_app_client.dart @@ -1,3 +1,5 @@ +//@dart=2.9 + import 'dart:convert'; import 'dart:io' show Platform; @@ -107,12 +109,8 @@ class BaseAppClient { var asd = json.encode(body); var asd2; if (await Helpers.checkConnection()) { - final response = await http.post(url, - body: json.encode(body), - headers: { - 'Content-Type': 'application/json', - 'Accept': 'application/json' - }); + final response = await http.post(Uri.parse(url), + body: json.encode(body), headers: {'Content-Type': 'application/json', 'Accept': 'application/json'}); final int statusCode = response.statusCode; if (statusCode < 200 || statusCode >= 400) { onFailure(Helpers.generateContactAdminMsg(), statusCode); @@ -236,8 +234,7 @@ class BaseAppClient { var asd = json.encode(body); var asd2; if (await Helpers.checkConnection()) { - final response = await http.post(url.trim(), - body: json.encode(body), headers: headers); + final response = await http.post(Uri.parse(url.trim()), body: json.encode(body), headers: headers); final int statusCode = response.statusCode; print("statusCode :$statusCode"); if (statusCode < 200 || statusCode >= 400 || json == null) { diff --git a/lib/core/viewModel/authentication_view_model.dart b/lib/core/viewModel/authentication_view_model.dart index cad5fa87..58397b32 100644 --- a/lib/core/viewModel/authentication_view_model.dart +++ b/lib/core/viewModel/authentication_view_model.dart @@ -64,8 +64,8 @@ class AuthenticationViewModel extends BaseViewModel { UserModel userInfo = UserModel(); final LocalAuthentication auth = LocalAuthentication(); - List _availableBiometrics; - final FirebaseMessaging _firebaseMessaging = FirebaseMessaging(); + List _availableBiometrics; + final FirebaseMessaging _firebaseMessaging = FirebaseMessaging.instance; bool isLogin = false; bool unverified = false; @@ -354,7 +354,7 @@ class AuthenticationViewModel extends BaseViewModel { getDeviceInfoFromFirebase() async { _firebaseMessaging.setAutoInitEnabled(true); if (Platform.isIOS) { - _firebaseMessaging.requestNotificationPermissions(); + _firebaseMessaging.requestPermission(); } setState(ViewState.Busy); var token = await _firebaseMessaging.getToken(); diff --git a/lib/core/viewModel/dashboard_view_model.dart b/lib/core/viewModel/dashboard_view_model.dart index 04e63dd9..9b5c781f 100644 --- a/lib/core/viewModel/dashboard_view_model.dart +++ b/lib/core/viewModel/dashboard_view_model.dart @@ -13,7 +13,7 @@ import 'base_view_model.dart'; class DashboardViewModel extends BaseViewModel { - final FirebaseMessaging _firebaseMessaging = FirebaseMessaging(); + final FirebaseMessaging _firebaseMessaging = FirebaseMessaging.instance; DashboardService _dashboardService = locator(); SpecialClinicsService _specialClinicsService = locator(); @@ -53,13 +53,7 @@ class DashboardViewModel extends BaseViewModel { } Future setFirebaseNotification(AuthenticationViewModel authProvider) async { - _firebaseMessaging.requestNotificationPermissions( - const IosNotificationSettings( - sound: true, badge: true, alert: true, provisional: true)); - _firebaseMessaging.onIosSettingsRegistered - .listen((IosNotificationSettings settings) { - print("Settings registered: $settings"); - }); + _firebaseMessaging.requestPermission(sound: true, badge: true, alert: true, provisional: true); _firebaseMessaging.getToken().then((String token) async { if (token != '') { diff --git a/lib/landing_page.dart b/lib/landing_page.dart index fcdb1eff..2ab56617 100644 --- a/lib/landing_page.dart +++ b/lib/landing_page.dart @@ -1,3 +1,5 @@ +//@dart=2.9 + import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/screens/doctor/doctor_replay/doctor_reply_screen.dart'; import 'package:doctor_app_flutter/screens/doctor/my_schedule_screen.dart'; diff --git a/lib/main.dart b/lib/main.dart index 37f3d3d0..706994ba 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,3 +1,5 @@ + + import 'package:doctor_app_flutter/core/provider/robot_provider.dart'; import 'package:doctor_app_flutter/core/viewModel/livecare_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; diff --git a/lib/screens/patients/profile/diabetic_chart/line_chart_for_diabetic.dart b/lib/screens/patients/profile/diabetic_chart/line_chart_for_diabetic.dart index 671230c2..6d7af553 100644 --- a/lib/screens/patients/profile/diabetic_chart/line_chart_for_diabetic.dart +++ b/lib/screens/patients/profile/diabetic_chart/line_chart_for_diabetic.dart @@ -93,10 +93,10 @@ class LineChartForDiabetic extends StatelessWidget { titlesData: FlTitlesData( bottomTitles: SideTitles( showTitles: true, - getTextStyles: (value) => const TextStyle( + getTextStyles: (context, value) { return TextStyle( color: Colors.black, fontSize: 10, - ), + );}, rotateAngle: -65, //rotateAngle:-65, interval: 100, @@ -121,11 +121,10 @@ class LineChartForDiabetic extends StatelessWidget { ), leftTitles: SideTitles( showTitles: true, - getTextStyles: (value) => const TextStyle( + getTextStyles: (context, value) { return TextStyle( color: Colors.black, - fontWeight: FontWeight.bold, fontSize: 10, - ), + );}, interval:getMaxY() - getMinY() <=500?50:getMaxY() - getMinY() <=1000?100:200, margin: 12, diff --git a/lib/screens/patients/profile/lab_result/LineChartCurved.dart b/lib/screens/patients/profile/lab_result/LineChartCurved.dart index 89860f44..079c5e90 100644 --- a/lib/screens/patients/profile/lab_result/LineChartCurved.dart +++ b/lib/screens/patients/profile/lab_result/LineChartCurved.dart @@ -97,10 +97,10 @@ class LineChartCurvedState extends State { titlesData: FlTitlesData( bottomTitles: SideTitles( showTitles: true, - getTextStyles: (value) => const TextStyle( + getTextStyles: (context, value) { return TextStyle( color: Colors.black, - fontSize: 11, - ), + fontSize: 10, + );}, margin: 28, rotateAngle:-65, getTitles: (value) { @@ -128,11 +128,10 @@ class LineChartCurvedState extends State { ), leftTitles: SideTitles( showTitles: true, - getTextStyles: (value) => const TextStyle( + getTextStyles: (context, value) { return TextStyle( color: Colors.black, - fontWeight: FontWeight.bold, fontSize: 10, - ), + );}, getTitles: (value) { return '${value.toInt()}'; }, diff --git a/lib/screens/patients/profile/lab_result/LineChartCurvedLabHistory.dart b/lib/screens/patients/profile/lab_result/LineChartCurvedLabHistory.dart index ea9300d0..126b83c0 100644 --- a/lib/screens/patients/profile/lab_result/LineChartCurvedLabHistory.dart +++ b/lib/screens/patients/profile/lab_result/LineChartCurvedLabHistory.dart @@ -98,10 +98,10 @@ class LineChartCurvedLabHistoryState extends State { titlesData: FlTitlesData( bottomTitles: SideTitles( showTitles: true, - getTextStyles: (value) => const TextStyle( + getTextStyles: (context, value) { return TextStyle( color: Colors.black, - fontSize: 11, - ), + fontSize: 10, + );}, margin: 28, rotateAngle: -65, getTitles: (value) { @@ -127,11 +127,10 @@ class LineChartCurvedLabHistoryState extends State { ), leftTitles: SideTitles( showTitles: true, - getTextStyles: (value) => const TextStyle( + getTextStyles: (context, value) { return TextStyle( color: Colors.black, - fontWeight: FontWeight.bold, fontSize: 10, - ), + );}, getTitles: (value) { return '${value.toInt()}'; }, diff --git a/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart b/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart index 72ee1311..b40690ab 100644 --- a/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart +++ b/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart @@ -38,6 +38,7 @@ class AddVerifyMedicalReport extends StatefulWidget { } class _AddVerifyMedicalReportState extends State { + HtmlEditorController _controller = HtmlEditorController(); @override Widget build(BuildContext context) { String txtOfMedicalReport; @@ -100,7 +101,7 @@ class _AddVerifyMedicalReportState extends State { // disabled: progressNoteController.text.isEmpty, fontWeight: FontWeight.w700, onPressed: () async { - txtOfMedicalReport = await HtmlEditor.getText(); + txtOfMedicalReport = await _controller.getText(); if (txtOfMedicalReport.isNotEmpty) { GifLoaderDialogUtils.showMyDialog(context); @@ -137,7 +138,7 @@ class _AddVerifyMedicalReportState extends State { color: Color(0xff359846), fontWeight: FontWeight.w700, onPressed: () async { - txtOfMedicalReport = await HtmlEditor.getText(); + txtOfMedicalReport = await _controller.getText(); if (txtOfMedicalReport.isNotEmpty) { GifLoaderDialogUtils.showMyDialog(context); await widget.model.verifyMedicalReport(widget.patient, widget.medicalReport); diff --git a/lib/screens/patients/profile/vital_sign/LineChartCurved.dart b/lib/screens/patients/profile/vital_sign/LineChartCurved.dart index 564c8c2c..29bf32e8 100644 --- a/lib/screens/patients/profile/vital_sign/LineChartCurved.dart +++ b/lib/screens/patients/profile/vital_sign/LineChartCurved.dart @@ -4,6 +4,7 @@ import 'package:doctor_app_flutter/widgets/charts/app_time_series_chart.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:fl_chart/fl_chart.dart'; import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; class LineChartCurved extends StatelessWidget { final String title; @@ -110,10 +111,10 @@ class LineChartCurved extends StatelessWidget { titlesData: FlTitlesData( bottomTitles: SideTitles( showTitles: true, - getTextStyles: (value) => const TextStyle( + getTextStyles: (context, value) { return TextStyle( color: Colors.black, fontSize: 10, - ), + );}, rotateAngle: -65, //rotateAngle:-65, margin: 22, @@ -162,11 +163,10 @@ class LineChartCurved extends StatelessWidget { ), leftTitles: SideTitles( showTitles: true, - getTextStyles: (value) => const TextStyle( + getTextStyles: (context, value) { return TextStyle( color: Colors.black, - fontWeight: FontWeight.bold, fontSize: 10, - ), + );}, getTitles: (value) { // if (timeSeries.length < 10) { // return '${value.toInt()}'; diff --git a/lib/screens/patients/profile/vital_sign/LineChartCurvedBloodPressure.dart b/lib/screens/patients/profile/vital_sign/LineChartCurvedBloodPressure.dart index 1c387c9a..095367ef 100644 --- a/lib/screens/patients/profile/vital_sign/LineChartCurvedBloodPressure.dart +++ b/lib/screens/patients/profile/vital_sign/LineChartCurvedBloodPressure.dart @@ -128,10 +128,10 @@ class LineChartCurvedBloodPressure extends StatelessWidget { titlesData: FlTitlesData( bottomTitles: SideTitles( showTitles: true, - getTextStyles: (value) => const TextStyle( + getTextStyles: (context, value) { return TextStyle( color: Colors.black, fontSize: 10, - ), + );}, rotateAngle: -65, //rotateAngle:-65, margin: 22, @@ -155,11 +155,10 @@ class LineChartCurvedBloodPressure extends StatelessWidget { ), leftTitles: SideTitles( showTitles: true, - getTextStyles: (value) => const TextStyle( + getTextStyles: (context, value) { return TextStyle( color: Colors.black, - fontWeight: FontWeight.bold, fontSize: 10, - ), + );}, getTitles: (value) { return '${value.toInt()}'; }, diff --git a/lib/screens/patients/register_patient/RegisterSearchPatientPage.dart b/lib/screens/patients/register_patient/RegisterSearchPatientPage.dart index 69a2c643..3947c3b7 100644 --- a/lib/screens/patients/register_patient/RegisterSearchPatientPage.dart +++ b/lib/screens/patients/register_patient/RegisterSearchPatientPage.dart @@ -292,7 +292,7 @@ class _RegisterSearchPatientPageState extends State { _birthDateInGregorian = selectedDate; birthDateInHijri = HijriCalendar() .gregorianToHijri(selectedDate.year, - selectedDate.month, selectedDate.day); + selectedDate.month, selectedDate.day) as HijriCalendar; print(_birthDateInGregorian); print(birthDateInHijri); diff --git a/lib/screens/qr_reader/QR_reader_screen.dart b/lib/screens/qr_reader/QR_reader_screen.dart index c06a8722..65c6327c 100644 --- a/lib/screens/qr_reader/QR_reader_screen.dart +++ b/lib/screens/qr_reader/QR_reader_screen.dart @@ -1,4 +1,4 @@ -import 'package:barcode_scan_fix/barcode_scan.dart'; +import 'package:barcode_scan2/barcode_scan2.dart'; import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/enum/viewstate.dart'; import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.dart'; @@ -82,7 +82,7 @@ class _QrReaderScreenState extends State { } _scanQrAndGetPatient(BuildContext context, ScanQrViewModel model) async { - var result = await BarcodeScanner.scan(); + var result = (await BarcodeScanner.scan()).rawContent; if (result != "") { List listOfParams = result.split(','); int patientID = 0; diff --git a/lib/screens/reschedule-leaves/reschedule_leave.dart b/lib/screens/reschedule-leaves/reschedule_leave.dart index 925d0bb7..0e9bff00 100644 --- a/lib/screens/reschedule-leaves/reschedule_leave.dart +++ b/lib/screens/reschedule-leaves/reschedule_leave.dart @@ -573,11 +573,11 @@ class _RescheduleLeaveScreen extends State { }, selectedItem: getSelectedDoctor(model2), showSearchBox: true, - searchBoxDecoration: InputDecoration( - border: OutlineInputBorder(), - contentPadding: EdgeInsets.fromLTRB(12, 12, 8, 0), - labelText: "Search Doctor", - ), + // searchBoxDecoration: InputDecoration( + // border: OutlineInputBorder(), + // contentPadding: EdgeInsets.fromLTRB(12, 12, 8, 0), + // labelText: "Search Doctor", + // ), popupTitle: Container( height: 50, decoration: BoxDecoration( diff --git a/lib/util/dr_app_toast_msg.dart b/lib/util/dr_app_toast_msg.dart index 76950ae5..f0103d5f 100644 --- a/lib/util/dr_app_toast_msg.dart +++ b/lib/util/dr_app_toast_msg.dart @@ -1,79 +1,26 @@ import 'package:doctor_app_flutter/config/config.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_flexible_toast/flutter_flexible_toast.dart'; +import 'package:fluttertoast/fluttertoast.dart'; class DrAppToastMsg { - void showLongToast(msg) { - FlutterFlexibleToast.showToast( - message: msg, - toastLength: Toast.LENGTH_LONG, - ); - } - static void showSuccesToast(msg) { - FlutterFlexibleToast.showToast( - message: msg, + Fluttertoast.showToast( + msg: msg, toastLength: Toast.LENGTH_SHORT, - backgroundColor: AppGlobal.appGreenColor, - icon: ICON.SUCCESS, - fontSize: 16, - imageSize: 35, - textColor: Colors.white); + gravity: ToastGravity.TOP, + // timeInSecForIosWeb: timeInSeconds, + backgroundColor: Colors.green, + textColor: Colors.white, + fontSize: 16); } static void showErrorToast(msg) { - FlutterFlexibleToast.showToast( - message: msg, + Fluttertoast.showToast( + msg: msg, toastLength: Toast.LENGTH_SHORT, - toastGravity: ToastGravity.TOP, + gravity: ToastGravity.TOP, backgroundColor: Colors.red, - icon: ICON.CLOSE, - fontSize: 16, - imageSize: 35, - timeInSeconds: 912, - textColor: Colors.white); - } - - static void showShortToast(msg) { - FlutterFlexibleToast.showToast( - message: msg, - toastLength: Toast.LENGTH_SHORT, - icon: ICON.INFO, - timeInSeconds: 1); - } - - static void showTopShortToast(msg) { - FlutterFlexibleToast.showToast( - message: msg, - toastLength: Toast.LENGTH_SHORT, - toastGravity: ToastGravity.TOP, - icon: ICON.WARNING, - timeInSeconds: 1); - } - - static void showCenterShortToast(msg) { - FlutterFlexibleToast.showToast( - message: msg, - toastLength: Toast.LENGTH_SHORT, - toastGravity: ToastGravity.CENTER, - icon: ICON.WARNING, - timeInSeconds: 1); - } - - static void showCenterShortLoadingToast(msg) { - FlutterFlexibleToast.showToast( - message: msg, - toastLength: Toast.LENGTH_LONG, - toastGravity: ToastGravity.BOTTOM, - icon: ICON.LOADING, - radius: 20, - elevation: 10, textColor: Colors.white, - - timeInSeconds: 2); - } - - static void cancelToast(msg) { - FlutterFlexibleToast.cancel(); + fontSize: 16); } } diff --git a/lib/widgets/shared/TextFields.dart b/lib/widgets/shared/TextFields.dart index 18d8e778..3674e144 100644 --- a/lib/widgets/shared/TextFields.dart +++ b/lib/widgets/shared/TextFields.dart @@ -225,7 +225,7 @@ class _TextFieldsState extends State { onTap: widget.onTapTextFields, keyboardAppearance: Theme.of(context).brightness, scrollPhysics: BouncingScrollPhysics(), - autovalidate: widget.autoValidate, + // autovalidate: widget.autoValidate, textCapitalization: widget.textCapitalization, onFieldSubmitted: widget.inputAction == TextInputAction.next ? (widget.onSubmit != null @@ -266,7 +266,7 @@ class _TextFieldsState extends State { fontSize: widget.fontSize, fontWeight: widget.fontWeight), inputFormatters: widget.keyboardType == TextInputType.phone ? [ - WhitelistingTextInputFormatter.digitsOnly, + // WhitelistingTextInputFormatter.digitsOnly, _mobileFormatter, ] : widget.inputFormatters, diff --git a/lib/widgets/shared/app_expandable_notifier_new.dart b/lib/widgets/shared/app_expandable_notifier_new.dart deleted file mode 100644 index 848f5265..00000000 --- a/lib/widgets/shared/app_expandable_notifier_new.dart +++ /dev/null @@ -1,127 +0,0 @@ -import 'package:doctor_app_flutter/config/size_config.dart'; -import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; -import 'package:expandable/expandable.dart'; -import 'package:flutter/material.dart'; - - -/// App Expandable Notifier with animation -/// [headerWidget] widget want to show in the header -/// [bodyWidget] widget want to show in the body -/// [title] the widget title -/// [collapsed] The widget shown in the collapsed state -class AppExpandableNotifier extends StatefulWidget { - final Widget headerWidget; - final Widget bodyWidget; - final String title; - final Widget collapsed; - final bool isExpand; - bool expandFlag = false; - var controller = new ExpandableController(); - AppExpandableNotifier( - {this.headerWidget, - this.bodyWidget, - this.title, - this.collapsed, - this.isExpand = false}); - - _AppExpandableNotifier createState() => _AppExpandableNotifier(); -} - -class _AppExpandableNotifier extends State { - - @override - void initState() { - setState(() { - if (widget.isExpand) { - widget.expandFlag = widget.isExpand; - widget.controller.expanded = true; - } - }); - super.initState(); - } - - @override - Widget build(BuildContext context) { - - return ExpandableNotifier( - child: Padding( - padding: const EdgeInsets.only(left: 10, right: 10, top: 4), - child: Card( - color: Colors.grey[200], - clipBehavior: Clip.antiAlias, - child: Column( - children: [ - SizedBox( - child: widget.headerWidget, - ), - ScrollOnExpand( - scrollOnExpand: true, - scrollOnCollapse: false, - child: ExpandablePanel( - hasIcon: false, - theme: const ExpandableThemeData( - headerAlignment: ExpandablePanelHeaderAlignment.center, - tapBodyToCollapse: true, - ), - header: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: Padding( - padding: EdgeInsets.all(10), - child: Text( - widget.title ?? TranslationBase.of(context).details, - style: TextStyle( - fontWeight: FontWeight.bold, - fontSize: SizeConfig.textMultiplier * 2, - ), - ), - ), - ), - IconButton( - icon: new Container( - height: 28.0, - width: 30.0, - decoration: new BoxDecoration( - color: Theme.of(context).primaryColor, - shape: BoxShape.circle, - ), - child: new Center( - child: new Icon( - widget.expandFlag - ? Icons.keyboard_arrow_up - : Icons.keyboard_arrow_down, - color: Colors.white, - size: 30.0, - ), - ), - ), - onPressed: () { - setState(() { - widget.expandFlag = !widget.expandFlag; - widget.controller.expanded = widget.expandFlag; - }); - }), - ]), - collapsed: widget.collapsed ?? Container(), - expanded: widget.bodyWidget, - builder: (_, collapsed, expanded) { - return Padding( - padding: EdgeInsets.only(left: 5, right: 5, bottom: 5), - child: Expandable( - controller: widget.controller, - collapsed: collapsed, - expanded: expanded, - theme: const ExpandableThemeData(crossFadePoint: 0), - ), - ); - }, - ), - ), - ], - ), - ), - ), - ); - } -} diff --git a/lib/widgets/shared/app_loader_widget.dart b/lib/widgets/shared/app_loader_widget.dart index 4b6d753b..87412b90 100644 --- a/lib/widgets/shared/app_loader_widget.dart +++ b/lib/widgets/shared/app_loader_widget.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:progress_hud_v2/progress_hud.dart'; import 'loader/gif_loader_container.dart'; diff --git a/lib/widgets/shared/text_fields/app_text_form_field.dart b/lib/widgets/shared/text_fields/app_text_form_field.dart index cf5f0abf..7d3a06da 100644 --- a/lib/widgets/shared/text_fields/app_text_form_field.dart +++ b/lib/widgets/shared/text_fields/app_text_form_field.dart @@ -27,7 +27,7 @@ class AppTextFormField extends FormField { : super( onSaved: onSaved, validator: validator, - autovalidate: autovalidate, + // autovalidate: autovalidate, builder: (FormFieldState state) { return Column( children: [ diff --git a/lib/widgets/shared/text_fields/html_rich_editor.dart b/lib/widgets/shared/text_fields/html_rich_editor.dart index 71359604..99c3f547 100644 --- a/lib/widgets/shared/text_fields/html_rich_editor.dart +++ b/lib/widgets/shared/text_fields/html_rich_editor.dart @@ -12,7 +12,16 @@ import 'package:speech_to_text/speech_to_text.dart' as stt; import '../speech-text-popup.dart'; class HtmlRichEditor extends StatefulWidget { - HtmlRichEditor({ + final String hint; + final String initialText; + final double height; + final BoxDecoration decoration; + final bool darkMode; + final bool showBottomToolbar; + final List toolbar; + final HtmlEditorController controller; + + HtmlRichEditor({ key, this.hint = "Your text here...", this.initialText, @@ -21,26 +30,19 @@ class HtmlRichEditor extends StatefulWidget { this.darkMode = false, this.showBottomToolbar = false, this.toolbar, + this.controller, }) : super(key: key); - final String hint; - final String initialText; - final double height; - final BoxDecoration decoration; - final bool darkMode; - final bool showBottomToolbar; - final List toolbar; - @override _HtmlRichEditorState createState() => _HtmlRichEditorState(); } class _HtmlRichEditorState extends State { - ProjectViewModel projectViewModel; + ProjectViewModel projectViewModel; stt.SpeechToText speech = stt.SpeechToText(); var recognizedWord; var event = RobotProvider(); - + @override void initState() { @@ -64,51 +66,42 @@ class _HtmlRichEditorState extends State { return Stack( children: [ HtmlEditor( - hint: widget.hint, - height: widget.height, - initialText: widget.initialText, - showBottomToolbar: widget.showBottomToolbar, - darkMode: widget.darkMode, - decoration: widget.decoration ?? - BoxDecoration( - color: Colors.transparent, - borderRadius: BorderRadius.all( - Radius.circular(30.0), - ), - border: Border.all(color: Colors.grey[200], width: 0.5), - ), - toolbar: widget.toolbar ?? - const [ - // Style(), - Font(buttons: [ - FontButtons.bold, - FontButtons.italic, - FontButtons.underline, - ]), - // ColorBar(buttons: [ColorButtons.color]), - Paragraph(buttons: [ - ParagraphButtons.ul, - ParagraphButtons.ol, - ParagraphButtons.paragraph - ]), - // Insert(buttons: [InsertButtons.link, InsertButtons.picture, InsertButtons.video, InsertButtons.table]), - // Misc(buttons: [MiscButtons.fullscreen, MiscButtons.codeview, MiscButtons.help]) - ], - ), + controller: widget.controller, + htmlToolbarOptions: HtmlToolbarOptions(defaultToolbarButtons: [ + StyleButtons(), + FontSettingButtons(), + FontButtons(), + // ColorButtons(), + ListButtons(), + ParagraphButtons(), + // InsertButtons(), + // OtherButtons(), + ]), + htmlEditorOptions: HtmlEditorOptions( + hint: widget.hint, + initialText: widget.initialText, + darkMode: widget.darkMode, + ), + otherOptions: OtherOptions( + height: widget.height, + decoration: widget.decoration ?? + BoxDecoration( + color: Colors.transparent, + borderRadius: BorderRadius.all( + Radius.circular(30.0), + ), + border: Border.all(color: Colors.grey[200], width: 0.5), + ), + )), Positioned( - top: - 50, //MediaQuery.of(context).size.height * 0, - right: projectViewModel.isArabic - ? MediaQuery.of(context).size.width * 0.75 - : 15, + top: 50, //MediaQuery.of(context).size.height * 0, + right: projectViewModel.isArabic ? MediaQuery.of(context).size.width * 0.75 : 15, child: Column( children: [ IconButton( - icon: Icon(DoctorApp.speechtotext, - color: Colors.black, size: 35), + icon: Icon(DoctorApp.speechtotext, color: Colors.black, size: 35), onPressed: () { - initSpeechState() - .then((value) => {onVoiceText()}); + initSpeechState().then((value) => {onVoiceText()}); }, ), ], @@ -121,8 +114,7 @@ class _HtmlRichEditorState extends State { onVoiceText() async { new SpeechToText(context: context).showAlertDialog(context); var lang = TranslationBase.of(AppGlobal.CONTEX).locale.languageCode; - bool available = await speech.initialize( - onStatus: statusListener, onError: errorListener); + bool available = await speech.initialize(onStatus: statusListener, onError: errorListener); if (available) { speech.listen( onResult: resultListener, @@ -150,15 +142,15 @@ class _HtmlRichEditorState extends State { ].request(); } - void resultListener(result)async { + void resultListener(result) async { recognizedWord = result.recognizedWords; event.setValue({"searchText": recognizedWord}); - String txt = await HtmlEditor.getText(); + String txt = await widget.controller.getText(); if (result.finalResult == true) { setState(() { SpeechToText.closeAlertDialog(context); speech.stop(); - HtmlEditor.setText(txt+recognizedWord); + widget.controller.setText(txt + recognizedWord); }); } else { print(result.finalResult); diff --git a/lib/widgets/shared/text_fields/new_text_Field.dart b/lib/widgets/shared/text_fields/new_text_Field.dart index 9917b04f..2979bfd4 100644 --- a/lib/widgets/shared/text_fields/new_text_Field.dart +++ b/lib/widgets/shared/text_fields/new_text_Field.dart @@ -172,7 +172,7 @@ class _NewTextFieldsState extends State { initialValue: widget.initialValue, keyboardAppearance: Theme.of(context).brightness, scrollPhysics: BouncingScrollPhysics(), - autovalidate: widget.autoValidate, + // autovalidate: widget.autoValidate, textCapitalization: widget.textCapitalization, onFieldSubmitted: widget.inputAction == TextInputAction.next ? (widget.onSubmit != null @@ -195,11 +195,11 @@ class _NewTextFieldsState extends State { autofocus: widget.autoFocus ?? false, validator: widget.validator, onSaved: widget.onSaved, - style: Theme.of(context).textTheme.body2.copyWith( + style: Theme.of(context).textTheme.bodyText1.copyWith( fontSize: widget.fontSize, fontWeight: widget.fontWeight, color: Color(0xFF575757), fontFamily: 'Poppins'), inputFormatters: widget.keyboardType == TextInputType.phone ? [ - WhitelistingTextInputFormatter.digitsOnly, + // WhitelistingTextInputFormatter.digitsOnly, _mobileFormatter, ] : widget.inputFormatters, diff --git a/pubspec.yaml b/pubspec.yaml index 1e5125de..766f55cb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,101 +11,110 @@ description: A new Flutter project. # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.2.2+2 +version: 4.3.5+1 + environment: - sdk: ">=2.8.0 <3.0.0" + sdk: ">=2.7.0 <3.0.0" #dependency_overrides: # intl: 0.17.0-nullsafety.2 +#dependency_overrides: +# intl: 0.17.0-nullsafety.2 dependencies: flutter: sdk: flutter - hexcolor: ^1.0.1 + hexcolor: ^2.0.4 flutter_localizations: sdk: flutter - flutter_device_type: ^0.2.0 - intl: ^0.16.0 - http: ^0.12.0+4 - provider: ^4.0.5+1 - shared_preferences: ^0.5.6+3 - imei_plugin: ^1.1.6 - flutter_flexible_toast: ^0.1.4 - local_auth: ^0.6.1+3 - http_interceptor: ^0.2.0 - progress_hud_v2: ^2.0.0 - connectivity: ^0.4.8+2 - maps_launcher: ^1.2.0 - url_launcher: ^5.4.5 - charts_flutter: ^0.9.0 + flutter_device_type: ^0.4.0 + intl: ^0.17.0 + http: ^0.13.0 + provider: ^6.0.1 + shared_preferences: ^2.0.6 + # imei_plugin: ^1.2.0 + # flutter_flexible_toast: ^0.1.4 + fluttertoast: ^8.0.8 + local_auth: ^1.1.6 + http_interceptor: ^0.4.1 + + connectivity: ^3.0.6 + maps_launcher: ^2.0.0 + url_launcher: ^6.0.6 + charts_flutter: ^0.12.0 flutter_swiper: ^1.1.6 #Icons - eva_icons_flutter: ^2.0.0 - font_awesome_flutter: ^8.11.0 - dropdown_search: ^0.4.8 - flutter_staggered_grid_view: ^0.3.2 + eva_icons_flutter: ^3.0.0 + font_awesome_flutter: ^9.0.0 + dropdown_search: ^2.0.1 + flutter_staggered_grid_view: ^0.4.0 - expandable: ^4.1.4 + expandable: ^5.0.1 # Qr code Scanner - barcode_scan_fix: ^1.0.2 + barcode_scan2: ^4.1.4 # permissions - permission_handler: ^5.0.0+hotfix.3 - device_info: ^0.4.2+4 + permission_handler: ^8.0.1 + device_info: ^2.0.2 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^0.1.2 + cupertino_icons: ^1.0.3 # SVG - flutter_svg: ^0.18.1 - percent_indicator: ^2.1.1 + #flutter_svg: ^1.0.0 + percent_indicator: ^3.0.1 #Dependency Injection - get_it: ^4.0.2 + get_it: ^7.1.3 #chart - fl_chart: ^0.12.1 + fl_chart: ^0.36.1 # Firebase - firebase_messaging: ^7.0.3 - firebase_analytics: 6.3.0 + firebase_messaging: ^10.0.1 + firebase_analytics : ^8.3.4 #GIF image flutter_gifimage: ^1.0.1 #Autocomplete TextField autocomplete_textfield: ^1.7.3 - date_time_picker: ^1.1.1 + date_time_picker: ^2.0.0 # Html - html: ^0.14.0+4 + html: ^0.15.0 # Flutter Html View - flutter_html: 1.0.2 - sticky_headers: "^0.1.8" + flutter_html: ^2.1.0 + sticky_headers: ^0.2.0 + file_picker: ^3.0.2+2 #speech to text speech_to_text: path: speech_to_text - quiver: ^2.1.5 + quiver: ^3.0.0 + flutter_colorpicker: ^0.5.0 # Html Editor Enhanced - html_editor_enhanced: ^1.3.0 + html_editor_enhanced: ^2.1.1 #Network Image - cached_network_image: ^2.5.0 + cached_network_image: ^3.1.0+1 # Badges - badges: ^1.1.4 + badges: ^2.0.1 - # Hijri -# hijri: ^2.0.3 - hijri_picker: ^2.0.0 + # Hijri + # hijri: ^2.0.3 + hijri_picker: ^3.0.0 + + # flutter_math_fork: ^0.6.0 +# flutter_math_fork: ^0.6.0 @@ -152,20 +161,20 @@ flutter: - family: Poppins fonts: - - asset: assets/fonts/Poppins/Poppins-Regular.ttf - weight: 400 - - asset: assets/fonts/Poppins/Poppins-Medium.ttf - weight: 500 - - asset: assets/fonts/Poppins/Poppins-SemiBold.ttf - weight: 600 - - asset: assets/fonts/Poppins/Poppins-Bold.ttf - weight: 700 - - asset: assets/fonts/Poppins/Poppins-Bold.ttf - weight: 800 - - asset: assets/fonts/Poppins/Poppins-Bold.ttf - weight: 900 - - + - asset: assets/fonts/Poppins/Poppins-Regular.ttf + weight: 400 + - asset: assets/fonts/Poppins/Poppins-Medium.ttf + weight: 500 + - asset: assets/fonts/Poppins/Poppins-SemiBold.ttf + weight: 600 + - asset: assets/fonts/Poppins/Poppins-Bold.ttf + weight: 700 + - asset: assets/fonts/Poppins/Poppins-Bold.ttf + weight: 800 + - asset: assets/fonts/Poppins/Poppins-Bold.ttf + weight: 900 + + # - family: Trajan Pro # fonts: # - asset: fonts/TrajanPro.ttf