This commit is contained in:
erfan
2021-06-21 14:14:54 +04:30
parent 2c045f43f1
commit e2b8fab7d9
60 changed files with 4078 additions and 3928 deletions
+12 -4
View File
@@ -1,19 +1,27 @@
buildscript {
ext.kotlin_version = '1.3.50'
ext.kotlin_version = '1.3.61'
repositories {
google()
// google()
maven {
url 'https://maven.google.com/'
name 'Google'
}
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath 'com.android.tools.build:gradle:4.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
// google()
maven {
url 'https://maven.google.com/'
name 'Google'
}
jcenter()
}
}
+1 -1
View File
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
+2 -2
View File
@@ -3,7 +3,6 @@ import 'package:flutter/services.dart';
import 'package:flutter_phoenix/flutter_phoenix.dart';
import 'package:provider/provider.dart';
import './pages/home_screen.dart';
import 'config/routes.dart';
import 'pages/cycle_add_screen.dart';
import 'pages/cycle_detail_screen.dart';
@@ -11,6 +10,7 @@ import 'pages/cycle_filter_screen.dart';
import 'pages/cycle_result_screen.dart';
import 'pages/cycle_scan_screen.dart';
import 'pages/forget_pass_screen.dart';
import 'pages/home_screen.dart';
import 'pages/label_add_screen.dart';
import 'pages/label_detail_screen.dart';
import 'pages/label_filter_screen.dart';
@@ -90,7 +90,7 @@ class MyApp extends StatelessWidget {
title: 'CSSD-DOC',
theme: ThemeData(
primaryColor: Colors.black,
cursorColor: Colors.black,
// cursorColor: Colors.black,
fontFamily: 'montserrat',
// primaryTextTheme: TextTheme(
// body1: TextStyle(
+16 -11
View File
@@ -1,17 +1,18 @@
import 'package:cssd/config/routes.dart';
import 'package:cssd/models/cycles_models.dart';
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/providers/cycles.dart';
import 'package:cssd/widgets/CycleScreens/Add/add_label_box.dart';
import 'package:cssd/widgets/CycleScreens/Add/date_picker.dart';
import 'package:cssd/widgets/CycleScreens/Add/save_button.dart';
import 'package:cssd/widgets/Global/internet_error.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import 'package:flutter/cupertino.dart';
import '../config/routes.dart';
import '../models/cycles_models.dart';
import '../providers/connectivity.dart';
import '../providers/cycles.dart';
import '../widgets/CycleScreens/Add/add_label_box.dart';
import '../widgets/CycleScreens/Add/date_picker.dart';
import '../widgets/CycleScreens/Add/save_button.dart';
import '../widgets/Global/internet_error.dart';
class CycleAddScreen extends StatefulWidget {
// static const route = '/CycleAddScreen';
@@ -84,6 +85,7 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
);
return true;
},
child: SafeArea(
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
@@ -214,7 +216,8 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
shrinkWrap: true,
itemBuilder: (ctx, index) => CycleAddLabelBox(
deviceBlockSize: _deviceBlockSize,
labelValues: cycleProvider.labelValues[index],
labelValues:
cycleProvider.labelValues[index],
labelVals: cycleProvider.labelVals,
initialLabelValue:
cycleProvider.initialLabelValue,
@@ -260,7 +263,8 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
),
CycleAddSaveButton(
form: _form,
labelValues: Provider.of<CyclesProvider>(context,
labelValues: Provider.of<CyclesProvider>(
context,
listen: false)
.labelValues,
cycleNumberCTRL: cycleNumberCTRL,
@@ -281,6 +285,7 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
: ConnectionErrorBox();
}),
),
),
);
}
}
+9 -7
View File
@@ -1,11 +1,12 @@
import 'package:cssd/models/cycles_models.dart';
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/providers/cycles.dart';
import 'package:cssd/widgets/CycleScreens/Details/datas_box.dart';
import 'package:cssd/widgets/Global/internet_error.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../models/cycles_models.dart';
import '../providers/connectivity.dart';
import '../providers/cycles.dart';
import '../widgets/CycleScreens/Details/datas_box.dart';
import '../widgets/Global/internet_error.dart';
class CycleDetailScreen extends StatefulWidget {
// static const route = '/CycleDetailScreen';
final String testResultId;
@@ -49,8 +50,8 @@ class _CycleDetailScreenState extends State<CycleDetailScreen> {
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
print(datas);
return Scaffold(
return SafeArea(
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Cycles'),
@@ -78,6 +79,7 @@ class _CycleDetailScreenState extends State<CycleDetailScreen> {
)
: ConnectionErrorBox();
}),
),
);
}
}
+3 -1
View File
@@ -1,4 +1,4 @@
import 'package:barcode_scan/barcode_scan.dart';
import 'package:barcode_scan2/barcode_scan2.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -98,6 +98,7 @@ class _CycleFilterScreenState extends State<CycleFilterScreen> {
);
return true;
},
child: SafeArea(
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
@@ -299,6 +300,7 @@ class _CycleFilterScreenState extends State<CycleFilterScreen> {
: ConnectionErrorBox();
}),
),
),
);
}
}
+14 -11
View File
@@ -1,11 +1,11 @@
import 'package:cssd/config/routes.dart';
import '../config/routes.dart';
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/widgets/CycleScreens/Result/banner.dart';
import 'package:cssd/widgets/CycleScreens/Result/data_box.dart';
import 'package:cssd/widgets/CycleScreens/Result/filter_objects.dart';
import 'package:cssd/widgets/CycleScreens/Result/search_box.dart';
import 'package:cssd/widgets/Global/internet_error.dart';
import '../providers/connectivity.dart';
import '../widgets/CycleScreens/Result/banner.dart';
import '../widgets/CycleScreens/Result/data_box.dart';
import '../widgets/CycleScreens/Result/filter_objects.dart';
import '../widgets/CycleScreens/Result/search_box.dart';
import '../widgets/Global/internet_error.dart';
import '../providers/cycles.dart';
@@ -62,7 +62,8 @@ class _CycleResultScreenState extends State<CycleResultScreen> {
final _media = MediaQuery.of(context);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
return Scaffold(
return SafeArea(
child: Scaffold(
floatingActionButton: CycleResultFloatingButton(
deviceBlockSize: _deviceBlockSize,
),
@@ -96,7 +97,8 @@ class _CycleResultScreenState extends State<CycleResultScreen> {
scrollDirection: Axis.horizontal,
shrinkWrap: true,
children: <Widget>[
CycleFilterBaner(deviceBlockSize: _deviceBlockSize),
CycleFilterBaner(
deviceBlockSize: _deviceBlockSize),
cycle.filters.id != ''
? CycleFilterChip(
deviceBlockSize: _deviceBlockSize,
@@ -179,8 +181,8 @@ class _CycleResultScreenState extends State<CycleResultScreen> {
labels += label;
labels += ' , ';
}
labels = labels.substring(
0, labels.length - 3); // remove extra ,
labels = labels.substring(0,
labels.length - 3); // remove extra ,
return CycleItemBox(
deviceBlockSize: _deviceBlockSize,
item: cycleResults.items[index],
@@ -198,6 +200,7 @@ class _CycleResultScreenState extends State<CycleResultScreen> {
)
: ConnectionErrorBox();
}),
),
);
}
}
+9 -6
View File
@@ -1,13 +1,13 @@
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/widgets/Global/internet_error.dart';
import 'package:barcode_scan2/barcode_scan2.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:barcode_scan/barcode_scan.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
import '../providers/connectivity.dart';
import '../widgets/Global/internet_error.dart';
class CycleScanScreen extends StatefulWidget {
// static const route = '/cycleScanScreen';
@override
@@ -27,7 +27,8 @@ class _CycleScanScreenState extends State<CycleScanScreen> {
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
return Scaffold(
return SafeArea(
child: Scaffold(
appBar: AppBar(
centerTitle: true,
titleSpacing: -10,
@@ -165,7 +166,8 @@ class _CycleScanScreenState extends State<CycleScanScreen> {
horizontal: 5 * _deviceBlockSize,
vertical: 10,
),
margin: EdgeInsets.only(bottom: 50,left: 20,right: 20),
margin:
EdgeInsets.only(bottom: 50, left: 20, right: 20),
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Colors.red, Colors.orange],
@@ -188,6 +190,7 @@ class _CycleScanScreenState extends State<CycleScanScreen> {
)
: ConnectionErrorBox();
}),
),
);
}
+4 -2
View File
@@ -38,7 +38,7 @@ class _ForgetPassScreenState extends State<ForgetPassScreen> {
title: Text('Error'),
content: Text(message),
actions: <Widget>[
FlatButton(
TextButton(
child: Text('Ok'),
onPressed: () {
Navigator.of(ctx).pop();
@@ -90,7 +90,8 @@ class _ForgetPassScreenState extends State<ForgetPassScreen> {
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
return Scaffold(
return SafeArea(
child: Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text('CSSD'),
@@ -191,6 +192,7 @@ class _ForgetPassScreenState extends State<ForgetPassScreen> {
: ConnectionErrorBox(),
selector: (_, connectivity) => connectivity.conStatus,
),
),
);
}
}
+10 -8
View File
@@ -1,4 +1,4 @@
import 'package:barcode_scan/platform_wrapper.dart';
import 'package:barcode_scan2/platform_wrapper.dart';
import 'package:double_back_to_close_app/double_back_to_close_app.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -6,13 +6,13 @@ import 'package:flutter_phoenix/flutter_phoenix.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
import './my_info_screen.dart';
import '../providers/auth.dart';
import '../providers/connectivity.dart';
import '../widgets/Global/drawer.dart';
import '../widgets/Global/internet_error.dart';
import 'cycle_result_screen.dart';
import 'label_result_screen.dart';
import 'my_info_screen.dart';
import 'test_result_screen.dart';
import 'test_verify_screen.dart';
@@ -25,8 +25,9 @@ class HomePage extends StatelessWidget {
final userData = Provider.of<Auth>(context, listen: false).user;
// print(userData['roles']);
return Scaffold(
resizeToAvoidBottomPadding: false,
return SafeArea(
child: Scaffold(
// resizeToAvoidBottomPadding: false,
drawer: Selector<ConnectivityProvider, String>(
builder: (ctx, value, _) =>
value != 'offline' ? AppDrawer() : Container(),
@@ -53,7 +54,7 @@ class HomePage extends StatelessWidget {
title: Text('LogOut'),
content: Text('Are you sure for logout?'),
actions: <Widget>[
FlatButton(
TextButton(
child: Text('Yes'),
onPressed: () {
Navigator.of(ctx).pop();
@@ -61,7 +62,7 @@ class HomePage extends StatelessWidget {
Phoenix.rebirth(context);
},
),
FlatButton(
TextButton(
child: Text('No'),
onPressed: () {
Navigator.of(ctx).pop();
@@ -215,6 +216,7 @@ class HomePage extends StatelessWidget {
: ConnectionErrorBox();
},
),
),
);
}
}
@@ -359,7 +361,7 @@ class BarcodeSelectionItem extends StatelessWidget {
print(result);
showDialog(
context: context,
child: AlertDialog(
builder: (_) => AlertDialog(
title: Text(
'نتیجه ی اسکن',
textDirection: TextDirection.rtl,
@@ -376,7 +378,7 @@ class BarcodeSelectionItem extends StatelessWidget {
),
),
actions: <Widget>[
FlatButton(
TextButton(
onPressed: () async {
await launch(result);
Navigator.of(context).pop();
+2
View File
@@ -84,6 +84,7 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
);
return true;
},
child: SafeArea(
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
@@ -274,6 +275,7 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
: ConnectionErrorBox();
}),
),
),
);
}
}
+8 -7
View File
@@ -1,8 +1,8 @@
import 'package:cssd/models/label_models.dart';
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/providers/labels.dart';
import 'package:cssd/widgets/Global/internet_error.dart';
import 'package:cssd/widgets/LabelScreens/Detail/datas_box.dart';
import '../models/label_models.dart';
import '../providers/connectivity.dart';
import '../providers/labels.dart';
import '../widgets/Global/internet_error.dart';
import '../widgets/LabelScreens/Detail/datas_box.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@@ -50,8 +50,8 @@ class _LabelDetailScreenState extends State<LabelDetailScreen> {
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
print(datas);
return Scaffold(
return SafeArea(
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Labels'),
@@ -79,6 +79,7 @@ class _LabelDetailScreenState extends State<LabelDetailScreen> {
)
: ConnectionErrorBox();
}),
),
);
}
}
+15 -11
View File
@@ -1,16 +1,17 @@
import 'package:barcode_scan/barcode_scan.dart';
import 'package:cssd/config/routes.dart';
import 'package:cssd/models/label_models.dart';
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/providers/labels.dart';
import 'package:cssd/widgets/Global/internet_error.dart';
import 'package:cssd/widgets/LabelScreens/Filter/save_button.dart';
import 'package:cssd/widgets/LabelScreens/Filter/selector_box.dart';
import 'package:barcode_scan2/barcode_scan2.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import 'package:flutter/cupertino.dart';
import '../config/routes.dart';
import '../models/label_models.dart';
import '../providers/connectivity.dart';
import '../providers/labels.dart';
import '../widgets/Global/internet_error.dart';
import '../widgets/LabelScreens/Filter/save_button.dart';
import '../widgets/LabelScreens/Filter/selector_box.dart';
class LabelFilterScreen extends StatefulWidget {
// static const route = '/LabelFilterScreen';
@@ -90,6 +91,7 @@ class _LabelFilterScreenState extends State<LabelFilterScreen> {
);
return true;
},
child: SafeArea(
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
@@ -151,8 +153,8 @@ class _LabelFilterScreenState extends State<LabelFilterScreen> {
keyboardType: TextInputType.number,
textInputAction: TextInputAction.next,
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(_cycleNumberFocusNode);
FocusScope.of(context).requestFocus(
_cycleNumberFocusNode);
},
),
),
@@ -284,9 +286,11 @@ class _LabelFilterScreenState extends State<LabelFilterScreen> {
},
),
),
),
);
}
}
Future<String> scan() async {
try {
var barcode = await BarcodeScanner.scan();
+20 -14
View File
@@ -1,15 +1,16 @@
import 'package:cssd/config/routes.dart';
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/widgets/Global/page_header.dart';
import 'package:cssd/widgets/Global/internet_error.dart';
import 'package:cssd/widgets/LabelScreens/Result/data_box.dart';
import 'package:cssd/widgets/LabelScreens/Result/filter_chip_box.dart';
import 'package:cssd/widgets/LabelScreens/Result/floating_buttons.dart';
import 'package:cssd/widgets/LabelScreens/Result/search_box.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import '../config/routes.dart';
import '../providers/connectivity.dart';
import '../providers/labels.dart';
import '../widgets/Global/internet_error.dart';
import '../widgets/Global/page_header.dart';
import '../widgets/LabelScreens/Result/data_box.dart';
import '../widgets/LabelScreens/Result/filter_chip_box.dart';
import '../widgets/LabelScreens/Result/floating_buttons.dart';
import '../widgets/LabelScreens/Result/search_box.dart';
class LabelResultScreen extends StatefulWidget {
// static const route = '/LabelResultScreen';
@@ -61,7 +62,8 @@ class _LabelResultScreenState extends State<LabelResultScreen> {
final _media = MediaQuery.of(context);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
return Scaffold(
return SafeArea(
child: Scaffold(
floatingActionButton:
LabelFloatingButtons(deviceBlockSize: _deviceBlockSize),
appBar: AppBar(
@@ -79,8 +81,8 @@ class _LabelResultScreenState extends State<LabelResultScreen> {
builder: (ct, connection, _) {
return connection.conStatus != 'offline'
? Padding(
padding:
EdgeInsets.only(top: 20, right: 20, bottom: 60, left: 20),
padding: EdgeInsets.only(
top: 20, right: 20, bottom: 60, left: 20),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
@@ -130,7 +132,8 @@ class _LabelResultScreenState extends State<LabelResultScreen> {
? LabelFilterChip(
deviceBlockSize: _deviceBlockSize,
id: '',
cycleNumber: label.filters.cycleNumber,
cycleNumber:
label.filters.cycleNumber,
sterilizerId:
label.filters.sterilizerId,
hospital: label.filters.hospital,
@@ -152,7 +155,8 @@ class _LabelResultScreenState extends State<LabelResultScreen> {
? LabelFilterChip(
deviceBlockSize: _deviceBlockSize,
id: label.filters.id,
cycleNumber: label.filters.cycleNumber,
cycleNumber:
label.filters.cycleNumber,
sterilizerId: '',
hospital: label.filters.hospital,
label: 'Sterilizer ID',
@@ -162,7 +166,8 @@ class _LabelResultScreenState extends State<LabelResultScreen> {
? LabelFilterChip(
deviceBlockSize: _deviceBlockSize,
id: label.filters.id,
cycleNumber: label.filters.cycleNumber,
cycleNumber:
label.filters.cycleNumber,
sterilizerId:
label.filters.sterilizerId,
hospital: '',
@@ -206,6 +211,7 @@ class _LabelResultScreenState extends State<LabelResultScreen> {
: ConnectionErrorBox();
},
),
),
);
}
}
+10 -7
View File
@@ -1,12 +1,13 @@
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/widgets/Global/internet_error.dart';
import 'package:cssd/widgets/LabelScreens/Scan/input_box.dart';
import 'package:cssd/widgets/LabelScreens/Scan/save_button.dart';
import 'package:cssd/widgets/LabelScreens/Scan/scan_box.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/connectivity.dart';
import '../widgets/Global/internet_error.dart';
import '../widgets/LabelScreens/Scan/input_box.dart';
import '../widgets/LabelScreens/Scan/save_button.dart';
import '../widgets/LabelScreens/Scan/scan_box.dart';
// import 'package:flutter/services.dart';
// import 'package:barcode_scan/barcode_scan.dart';
// import 'package:barcode_scan2/barcode_scan2.dart';
class LabelScanScreen extends StatefulWidget {
// static const route = '/LabelScanScreen';
@@ -27,7 +28,8 @@ class _LabelScanScreenState extends State<LabelScanScreen> {
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
return Scaffold(
return SafeArea(
child: Scaffold(
appBar: AppBar(
centerTitle: true,
titleSpacing: -10,
@@ -85,6 +87,7 @@ class _LabelScanScreenState extends State<LabelScanScreen> {
: ConnectionErrorBox();
},
),
),
);
}
}
+2
View File
@@ -107,6 +107,7 @@ class _LabelUpdateScreenState extends State<LabelUpdateScreen> {
);
return true;
},
child: SafeArea(
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
@@ -298,6 +299,7 @@ class _LabelUpdateScreenState extends State<LabelUpdateScreen> {
: ConnectionErrorBox();
}),
),
),
);
}
}
+11 -9
View File
@@ -1,11 +1,12 @@
import 'package:cssd/config/routes.dart';
import 'package:cssd/providers/auth.dart';
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/widgets/Global/internet_error.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import '../config/routes.dart';
import '../providers/auth.dart';
import '../providers/connectivity.dart';
import '../widgets/Global/internet_error.dart';
class LoginScreen extends StatefulWidget {
// static const route = '/HomeScreen';
@@ -44,7 +45,7 @@ class _LoginScreenState extends State<LoginScreen> {
title: Text('Error'),
content: Text(message),
actions: <Widget>[
FlatButton(
TextButton(
child: Text('Ok'),
onPressed: () {
Navigator.of(ctx).pop();
@@ -110,7 +111,8 @@ class _LoginScreenState extends State<LoginScreen> {
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
return Scaffold(
return SafeArea(
child: Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text('CSSD'),
@@ -270,8 +272,7 @@ class _LoginScreenState extends State<LoginScreen> {
],
),
SizedBox(height: 10),
FlatButton(
padding: EdgeInsets.all(0),
TextButton(
child: Align(
alignment: Alignment.centerLeft,
child: Text(
@@ -290,6 +291,7 @@ class _LoginScreenState extends State<LoginScreen> {
)
: ConnectionErrorBox(),
selector: (_, connectivity) => connectivity.conStatus,
));
)),
);
}
}
+6 -3
View File
@@ -40,7 +40,8 @@ class _MyInfoScreenState extends State<MyInfoScreen> {
final _media = MediaQuery.of(context);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
return Scaffold(
return SafeArea(
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Dashboard'),
@@ -138,7 +139,8 @@ class _MyInfoScreenState extends State<MyInfoScreen> {
),
),
onTap: () async {
await Provider.of<Auth>(context, listen: false)
await Provider.of<Auth>(context,
listen: false)
.setUserData(
user['id'],
usernameCTRL.text,
@@ -152,7 +154,7 @@ class _MyInfoScreenState extends State<MyInfoScreen> {
'Info changed successfully.',
),
actions: <Widget>[
FlatButton(
TextButton(
child: Text('Ok'),
onPressed: () {
Navigator.of(ctx).pop();
@@ -172,6 +174,7 @@ class _MyInfoScreenState extends State<MyInfoScreen> {
)
: ConnectionErrorBox();
}),
),
);
}
}
+5 -3
View File
@@ -43,7 +43,7 @@ class _RePassScreenState extends State<RePassScreen> {
builder: (ctx) => AlertDialog(
content: Text(message),
actions: <Widget>[
FlatButton(
TextButton(
child: Text('Ok'),
onPressed: () {
Navigator.of(ctx).pop();
@@ -79,7 +79,8 @@ class _RePassScreenState extends State<RePassScreen> {
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
return Scaffold(
return SafeArea(
child: Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text('CSSD'),
@@ -236,6 +237,7 @@ class _RePassScreenState extends State<RePassScreen> {
)
: ConnectionErrorBox(),
selector: (_, connectivity) => connectivity.conStatus,
));
)),
);
}
}
+8 -6
View File
@@ -39,7 +39,7 @@ class _RegisterState extends State<Register> {
// title: Text('error occured'),
// content: Text(message),
// actions: <Widget>[
// FlatButton(
// TextButton(
// child: Text('Ok'),
// onPressed: () {
// Navigator.of(ctx).pop();
@@ -84,8 +84,9 @@ class _RegisterState extends State<Register> {
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
return Scaffold(
appBar:AppBar(
return SafeArea(
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Login'),
leading: IconButton(
@@ -250,7 +251,8 @@ class _RegisterState extends State<Register> {
icon: Icon(FontAwesomeIcons.angleDown),
isExpanded: true,
hint: Padding(
padding: const EdgeInsets.symmetric(horizontal: 4),
padding:
const EdgeInsets.symmetric(horizontal: 4),
child: Text(
curhospitalVal,
style: TextStyle(
@@ -319,7 +321,7 @@ class _RegisterState extends State<Register> {
Spacer()
],
)
// FlatButton.icon(
// TextButton.icon(
// padding: EdgeInsets.all(0),
// onPressed: () {
// _register();
@@ -368,10 +370,10 @@ class _RegisterState extends State<Register> {
),
],
),
],
),
),
),
);
}
}
+15 -13
View File
@@ -1,17 +1,18 @@
import 'package:cssd/config/routes.dart';
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/widgets/Global/internet_error.dart';
import 'package:cssd/widgets/TestResultScreens/Add/selector_box.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:barcode_scan/barcode_scan.dart';
import 'package:cssd/providers/test_results.dart';
import 'package:barcode_scan2/barcode_scan2.dart';
// import 'package:flutter_barcode_scanner/flutter_barcode_scanner.dart';
import 'package:cssd/pages/test_form_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import '../config/routes.dart';
import '../providers/connectivity.dart';
import '../providers/test_results.dart';
import '../widgets/Global/internet_error.dart';
import '../widgets/TestResultScreens/Add/selector_box.dart';
class TestResultAddScreen extends StatefulWidget {
// static const route = '/TestResultAddScreen';
@override
@@ -59,6 +60,7 @@ class _TestResultAddScreenState extends State<TestResultAddScreen> {
);
return true;
},
child: SafeArea(
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
@@ -69,8 +71,8 @@ class _TestResultAddScreenState extends State<TestResultAddScreen> {
size: 35,
),
// padding: EdgeInsets.all(0),
onPressed: () =>
Navigator.of(context).popAndPushNamed(Routes.testResultScreen),
onPressed: () => Navigator.of(context)
.popAndPushNamed(Routes.testResultScreen),
),
),
body: Consumer<ConnectivityProvider>(builder: (ct, connection, _) {
@@ -211,12 +213,11 @@ class _TestResultAddScreenState extends State<TestResultAddScreen> {
child: Container(
height: 100,
margin: EdgeInsets.only(bottom: 50),
child: FlatButton(
padding: EdgeInsets.all(0),
decoration: BoxDecoration(
color: Color(0xFFEB4A64),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
child: TextButton(
child: Text(
'GO',
textAlign: TextAlign.center,
@@ -260,6 +261,7 @@ class _TestResultAddScreenState extends State<TestResultAddScreen> {
: ConnectionErrorBox();
}),
),
),
);
}
+7 -5
View File
@@ -1,7 +1,7 @@
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/providers/test_results.dart';
import 'package:cssd/widgets/Global/internet_error.dart';
import 'package:cssd/widgets/TestResultScreens/Details/datas_box.dart';
import '../providers/connectivity.dart';
import '../providers/test_results.dart';
import '../widgets/Global/internet_error.dart';
import '../widgets/TestResultScreens/Details/datas_box.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@@ -42,7 +42,8 @@ class _TestDetailsScreenState extends State<TestDetailsScreen> {
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
// print(datas);
return Scaffold(
return SafeArea(
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Test Result Detail'),
@@ -68,6 +69,7 @@ class _TestDetailsScreenState extends State<TestDetailsScreen> {
: ConnectionErrorBox();
},
),
),
);
}
}
+6 -3
View File
@@ -1,4 +1,4 @@
import 'package:barcode_scan/barcode_scan.dart';
import 'package:barcode_scan2/barcode_scan2.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -131,6 +131,7 @@ class _TestFilterScreenState extends State<TestFilterScreen> {
);
return true;
},
child: SafeArea(
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
@@ -340,7 +341,7 @@ class _TestFilterScreenState extends State<TestFilterScreen> {
builder: (ctx) => AlertDialog(
content: Text('Filters changed.'),
actions: <Widget>[
FlatButton(
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
// Navigator.of(context).pop();
@@ -350,7 +351,8 @@ class _TestFilterScreenState extends State<TestFilterScreen> {
],
),
).then(
(_) => Navigator.of(context).popAndPushNamed(
(_) =>
Navigator.of(context).popAndPushNamed(
Routes.testResultScreen,
),
);
@@ -391,6 +393,7 @@ class _TestFilterScreenState extends State<TestFilterScreen> {
},
),
),
),
);
}
}
+10 -6
View File
@@ -1,11 +1,12 @@
import 'package:cssd/config/routes.dart';
import 'package:cssd/providers/input.dart';
import 'package:cssd/providers/test_results.dart';
import 'package:cssd/widgets/TestResultScreens/Add/form_creator.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:random_string/random_string.dart';
import '../config/routes.dart';
import '../providers/input.dart';
import '../providers/test_results.dart';
import '../widgets/TestResultScreens/Add/form_creator.dart';
class FormPage extends StatefulWidget {
final String name;
final String uniqueCode;
@@ -50,7 +51,7 @@ class _FormPageState extends State<FormPage> {
builder: (ctx) => AlertDialog(
content: Text('Test added.'),
actions: <Widget>[
FlatButton(
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
},
@@ -97,6 +98,7 @@ class _FormPageState extends State<FormPage> {
);
return true;
},
child: SafeArea(
child: Scaffold(
appBar: AppBar(
centerTitle: true,
@@ -115,7 +117,8 @@ class _FormPageState extends State<FormPage> {
size: 35,
),
onPressed: () {
Navigator.of(context).popAndPushNamed(Routes.testResultScreen);
Navigator.of(context)
.popAndPushNamed(Routes.testResultScreen);
},
),
),
@@ -164,6 +167,7 @@ class _FormPageState extends State<FormPage> {
// ),
],
)),
),
);
}
+11 -8
View File
@@ -1,6 +1,3 @@
import 'package:cssd/config/routes.dart';
import 'package:cssd/models/test_result_models.dart';
import 'package:cssd/providers/connectivity.dart';
// import 'package:cssd/providers/test_result.dart';
import 'package:cssd/providers/test_results.dart';
import 'package:cssd/widgets/Global/internet_error.dart';
@@ -11,6 +8,10 @@ import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import '../config/routes.dart';
import '../models/test_result_models.dart';
import '../providers/connectivity.dart';
class TestResultScreen extends StatefulWidget {
// static const route = '/TestResultScreen';
final bool isAdmin;
@@ -69,7 +70,8 @@ class _TestResultScreenState extends State<TestResultScreen> {
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
return Scaffold(
return SafeArea(
child: Scaffold(
floatingActionButton:
TestResultFloatingButton(deviceBlockSize: _deviceBlockSize),
appBar: AppBar(
@@ -87,8 +89,8 @@ class _TestResultScreenState extends State<TestResultScreen> {
builder: (ct, connection, _) {
return connection.conStatus != 'offline'
? Padding(
padding:
EdgeInsets.only(top: 20, left: 20, right: 20, bottom: 60),
padding: EdgeInsets.only(
top: 20, left: 20, right: 20, bottom: 60),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
@@ -289,6 +291,7 @@ class _TestResultScreenState extends State<TestResultScreen> {
: ConnectionErrorBox();
},
),
),
);
}
}
@@ -376,7 +379,7 @@ class TestItemBox extends StatelessWidget {
// content: Text(
// 'Are you sure for delete this test?'),
// actions: <Widget>[
// FlatButton(
// TextButton(
// onPressed: () {
// Provider.of<TestResultsProvider>(
// context)
@@ -388,7 +391,7 @@ class TestItemBox extends StatelessWidget {
// },
// child: Text('Yes'),
// ),
// FlatButton(
// TextButton(
// onPressed: () {
// Navigator.of(ctx).pop();
// },
+9 -6
View File
@@ -1,13 +1,13 @@
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/widgets/Global/internet_error.dart';
import 'package:barcode_scan2/barcode_scan2.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:barcode_scan/barcode_scan.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
import '../providers/connectivity.dart';
import '../widgets/Global/internet_error.dart';
class TestScanScreen extends StatefulWidget {
// static const route = '/TestScanScreen';
@override
@@ -27,7 +27,8 @@ class _TestScanScreenState extends State<TestScanScreen> {
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
return Scaffold(
return SafeArea(
child: Scaffold(
appBar: AppBar(
centerTitle: true,
titleSpacing: -10,
@@ -161,7 +162,8 @@ class _TestScanScreenState extends State<TestScanScreen> {
horizontal: 5 * _deviceBlockSize,
vertical: 10,
),
margin: EdgeInsets.only(bottom: 50, left: 20, right: 20),
margin:
EdgeInsets.only(bottom: 50, left: 20, right: 20),
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Colors.red, Colors.orange],
@@ -184,6 +186,7 @@ class _TestScanScreenState extends State<TestScanScreen> {
)
: ConnectionErrorBox();
}),
),
);
}
+9 -7
View File
@@ -1,11 +1,11 @@
import 'package:cssd/providers/test_results.dart';
import 'package:cssd/widgets/TestResultScreens/Main/search_box.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../config/routes.dart';
import '../models/test_result_models.dart';
import '../providers/auth.dart';
import '../providers/test_results.dart';
import '../widgets/TestResultScreens/Main/search_box.dart';
class TestVerifyScreen extends StatefulWidget {
// static const route = '/TestVerifyScreen';
@@ -70,7 +70,8 @@ class _TestVerifyScreenState extends State<TestVerifyScreen> {
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
return Scaffold(
return SafeArea(
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Home'),
@@ -302,6 +303,7 @@ class _TestVerifyScreenState extends State<TestVerifyScreen> {
],
),
),
),
);
}
}
@@ -401,7 +403,7 @@ class TestItemBox extends StatelessWidget {
content: Text(
'Are you sure for verify this test?'),
actions: <Widget>[
FlatButton(
TextButton(
onPressed: () async {
Provider.of<TestResultsProvider>(
context)
@@ -418,7 +420,7 @@ class TestItemBox extends StatelessWidget {
},
child: Text('Yes'),
),
FlatButton(
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
},
@@ -454,7 +456,7 @@ class TestItemBox extends StatelessWidget {
content: Text(
'Are you sure for reject this test?'),
actions: <Widget>[
FlatButton(
TextButton(
onPressed: () async {
await Provider.of<TestResultsProvider>(
context)
@@ -471,7 +473,7 @@ class TestItemBox extends StatelessWidget {
},
child: Text('Yes'),
),
FlatButton(
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
},
+9 -6
View File
@@ -1,11 +1,12 @@
import 'package:cssd/config/routes.dart';
import 'package:cssd/providers/auth.dart';
import 'package:cssd/providers/connectivity.dart';
import 'package:cssd/widgets/Global/internet_error.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import '../config/routes.dart';
import '../providers/auth.dart';
import '../providers/connectivity.dart';
import '../widgets/Global/internet_error.dart';
class VerifyPassScreen extends StatefulWidget {
// static const route = '/HomeScreen';
@@ -38,7 +39,7 @@ class _VerifyPassScreenState extends State<VerifyPassScreen> {
title: Text('Error'),
content: Text(message),
actions: <Widget>[
FlatButton(
TextButton(
child: Text('Ok'),
onPressed: () {
Navigator.of(ctx).pop();
@@ -85,7 +86,8 @@ class _VerifyPassScreenState extends State<VerifyPassScreen> {
// final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5);
final double _devicewidth = _media.size.width;
final double _deviceBlockSize = _devicewidth / 100;
return Scaffold(
return SafeArea(
child: Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text('CSSD'),
@@ -188,6 +190,7 @@ class _VerifyPassScreenState extends State<VerifyPassScreen> {
: ConnectionErrorBox(),
selector: (_, connectivity) => connectivity.conStatus,
),
),
);
}
}
+9 -8
View File
@@ -1,12 +1,13 @@
import 'dart:convert';
import 'dart:io';
import 'package:cssd/config/user.dart';
import 'package:flutter/material.dart';
import 'package:cssd/config/urls.dart';
import 'package:http/http.dart' as http;
import 'package:shared_preferences/shared_preferences.dart';
import '../config/urls.dart';
import '../config/user.dart';
class Auth with ChangeNotifier {
String _token;
DateTime _expiaryDate;
@@ -32,7 +33,7 @@ class Auth with ChangeNotifier {
Future<String> requestCode(String cellNumber) async {
final response = await http.post(
Url.requestResetPass,
Uri.parse(Url.requestResetPass),
body: {
'cell_number': cellNumber,
},
@@ -49,7 +50,7 @@ class Auth with ChangeNotifier {
Future<String> sendCode(String code) async {
final response = await http.post(
Url.verifyResetPass,
Uri.parse(Url.verifyResetPass),
body: {
'code': code,
},
@@ -74,7 +75,7 @@ class Auth with ChangeNotifier {
print(token);
final response = await http.post(
Url.sendResetPass,
Uri.parse(Url.sendResetPass),
body: {
'password': password,
'password_confirmation': password,
@@ -98,7 +99,7 @@ class Auth with ChangeNotifier {
Future<String> login(String cellNumber, String password) async {
final response = await http.post(
Url.login,
Uri.parse(Url.login),
body: {
'cell_number': cellNumber,
'password': password,
@@ -160,7 +161,7 @@ class Auth with ChangeNotifier {
Future<Map<String, dynamic>> getUserData() async {
final response = await http.get(
Url.getUserInfo,
Uri.parse(Url.getUserInfo),
headers: {'Authorization': 'Bearer ' + token},
);
// print(response.body);
@@ -188,7 +189,7 @@ class Auth with ChangeNotifier {
Future<void> setUserData(id, name, email) async {
var response = await http.post(
'https://cssd-doc.com/api/UpdateInfo',
Uri.parse('https://cssd-doc.com/api/UpdateInfo'),
headers: {
'Authorization': 'Bearer ' + token,
HttpHeaders.contentTypeHeader: 'application/json',
+8 -8
View File
@@ -1,8 +1,8 @@
import 'dart:convert';
import 'package:cssd/config/urls.dart';
import 'package:cssd/config/user.dart';
import 'package:cssd/models/cycles_models.dart';
import '../config/urls.dart';
import '../config/user.dart';
import '../models/cycles_models.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
@@ -61,7 +61,7 @@ class CyclesProvider extends ChangeNotifier {
Future<List<Map<String, String>>> getHospitalsFilters() async {
var response = await http.get(
Url.filterItems,
Uri.parse(Url.filterItems),
headers: {
'Authorization': User.token,
},
@@ -80,7 +80,7 @@ class CyclesProvider extends ChangeNotifier {
Future<List<String>> getLabelFilters() async {
var response = await http.get(
Url.labelItems,
Uri.parse(Url.labelItems),
headers: {
'Authorization': User.token,
},
@@ -107,7 +107,7 @@ class CyclesProvider extends ChangeNotifier {
labs.add({'name': '', 'id': label});
}
// print(labs);
var response = await http.post(Url.createCycleResult,
var response = await http.post(Uri.parse(Url.createCycleResult),
body: json.encode(
{
'note': note,
@@ -181,7 +181,7 @@ class CyclesProvider extends ChangeNotifier {
}
// print(url);
var response = await http.get(
url,
Uri.parse(url),
headers: {
'Authorization': User.token,
},
@@ -214,7 +214,7 @@ class CyclesProvider extends ChangeNotifier {
}
Future<CycleDetailObject> showCycleResult(String id) async {
var response = await http.get(Url.getCycleResult(id), headers: {
var response = await http.get(Uri.parse(Url.getCycleResult(id)), headers: {
'Authorization': User.token,
});
if (response.statusCode != 200) {
+5 -4
View File
@@ -2,8 +2,9 @@ import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:cssd/config/urls.dart';
import 'package:cssd/config/user.dart';
import '../config/urls.dart';
import '../config/user.dart';
class Inputs with ChangeNotifier {
List<Map<String, dynamic>> inputItems = [];
@@ -22,7 +23,7 @@ class Inputs with ChangeNotifier {
// },
// );
var response = await http.post(
Url.getInputs,
Uri.parse(Url.getInputs),
body: {
'test_type_id': testTypeId,
'test_result_id': testResultId,
@@ -47,7 +48,7 @@ class Inputs with ChangeNotifier {
// }
Map<String, dynamic> values;
if (testResultId.isNotEmpty) {
response = await http.get(Url.testResultFormValues(testResultId),
response = await http.get(Uri.parse(Url.testResultFormValues(testResultId)),
headers: {'Authorization': User.token});
values = json.decode(response.body)['data'];
}
+9 -9
View File
@@ -1,8 +1,8 @@
import 'dart:convert';
import 'package:cssd/config/urls.dart';
import 'package:cssd/config/user.dart';
import 'package:cssd/models/label_models.dart';
import '../config/urls.dart';
import '../config/user.dart';
import '../models/label_models.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
@@ -34,7 +34,7 @@ class LabelsProvider extends ChangeNotifier {
Future<List<Map<String, String>>> getHospitalsFilters() async {
var response = await http.get(
Url.filterItems,
Uri.parse(Url.filterItems),
headers: {
'Authorization': User.token,
},
@@ -53,7 +53,7 @@ class LabelsProvider extends ChangeNotifier {
Future<List<Map<String, String>>> getPackageFilters() async {
var response = await http.get(
Url.packageItems,
Uri.parse(Url.packageItems),
headers: {
'Authorization': User.token,
},
@@ -77,7 +77,7 @@ class LabelsProvider extends ChangeNotifier {
Future<void> createLabelResult(lotNumber, cycleNumber, sterileDate, package,
expireDate, sterilizerId) async {
// print(labs);
var response = await http.post(Url.createLabelResult,
var response = await http.post(Uri.parse(Url.createLabelResult),
body: json.encode(
{
'sterile_date': sterileDate,
@@ -112,7 +112,7 @@ class LabelsProvider extends ChangeNotifier {
sterilizerId,
) async {
// print(labs);
var response = await http.put(Url.updateLabelResult(id),
var response = await http.put(Uri.parse(Url.updateLabelResult(id)),
body: json.encode(
{
'sterile_date': sterileDate,
@@ -187,7 +187,7 @@ class LabelsProvider extends ChangeNotifier {
}
var response = await http.get(
url,
Uri.parse(url),
headers: {
'Authorization': User.token,
},
@@ -216,7 +216,7 @@ class LabelsProvider extends ChangeNotifier {
Future<LabelDetailsObject> showLabelResult(String id) async {
var response = await http.get(
Url.getLabelResult(id),
Uri.parse(Url.getLabelResult(id)),
headers: {
'Authorization': User.token,
},
+2 -2
View File
@@ -1,6 +1,6 @@
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:cssd/config/urls.dart';
import '../config/urls.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
@@ -28,7 +28,7 @@ class MyInfoProvider extends ChangeNotifier {
final auth = json.decode(prefs.getString('auth')) as Map<String, Object>;
_token = auth['token'];
final response = await http.get(
Url.getUserInfo,
Uri.parse(Url.getUserInfo),
headers: {
'Authorization': 'Bearer ' + _token,
},
+3 -3
View File
@@ -1,5 +1,5 @@
import 'package:cssd/config/urls.dart';
import 'package:cssd/config/user.dart';
import '../config/urls.dart';
import '../config/user.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
@@ -24,7 +24,7 @@ class TestResult with ChangeNotifier{
Future<void> toggleVerify() async {
final response = await http.post(
Url.verifyTest(id), headers: {
Uri.parse(Url.verifyTest(id)), headers: {
'Authorization': User.token
}
);
+11 -11
View File
@@ -1,5 +1,4 @@
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
// import 'dart:typed_data';
import 'package:dio/dio.dart' as di;
@@ -7,6 +6,7 @@ import 'package:dio/dio.dart' as di;
import 'package:cssd/config/urls.dart';
import 'package:cssd/config/user.dart';
import 'package:cssd/models/test_result_models.dart';
import 'package:file_picker/file_picker.dart';
// import 'package:cssd/providers/test_result.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
@@ -14,13 +14,13 @@ import 'package:random_string/random_string.dart';
// import 'package:multi_image_picker/multi_image_picker.dart';
class TestResultsProvider with ChangeNotifier {
List<File> catchImages = [];
List<PlatformFile> catchImages = [];
List<Uint8List> images = [];
setImages() async {
images = [];
for (var image in catchImages) {
var result = image.readAsBytesSync();
var result = image.bytes;
// final batchId = randomString(10);
// addImage(batchId, result, image.path);
images.add(result.buffer
@@ -29,7 +29,7 @@ class TestResultsProvider with ChangeNotifier {
notifyListeners();
}
setCatchImages(List<File> images) {
setCatchImages(List<PlatformFile> images) {
catchImages = images;
notifyListeners();
}
@@ -136,7 +136,7 @@ class TestResultsProvider with ChangeNotifier {
Future<List<Map<String, String>>> getFilterItems() async {
var response = await http.get(
Url.filterItems,
Uri.parse(Url.filterItems),
headers: {
'Authorization': User.token,
},
@@ -187,7 +187,7 @@ class TestResultsProvider with ChangeNotifier {
}
//'device_id=3526&testType_id=107&medicalCenter_id=2&user_name=erfan&fromPicker=2020-05-12&upToPicker=2020-05-19&device_label=Instrument%20ID&page=1'
var response = await http.get(
url,
Uri.parse(url),
headers: {
'Authorization': User.token,
// 'X-Requested-With': 'XMLHttpRequest',
@@ -221,7 +221,7 @@ class TestResultsProvider with ChangeNotifier {
static Future<void> updateTestResult(String id, values) async {
var response = await http.post(
Url.updateTestResult(id),
Uri.parse(Url.updateTestResult(id)),
body: json.encode(values),
headers: {
'Authorization': User.token,
@@ -262,7 +262,7 @@ class TestResultsProvider with ChangeNotifier {
final batchId = randomString(10);
for (var image in catchImages) {
await addImage(batchId, image.readAsBytesSync(), image.path);
await addImage(batchId, image.bytes, image.path);
}
dynamic vals = values;
vals['file_batch_id'] = batchId;
@@ -305,7 +305,7 @@ class TestResultsProvider with ChangeNotifier {
}
Future<Map<String, dynamic>> showTestResult(String id) async {
var response = await http.get(Url.getTestResult(id), headers: {
var response = await http.get(Uri.parse(Url.getTestResult(id)), headers: {
'Authorization': User.token,
});
@@ -333,7 +333,7 @@ class TestResultsProvider with ChangeNotifier {
}
Future<bool> removeTestResult(String id) async {
var response = await http.post(Url.removeTestResult(id), body: {
var response = await http.post(Uri.parse(Url.removeTestResult(id)), body: {
'_method': 'delete'
}, headers: {
'Authorization': User.token,
@@ -353,7 +353,7 @@ class TestResultsProvider with ChangeNotifier {
print(id);
print(value);
var response = await http.post(
Url.testResultVerification(id, value),
Uri.parse(Url.testResultVerification(id, value)),
headers: {
'Authorization': User.token,
'X-Requested-With': 'XMLHttpRequest',
@@ -1,9 +1,10 @@
import 'package:barcode_scan/barcode_scan.dart';
import 'package:barcode_scan2/barcode_scan2.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import 'package:cssd/providers/cycles.dart';
import '../../../providers/cycles.dart';
class CycleAddLabelBox extends StatelessWidget {
const CycleAddLabelBox({
@@ -1,7 +1,8 @@
import 'package:cssd/config/routes.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:cssd/providers/cycles.dart';
import '../../../config/routes.dart';
import '../../../providers/cycles.dart';
class CycleAddSaveButton extends StatelessWidget {
const CycleAddSaveButton({
@@ -49,7 +50,7 @@ class CycleAddSaveButton extends StatelessWidget {
builder: (ctx) => AlertDialog(
content: Text('Cycle added.'),
actions: <Widget>[
FlatButton(
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
},
@@ -1,7 +1,8 @@
import 'package:cssd/config/routes.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:cssd/providers/cycles.dart';
import '../../../config/routes.dart';
import '../../../providers/cycles.dart';
class CycleFilterSaveButton extends StatelessWidget {
const CycleFilterSaveButton({
@@ -48,7 +49,7 @@ class CycleFilterSaveButton extends StatelessWidget {
builder: (ctx) => AlertDialog(
content: Text('Filters changed.'),
actions: <Widget>[
FlatButton(
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
},
+2 -1
View File
@@ -1,7 +1,8 @@
import 'package:cssd/config/routes.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../../../config/routes.dart';
class CycleResultBanner extends StatelessWidget {
const CycleResultBanner({
Key key,
@@ -1,9 +1,10 @@
import 'package:cssd/config/routes.dart';
import 'package:cssd/models/cycles_models.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:intl/intl.dart';
import '../../../config/routes.dart';
import '../../../models/cycles_models.dart';
class CycleItemBox extends StatelessWidget {
final CycleResultObject item;
final String labels;
@@ -1,8 +1,9 @@
import 'package:cssd/config/routes.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import 'package:cssd/providers/cycles.dart';
import '../../../config/routes.dart';
import '../../../providers/cycles.dart';
class CycleFilterBaner extends StatelessWidget {
const CycleFilterBaner({
@@ -1,7 +1,8 @@
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import 'package:cssd/providers/cycles.dart';
import '../../../providers/cycles.dart';
class CycleResultSearchBox extends StatelessWidget {
const CycleResultSearchBox({
Key key,
+2 -1
View File
@@ -1,8 +1,9 @@
import 'package:cssd/config/routes.dart';
// import 'package:cssd/pages/test_result_screen.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../../config/routes.dart';
class AppDrawer extends StatelessWidget {
@override
Widget build(BuildContext context) {
@@ -1,7 +1,8 @@
import 'package:cssd/config/routes.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:cssd/providers/labels.dart';
import '../../../config/routes.dart';
import '../../../providers/labels.dart';
class LabelAddSaveButton extends StatelessWidget {
const LabelAddSaveButton({
@@ -49,7 +50,7 @@ class LabelAddSaveButton extends StatelessWidget {
builder: (ctx) => AlertDialog(
content: Text('Label added.'),
actions: <Widget>[
FlatButton(
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
},
@@ -1,7 +1,7 @@
import 'package:cssd/config/routes.dart';
import '../../../config/routes.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:cssd/providers/labels.dart';
import '../../../providers/labels.dart';
class LabelUpdateButton extends StatelessWidget {
const LabelUpdateButton({
@@ -52,7 +52,7 @@ class LabelUpdateButton extends StatelessWidget {
builder: (ctx) => AlertDialog(
content: Text('Label updated.'),
actions: <Widget>[
FlatButton(
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
},
@@ -1,7 +1,8 @@
import 'package:cssd/config/routes.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:cssd/providers/labels.dart';
import '../../../config/routes.dart';
import '../../../providers/labels.dart';
class LabelFilterSaveButton extends StatelessWidget {
const LabelFilterSaveButton({
@@ -45,7 +46,7 @@ class LabelFilterSaveButton extends StatelessWidget {
builder: (ctx) => AlertDialog(
content: Text('Filters changed.'),
actions: <Widget>[
FlatButton(
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
},
@@ -1,8 +1,9 @@
import 'package:cssd/config/routes.dart';
import 'package:cssd/models/label_models.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../../../config/routes.dart';
import '../../../models/label_models.dart';
class LabelItemBox extends StatelessWidget {
final LabelResultObject item;
const LabelItemBox({
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../../providers/labels.dart';
class LabelFilterChip extends StatelessWidget {
const LabelFilterChip({
@@ -1,7 +1,8 @@
import 'package:cssd/config/routes.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../../../config/routes.dart';
class LabelFloatingButtons extends StatelessWidget {
const LabelFloatingButtons({
Key key,
@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import '../../../providers/labels.dart';
class LabelSearchBox extends StatelessWidget {
+1 -1
View File
@@ -1,4 +1,4 @@
import 'package:barcode_scan/barcode_scan.dart';
import 'package:barcode_scan2/barcode_scan2.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:url_launcher/url_launcher.dart';
@@ -2,11 +2,13 @@ import 'dart:async';
import 'dart:io';
import 'package:camera/camera.dart';
import 'package:cssd/providers/test_results.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
import 'package:provider/provider.dart';
import '../../../providers/test_results.dart';
class CaptureImage extends StatefulWidget {
@override
_CaptureImageState createState() {
@@ -247,8 +249,13 @@ class _CaptureImageState extends State<CaptureImage>
imagePath = filePath;
var profileProviderObject =
Provider.of<TestResultsProvider>(context, listen: false);
List<File> files = profileProviderObject.catchImages;
files.add(File(imagePath));
List<PlatformFile> files = profileProviderObject.catchImages;
print(imagePath);
files.add(PlatformFile(
name: 'test',
size: 0,
path: imagePath,
bytes: File(imagePath).readAsBytesSync()));
profileProviderObject.setCatchImages(files);
profileProviderObject.setImages();
print(imagePath);
@@ -1,7 +1,4 @@
import 'dart:io';
import 'package:barcode_scan/barcode_scan.dart';
import 'package:cssd/config/routes.dart';
import 'package:barcode_scan2/barcode_scan2.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
@@ -12,6 +9,7 @@ import 'package:meta/meta.dart';
import 'package:multiselect_formfield/multiselect_formfield.dart';
import 'package:provider/provider.dart';
import '../../../config/routes.dart';
import '../../../providers/test_results.dart';
class FormCreator extends StatefulWidget {
@@ -528,7 +526,7 @@ class _FormCreatorState extends State<FormCreator> {
Future captureImage(BuildContext context) async {
var profileProviderObject =
Provider.of<TestResultsProvider>(context, listen: false);
List<File> files = profileProviderObject.catchImages;
List<PlatformFile> files = profileProviderObject.catchImages;
try {
files.add(
await ImagePickerGC.pickImage(
@@ -552,12 +550,17 @@ class _FormCreatorState extends State<FormCreator> {
Future<void> loadAssets(BuildContext context) async {
var profileProviderObject =
Provider.of<TestResultsProvider>(context, listen: false);
List<File> files = profileProviderObject.catchImages;
List<PlatformFile> files = profileProviderObject.catchImages;
try {
files += await FilePicker.getMultiFile(
var datas = await FilePicker.platform.pickFiles(
type: FileType.custom,
allowedExtensions: ['jpg', 'png', 'bmp', 'jpeg', 'pdf', 'docx', 'doc'],
withData: true,
withReadStream: true,
);
files += datas.files;
// files +=
// print(files);
} catch (_) {}
@@ -632,8 +635,9 @@ class ImageBox extends StatelessWidget {
builder: (_) => Container(
color: Colors.white,
child: Center(
child: Image.file(
_testProvider.catchImages[index],
child: Image.memory(
_testProvider.catchImages[index].bytes,
fit: BoxFit.contain,
),
),
),
@@ -653,12 +657,12 @@ class ImageBox extends StatelessWidget {
height: 60,
fit: BoxFit.fill,
)
: Image.file(
_testProvider.catchImages[index],
: Image.memory(
_testProvider.catchImages[index].bytes,
// asset: _images[index],
width: 60,
height: 60,
fit: BoxFit.fill,
fit: BoxFit.contain,
),
),
),
@@ -1,6 +1,7 @@
import 'package:cssd/config/routes.dart';
import 'package:flutter/material.dart';
import '../../../config/routes.dart';
class TestResultAddSaveButton extends StatelessWidget {
const TestResultAddSaveButton({
Key key,
@@ -1,6 +1,7 @@
import 'package:cssd/config/routes.dart';
import 'package:flutter/material.dart';
import '../../../config/routes.dart';
class TestResultAddButton extends StatelessWidget {
const TestResultAddButton({
Key key,
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../../providers/test_results.dart';
class TestResultChip extends StatelessWidget {
@@ -1,7 +1,8 @@
import 'package:cssd/config/routes.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import '../../../config/routes.dart';
// class TestResultFloatingButton extends StatelessWidget {
// const TestResultFloatingButton({
// Key key,
@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import '../../../providers/test_results.dart';
class TestResultSearchBox extends StatelessWidget {
+131 -89
View File
@@ -21,21 +21,21 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.5.0-nullsafety.1"
barcode_scan:
version: "2.6.1"
barcode_scan2:
dependency: "direct main"
description:
name: barcode_scan
name: barcode_scan2
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.0"
version: "4.1.3"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0-nullsafety.1"
version: "2.1.0"
camera:
dependency: "direct main"
description:
@@ -49,49 +49,56 @@ packages:
name: characters
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0-nullsafety.3"
version: "1.1.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0-nullsafety.1"
version: "1.2.0"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0-nullsafety.1"
version: "1.1.0"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
version: "1.15.0-nullsafety.3"
version: "1.15.0"
connectivity:
dependency: "direct main"
description:
name: connectivity
url: "https://pub.dartlang.org"
source: hosted
version: "0.4.8+5"
version: "3.0.6"
connectivity_for_web:
dependency: transitive
description:
name: connectivity_for_web
url: "https://pub.dartlang.org"
source: hosted
version: "0.4.0"
connectivity_macos:
dependency: transitive
description:
name: connectivity_macos
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.0+3"
version: "0.2.0"
connectivity_platform_interface:
dependency: transitive
description:
name: connectivity_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
version: "2.0.1"
convert:
dependency: transitive
description:
@@ -112,49 +119,56 @@ packages:
name: cupertino_icons
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.3"
version: "1.0.3"
dio:
dependency: "direct main"
description:
name: dio
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.9"
version: "4.0.0"
double_back_to_close_app:
dependency: "direct main"
description:
name: double_back_to_close_app
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
version: "2.0.1"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0-nullsafety.1"
version: "1.2.0"
ffi:
dependency: transitive
description:
name: ffi
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.2"
file:
dependency: transitive
description:
name: file
url: "https://pub.dartlang.org"
source: hosted
version: "5.2.1"
version: "6.1.2"
file_picker:
dependency: "direct main"
description:
name: file_picker
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.0+1"
version: "3.0.2+2"
fixnum:
dependency: transitive
description:
name: fixnum
url: "https://pub.dartlang.org"
source: hosted
version: "0.10.11"
version: "1.0.0"
flutter:
dependency: "direct main"
description: flutter
@@ -173,14 +187,14 @@ packages:
name: flutter_phoenix
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.0"
version: "1.0.0"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.8"
version: "2.0.2"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -204,14 +218,14 @@ packages:
name: http
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.1"
version: "0.13.3"
http_parser:
dependency: transitive
description:
name: http_parser
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.4"
version: "4.0.0"
image:
dependency: transitive
description:
@@ -225,21 +239,28 @@ packages:
name: image_picker
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.7+4"
version: "0.7.5+4"
image_picker_for_web:
dependency: transitive
description:
name: image_picker_for_web
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
image_picker_gallery_camera:
dependency: "direct main"
description:
name: image_picker_gallery_camera
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.6"
version: "0.2.2"
image_picker_platform_interface:
dependency: transitive
description:
name: image_picker_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "2.1.0"
intl:
dependency: "direct main"
description:
@@ -247,20 +268,27 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.16.1"
js:
dependency: transitive
description:
name: js
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.3"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.10-nullsafety.1"
version: "0.12.10"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0-nullsafety.3"
version: "1.3.0"
multiselect_formfield:
dependency: "direct main"
description:
@@ -268,48 +296,62 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.2"
nested:
dependency: transitive
description:
name: nested
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.0-nullsafety.1"
version: "1.8.0"
path_provider:
dependency: "direct main"
description:
name: path_provider
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.11"
version: "2.0.2"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.1+2"
version: "2.0.0"
path_provider_macos:
dependency: transitive
description:
name: path_provider_macos
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.4+3"
version: "2.0.0"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.2"
version: "2.0.1"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.0+1"
version: "1.11.1"
petitparser:
dependency: transitive
description:
@@ -323,49 +365,35 @@ packages:
name: platform
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.1"
platform_detect:
dependency: transitive
description:
name: platform_detect
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.0"
version: "3.0.0"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.2"
version: "2.0.0"
process:
dependency: transitive
description:
name: process
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.13"
version: "4.2.1"
protobuf:
dependency: transitive
description:
name: protobuf
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
version: "2.0.0"
provider:
dependency: "direct main"
description:
name: provider
url: "https://pub.dartlang.org"
source: hosted
version: "3.2.0"
pub_semver:
dependency: transitive
description:
name: pub_semver
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.4"
version: "5.0.0"
random_string:
dependency: "direct main"
description:
@@ -379,28 +407,42 @@ packages:
name: shared_preferences
url: "https://pub.dartlang.org"
source: hosted
version: "0.5.7"
version: "2.0.6"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
shared_preferences_macos:
dependency: transitive
description:
name: shared_preferences_macos
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.1+7"
version: "2.0.0"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.3"
version: "2.0.0"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.2+4"
version: "2.0.0"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
sky_engine:
dependency: transitive
description: flutter
@@ -412,112 +454,112 @@ packages:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.0-nullsafety.2"
version: "1.8.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.10.0-nullsafety.1"
version: "1.10.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0-nullsafety.1"
version: "2.1.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0-nullsafety.1"
version: "1.1.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0-nullsafety.1"
version: "1.2.0"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.19-nullsafety.2"
version: "0.3.0"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0-nullsafety.3"
version: "1.3.0"
url_launcher:
dependency: "direct main"
description:
name: url_launcher
url: "https://pub.dartlang.org"
source: hosted
version: "5.4.10"
version: "6.0.6"
url_launcher_linux:
dependency: transitive
description:
name: url_launcher_linux
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
url_launcher_macos:
dependency: transitive
description:
name: url_launcher_macos
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.1+7"
version: "2.0.0"
url_launcher_platform_interface:
dependency: transitive
description:
name: url_launcher_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.7"
version: "2.0.3"
url_launcher_web:
dependency: transitive
description:
name: url_launcher_web
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.1+6"
version: "2.0.1"
url_launcher_windows:
dependency: transitive
description:
name: url_launcher_windows
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0-nullsafety.3"
video_player:
dependency: "direct main"
description:
name: video_player
url: "https://pub.dartlang.org"
source: hosted
version: "0.10.11+2"
video_player_platform_interface:
version: "2.1.0"
win32:
dependency: transitive
description:
name: video_player_platform_interface
name: win32
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
video_player_web:
dependency: transitive
description:
name: video_player_web
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.3+2"
version: "2.2.1"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.0"
version: "0.2.0"
xml:
dependency: transitive
description:
@@ -533,5 +575,5 @@ packages:
source: hosted
version: "2.2.1"
sdks:
dart: ">=2.10.0-110 <2.11.0"
flutter: ">=1.12.13+hotfix.5 <2.0.0"
dart: ">=2.13.0 <3.0.0"
flutter: ">=2.0.0"
+16 -16
View File
@@ -11,33 +11,33 @@ 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.7.0+6
version: 1.7.1+7
environment:
sdk: ">=2.2.2 <3.0.0"
sdk: ">=2.7.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
barcode_scan: ^3.0.0
barcode_scan2: ^4.1.3
camera: ^0.5.8+2
connectivity: ^0.4.8+5
cupertino_icons: ^0.1.2
dio: ^3.0.9
double_back_to_close_app: ^1.2.0
file_picker: ^1.9.0+1
flutter_phoenix: ^0.1.0
connectivity: ^3.0.6
cupertino_icons: ^1.0.3
dio: ^4.0.0
double_back_to_close_app: ^2.0.1
file_picker: ^3.0.2+2
flutter_phoenix: ^1.0.0
font_awesome_flutter: ^8.8.1
http: ^0.12.0+3
image_picker_gallery_camera: ^0.1.6
http: ^0.13.3
image_picker_gallery_camera: ^0.2.2
intl: ^0.16.1
multiselect_formfield: ^0.1.2
path_provider: ^1.6.11
provider: ^3.2.0
path_provider: ^2.0.2
provider: ^5.0.0
random_string: ^2.0.1
shared_preferences: ^0.5.6
url_launcher: ^5.4.10
video_player: ^0.10.11+2
shared_preferences: ^2.0.6
url_launcher: ^6.0.6
# video_player: ^0.10.11+2
dev_dependencies:
flutter_test: