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