first change

withoutcheck_null_safty
Elham Rababh 4 years ago
parent 480017f887
commit 26e80356e1

@ -1,3 +1,5 @@
// @dart=2.9
import 'dart:io' show Platform;
import 'package:doctor_app_flutter/util/translations_delegate_base.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) {

@ -64,8 +64,8 @@ class AuthenticationViewModel extends BaseViewModel {
UserModel userInfo = UserModel();
final LocalAuthentication auth = LocalAuthentication();
List<BiometricType> _availableBiometrics;
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
List<BiometricType> _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();

@ -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<DashboardService>();
SpecialClinicsService _specialClinicsService =
locator<SpecialClinicsService>();
@ -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 != '') {

@ -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';

@ -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';

@ -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,

@ -97,10 +97,10 @@ class LineChartCurvedState extends State<LineChartCurved> {
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<LineChartCurved> {
),
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()}';
},

@ -98,10 +98,10 @@ class LineChartCurvedLabHistoryState extends State<LineChartCurvedLabHistory> {
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<LineChartCurvedLabHistory> {
),
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()}';
},

@ -38,6 +38,7 @@ class AddVerifyMedicalReport extends StatefulWidget {
}
class _AddVerifyMedicalReportState extends State<AddVerifyMedicalReport> {
HtmlEditorController _controller = HtmlEditorController();
@override
Widget build(BuildContext context) {
String txtOfMedicalReport;
@ -100,7 +101,7 @@ class _AddVerifyMedicalReportState extends State<AddVerifyMedicalReport> {
// 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<AddVerifyMedicalReport> {
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);

@ -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()}';

@ -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()}';
},

@ -292,7 +292,7 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
_birthDateInGregorian = selectedDate;
birthDateInHijri = HijriCalendar()
.gregorianToHijri(selectedDate.year,
selectedDate.month, selectedDate.day);
selectedDate.month, selectedDate.day) as HijriCalendar;
print(_birthDateInGregorian);
print(birthDateInHijri);

@ -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<QrReaderScreen> {
}
_scanQrAndGetPatient(BuildContext context, ScanQrViewModel model) async {
var result = await BarcodeScanner.scan();
var result = (await BarcodeScanner.scan()).rawContent;
if (result != "") {
List<String> listOfParams = result.split(',');
int patientID = 0;

@ -573,11 +573,11 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
},
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(

@ -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);
}
}

@ -225,7 +225,7 @@ class _TextFieldsState extends State<TextFields> {
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<TextFields> {
fontSize: widget.fontSize, fontWeight: widget.fontWeight),
inputFormatters: widget.keyboardType == TextInputType.phone
? <TextInputFormatter>[
WhitelistingTextInputFormatter.digitsOnly,
// WhitelistingTextInputFormatter.digitsOnly,
_mobileFormatter,
]
: widget.inputFormatters,

@ -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<AppExpandableNotifier> {
@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: <Widget>[
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),
),
);
},
),
),
],
),
),
),
);
}
}

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:progress_hud_v2/progress_hud.dart';
import 'loader/gif_loader_container.dart';

@ -27,7 +27,7 @@ class AppTextFormField extends FormField<String> {
: super(
onSaved: onSaved,
validator: validator,
autovalidate: autovalidate,
// autovalidate: autovalidate,
builder: (FormFieldState<String> state) {
return Column(
children: <Widget>[

@ -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> 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> toolbar;
@override
_HtmlRichEditorState createState() => _HtmlRichEditorState();
}
class _HtmlRichEditorState extends State<HtmlRichEditor> {
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<HtmlRichEditor> {
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<HtmlRichEditor> {
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<HtmlRichEditor> {
].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);

@ -172,7 +172,7 @@ class _NewTextFieldsState extends State<NewTextFields> {
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<NewTextFields> {
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
? <TextInputFormatter>[
WhitelistingTextInputFormatter.digitsOnly,
// WhitelistingTextInputFormatter.digitsOnly,
_mobileFormatter,
]
: widget.inputFormatters,

@ -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

Loading…
Cancel
Save