This commit is contained in:
unknown
2023-12-07 13:45:51 +03:30
parent a7f57688a7
commit 6464557956
67 changed files with 456 additions and 275 deletions
+4
View File
@@ -187,4 +187,8 @@ class Url {
static String getUsers(String id) {
return '$baseUrl/Users?medical_center_id=$id';
}
static String showItemImage(String file) {
return 'https://www.cssd-doc.com/$file';
}
}
+3
View File
@@ -49,6 +49,7 @@ class ItemDetailObject extends Equatable {
final String createdAt;
final String udi;
final int status;
final List<String>? filePath;
ItemDetailObject({
required this.id,
@@ -61,6 +62,7 @@ class ItemDetailObject extends Equatable {
required this.createdAt,
required this.udi,
required this.status,
this.filePath,
});
@override
@@ -76,6 +78,7 @@ class ItemDetailObject extends Equatable {
createdAt,
udi,
status,
filePath!,
];
}
+2 -1
View File
@@ -89,11 +89,12 @@ class _CycleAddScreenState extends State<CycleAddScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Cycles'),
title: Text('Cycles', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context)
@@ -54,11 +54,12 @@ class _CycleDetailScreenState extends State<CycleDetailScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Cycles'),
title: Text('Cycles', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -104,11 +104,12 @@ class _CycleFilterScreenState extends State<CycleFilterScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Cycles'),
title: Text('Cycles', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context)
@@ -77,11 +77,12 @@ class _CycleResultScreenState extends State<CycleResultScreen> {
),
appBar: AppBar(
titleSpacing: -10,
title: Text('Home'),
title: Text('Home', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
+2 -1
View File
@@ -35,11 +35,12 @@ class _CycleScanScreenState extends State<CycleScanScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Cycles'),
title: Text('Cycles', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -93,10 +93,11 @@ class _CycleUpdateScreenState extends State<CycleUpdateScreen> {
appBar: AppBar(
titleSpacing: -10,
backgroundColor: Colors.black,
title: Text('Cycles'),
title: Text('Cycles', style: TextStyle(color: Colors.white,),),
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context)
+60 -15
View File
@@ -4,7 +4,6 @@ import 'package:cssd/widgets/ItemScreens/Add/item_save_button.dart';
import 'package:cssd/widgets/ItemScreens/Add/upload_image.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import 'package:random_string/random_string.dart';
@@ -27,9 +26,9 @@ class _ItemAddScreenState extends State<ItemAddScreen> {
TextEditingController nameCTRL = new TextEditingController();
TextEditingController specificCTRL = new TextEditingController();
TextEditingController sizeCTRL = new TextEditingController();
TextEditingController dateCTRL = new TextEditingController();
final _form = GlobalKey<FormState>();
bool isInit = true;
bool isLoading = false;
ItemFilterObject? filters;
final batchId = randomString(10);
@@ -41,25 +40,70 @@ class _ItemAddScreenState extends State<ItemAddScreen> {
nameCTRL.text = '';
sizeCTRL.text = '';
specificCTRL.text = '';
dateCTRL.text = DateFormat('y-M-d').format(DateTime.now());
super.initState();
}
void _saveForm(String name, String size, String specific, String udi,String description) {
setState(() {
isLoading = true;
});
if (!_form.currentState!.validate()) {
return;
}
Provider.of<ItemProvider>(context, listen: false)
.createItemResult(
name,
size,
specific,
udi,
description,
batchId,
)
.then(
(result) {
setState(() {
isLoading = false;
});
if (result == 'done') {
showDialog(
context: context,
builder: (ctx) => AlertDialog(
content: Text('Item added.'),
actions: <Widget>[
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
},
child: Text('Ok'),
)
],
),
).then((value) => Navigator.of(context)
.popAndPushNamed(Routes.itemResultScreen));
}
},
);
}
@override
void didChangeDependencies() async {
if (isInit) {
setState(() {
isLoading = true;
});
var itemProviderObject = Provider.of<ItemProvider>(context);
itemProviderObject.catchImages.clear();
itemProviderObject.getItemResults().then(
(result) {
setState(
() {
isInit = false;
isLoading = false;
},
);
},
);
}
isInit = false;
super.didChangeDependencies();
}
@@ -85,11 +129,12 @@ class _ItemAddScreenState extends State<ItemAddScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Items'),
title: Text('Items', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context)
@@ -99,7 +144,7 @@ class _ItemAddScreenState extends State<ItemAddScreen> {
body: Consumer<ConnectivityProvider>(
builder: (ct, connection, _) {
return connection.conStatus != 'offline'
? isInit
? isLoading
? Center(
child: CircularProgressIndicator(
color: Colors.black,
@@ -315,16 +360,16 @@ class _ItemAddScreenState extends State<ItemAddScreen> {
height: 70,
),
ItemAddSaveButton(
form: _form,
nameCTRL: nameCTRL,
udiCTRL: udiCTRL,
descriptionCTRL: descriptionCTRL,
sizeCTRL: sizeCTRL,
specificCTRL: specificCTRL,
batchId: batchId,
dateValue: dateCTRL.text,
onTap: (){
_saveForm(
nameCTRL.text,
sizeCTRL.text,
specificCTRL.text,
udiCTRL.text,
descriptionCTRL.text,
);
},
deviceBlockSize: _deviceBlockSize,
isLoading: isInit,
),
SizedBox(
height: 100,
+2 -1
View File
@@ -54,11 +54,12 @@ class _ItemDetailScreenState extends State<ItemDetailScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Items'),
title: Text('Items', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
+2 -1
View File
@@ -99,11 +99,12 @@ class _ItemFilterScreenState extends State<ItemFilterScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Items'),
title: Text('Items', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context)
+4 -1
View File
@@ -74,11 +74,12 @@ class _ItemResultScreenState extends State<ItemResultScreen> {
),
appBar: AppBar(
titleSpacing: -10,
title: Text('Home'),
title: Text('Home', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -191,6 +192,8 @@ class _ItemResultScreenState extends State<ItemResultScreen> {
searchCTRL: searchCTRL,
text: 'item',
deviceBlockSize: _deviceBlockSize,
textInputType: TextInputType.visiblePassword,
text2: "Udi",
onChanged: (value) {
Provider.of<ItemProvider>(context, listen: false)
.search(value);
+2 -1
View File
@@ -33,11 +33,12 @@ class _ItemScanScreenState extends State<ItemScanScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Items'),
title: Text('Items', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
+2 -1
View File
@@ -84,10 +84,11 @@ class _ItemUpdateScreenState extends State<ItemUpdateScreen> {
appBar: AppBar(
titleSpacing: -10,
backgroundColor: Colors.black,
title: Text('Items'),
title: Text('Items', style: TextStyle(color: Colors.white,),),
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context)
+2 -1
View File
@@ -88,11 +88,12 @@ class _LabelAddScreenState extends State<LabelAddScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Labels'),
title: Text('Labels', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context)
@@ -54,11 +54,12 @@ class _LabelDetailScreenState extends State<LabelDetailScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Labels'),
title: Text('Labels', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -95,11 +95,12 @@ class _LabelFilterScreenState extends State<LabelFilterScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Labels'),
title: Text('Labels', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context)
@@ -72,11 +72,12 @@ class _LabelResultScreenState extends State<LabelResultScreen> {
),
appBar: AppBar(
titleSpacing: -10,
title: Text('Home'),
title: Text('Home', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
+2 -1
View File
@@ -36,11 +36,12 @@ class _LabelScanScreenState extends State<LabelScanScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Labels'),
title: Text('Labels', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -107,10 +107,11 @@ class _LabelUpdateScreenState extends State<LabelUpdateScreen> {
appBar: AppBar(
titleSpacing: -10,
backgroundColor: Colors.black,
title: Text('Labels'),
title: Text('Labels', style: TextStyle(color: Colors.white,),),
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context)
@@ -94,7 +94,7 @@ class _ForgetPassScreenState extends State<ForgetPassScreen> {
child: Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text('CSSD'),
title: Text('CSSD', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
),
body: Selector<ConnectivityProvider, String>(
@@ -106,7 +106,7 @@ class _LoginScreenState extends State<LoginScreen> {
child: Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text('CSSD'),
title: Text('CSSD', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
),
body: Selector<ConnectivityProvider, String>(
@@ -83,7 +83,7 @@ class _RePassScreenState extends State<RePassScreen> {
child: Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text('CSSD'),
title: Text('CSSD', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
),
body: Selector<ConnectivityProvider, String>(
+2 -1
View File
@@ -88,10 +88,11 @@ class _RegisterState extends State<Register> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Login'),
title: Text('Login', style: TextStyle(color: Colors.white,),),
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -90,7 +90,7 @@ class _VerifyPassScreenState extends State<VerifyPassScreen> {
child: Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text('CSSD'),
title: Text('CSSD', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
),
body: Selector<ConnectivityProvider, String>(
@@ -173,6 +173,8 @@ class _MyItemsMineScreenState extends State<MyItemsMineScreen> {
ResultSearchBox(
searchCTRL: searchCTRL,
text: 'item',
text2: "Udi",
textInputType: TextInputType.visiblePassword,
deviceBlockSize: _deviceBlockSize,
onChanged: (value) {
if (userData['roles']?.contains('User')) {
@@ -42,11 +42,12 @@ class _MyItemsResultScreenState extends State<MyItemsResultScreen>
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Home'),
title: Text('Home', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -54,6 +55,7 @@ class _MyItemsResultScreenState extends State<MyItemsResultScreen>
bottom: TabBar(
controller: _tabController,
indicatorColor: kBlue,
labelColor: Colors.white,
tabs: [
Tab(
text: 'Mine',
@@ -55,11 +55,12 @@ class _MyItemsDetailScreenState extends State<MyItemsDetailScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('My Items'),
title: Text('My Items', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -68,11 +68,12 @@ class _MyItemsFilterScreenState extends State<MyItemsFilterScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('My Items'),
title: Text('My Items', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context)
@@ -74,11 +74,12 @@ class _MyItemsHistoryScreenState extends State<MyItemsHistoryScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('My Items'),
title: Text('My Items', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -33,11 +33,12 @@ class _MyItemsScanScreenState extends State<MyItemsScanScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('My Items'),
title: Text('My Items', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -85,11 +85,12 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Item Details'),
title: Text('Item Details', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -122,7 +123,7 @@ class _ItemsTransferScreenState extends State<ItemsTransferScreen> {
text: 'user',
text2: 'name or ID',
deviceBlockSize: _deviceBlockSize,
textInputType: TextInputType.name,
textInputType: TextInputType.visiblePassword,
onChanged: (value) {
Provider.of<UsersProvider>(context, listen: false)
.searchUsers(value);
@@ -42,11 +42,12 @@ class _MyPackagesResultScreenState extends State<MyPackagesResultScreen>
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Home'),
title: Text('Home', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -54,6 +55,7 @@ class _MyPackagesResultScreenState extends State<MyPackagesResultScreen>
bottom: TabBar(
controller: _tabController,
indicatorColor: kPurple,
labelColor: Colors.white,
tabs: [
Tab(
text: 'Mine',
@@ -55,11 +55,12 @@ class _MyPackagesDetailScreenState extends State<MyPackagesDetailScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('My Packages'),
title: Text('My Packages', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -65,11 +65,12 @@ class _MyPackageFilterScreenState extends State<MyPackageFilterScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('My Packages'),
title: Text('My Packages', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context)
@@ -74,11 +74,12 @@ class _MyPackagesHistoryScreenState extends State<MyPackagesHistoryScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('My Packages'),
title: Text('My Packages', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -33,11 +33,12 @@ class _MyPackagesScanScreenState extends State<MyPackagesScanScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('My Packages'),
title: Text('My Packages', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -81,11 +81,12 @@ class _PackageTransferScreenState extends State<PackageTransferScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Package Details'),
title: Text('Package Details', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -118,7 +119,7 @@ class _PackageTransferScreenState extends State<PackageTransferScreen> {
text: 'user',
text2: 'name or ID',
deviceBlockSize: _deviceBlockSize,
textInputType: TextInputType.name,
textInputType: TextInputType.visiblePassword,
onChanged: (value) {
Provider.of<UsersProvider>(context, listen: false)
.searchUsers(value);
+2 -18
View File
@@ -48,23 +48,6 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
(result) {
setState(
() {
// itemVals = [
// {'id': '', 'name-udi': ''}
// ];
// for (var item in result) {
// itemVals.add(item);
// packageProviderObject.itemVals = itemVals;
// }
// initialItemValue.text = itemVals[1]['name-udi'];
// packageProviderObject.initialItemValue = initialItemValue.text;
// itemVals.forEach(
// (item) {
// if (item['id'] == '') {
// selectedItemsCTRL.text = item['name']!;
// }
// },
// );
isInit = false;
},
);
@@ -95,11 +78,12 @@ class _PackageAddScreenState extends State<PackageAddScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Packages'),
title: Text('Packages', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context)
@@ -49,11 +49,12 @@ class _PackageDetailScreenState extends State<PackageDetailScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Packages'),
title: Text('Packages', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -92,11 +92,12 @@ class _PackageFilterScreenState extends State<PackageFilterScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Packages'),
title: Text('Packages', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context)
@@ -74,11 +74,12 @@ class _PackageResultScreenState extends State<PackageResultScreen> {
),
appBar: AppBar(
titleSpacing: -10,
title: Text('Home'),
title: Text('Home', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -33,11 +33,12 @@ class _PackageScanScreenState extends State<PackageScanScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Packages'),
title: Text('Packages', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
@@ -81,10 +81,11 @@ class _PackageUpdateScreenState extends State<PackageUpdateScreen> {
appBar: AppBar(
titleSpacing: -10,
backgroundColor: Colors.black,
title: Text('Packages'),
title: Text('Packages', style: TextStyle(color: Colors.white,),),
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context)
+2 -1
View File
@@ -60,11 +60,12 @@ class _TestResultAddScreenState extends State<TestResultAddScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Test Results'),
title: Text('Test Results', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
// padding: EdgeInsets.all(0),
+2 -1
View File
@@ -46,11 +46,12 @@ class _TestDetailsScreenState extends State<TestDetailsScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Test Results'),
title: Text('Test Results', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
+2 -2
View File
@@ -1,5 +1,4 @@
import 'package:barcode_scan2/barcode_scan2.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
@@ -139,11 +138,12 @@ class _TestFilterScreenState extends State<TestFilterScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Test Results'),
title: Text('Test Results', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).popAndPushNamed(
+5 -2
View File
@@ -74,8 +74,10 @@ class _FormPageState extends State<FormPage> {
setState(() {
_isLoading = true;
});
var providerObject = Provider.of<TestResultsProvider>(context);
String testTypeName = Provider.of<TestResultsProvider>(context).testType;
String testCode = Provider.of<TestResultsProvider>(context).testCode;
providerObject.catchImages.clear();
Provider.of<Inputs>(context, listen: false)
.getInputs(
testResultId: '',
@@ -107,11 +109,11 @@ class _FormPageState extends State<FormPage> {
child: Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text('Add Test Result'),
title: Text('Add Test Result', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
actions: <Widget>[
IconButton(
icon: Icon(Icons.save),
icon: Icon(Icons.save, color: Colors.white,),
onPressed: () {
_saveForm();
},
@@ -120,6 +122,7 @@ class _FormPageState extends State<FormPage> {
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () {
+2 -1
View File
@@ -82,11 +82,12 @@ class _TestResultScreenState extends State<TestResultScreen> {
TestResultFloatingButton(deviceBlockSize: _deviceBlockSize),
appBar: AppBar(
titleSpacing: -10,
title: Text('Home'),
title: Text('Home', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
+2 -1
View File
@@ -30,11 +30,12 @@ class _TestScanScreenState extends State<TestScanScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Test Results'),
title: Text('Test Results', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
+2 -1
View File
@@ -76,11 +76,12 @@ class _TestVerifyScreenState extends State<TestVerifyScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Home'),
title: Text('Home', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
+3 -4
View File
@@ -34,14 +34,16 @@ class HomePage extends StatelessWidget {
),
appBar: AppBar(
centerTitle: true,
title: Text('CSSD'),
title: Text('CSSD', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
iconTheme: IconThemeData(color: Colors.white),
actions: <Widget>[
Padding(
padding: const EdgeInsets.only(right: 10.0),
child: IconButton(
icon: Icon(
Icons.power_settings_new,
color: Colors.white,
),
onPressed: () {
showDialog(
@@ -159,9 +161,6 @@ class HomePage extends StatelessWidget {
),
),
),
Divider(
height: 2,
),
SelectionItem(
firstLine: 'CYCLES',
secondLine: 'List, Details & Add a one',
+2 -1
View File
@@ -48,11 +48,12 @@ class _MyInfoScreenState extends State<MyInfoScreen> {
child: Scaffold(
appBar: AppBar(
titleSpacing: -10,
title: Text('Dashboard'),
title: Text('Dashboard', style: TextStyle(color: Colors.white,),),
backgroundColor: Colors.black,
leading: IconButton(
icon: Icon(
Icons.keyboard_arrow_left,
color: Colors.white,
size: 35,
),
onPressed: () => Navigator.of(context).pop(),
+12 -1
View File
@@ -238,7 +238,7 @@ class ItemProvider extends ChangeNotifier {
items = [];
searchBoxValue = value;
originalItems!.forEach((result) {
if (result.id.toString().contains(searchBoxValue)) {
if (result.udi.toString().contains(searchBoxValue)) {
items!.add(result);
}
});
@@ -312,10 +312,20 @@ class ItemProvider extends ChangeNotifier {
createdAt: '2019-09-18 10:02:03',
udi: 'null',
status: 0,
filePath: [],
);
}
var data = json.decode(response.body)['data'];
print(data);
List<String> mediaList = [];
if (data['filesPath'] != null) {
for (var file in data['filesPath']) {
mediaList.add(Url.showItemImage(file));
}
}
result = ItemDetailObject(
id: data['id'].toString(),
description: data['note'] != null ? data['note'] : '',
@@ -328,6 +338,7 @@ class ItemProvider extends ChangeNotifier {
createdAt: data['created_at'] != null ? data['created_at'] : '',
udi: data['udi'] != null ? data['udi'] : '',
status: data['status'],
filePath: mediaList,
);
return result!;
}
+2 -2
View File
@@ -45,7 +45,7 @@ class MyItemProvider extends ChangeNotifier {
myItems = [];
searchBoxValue = value;
originalMyItems!.forEach((result) {
if (result.id.toString().contains(searchBoxValue)) {
if (result.udi.toString().contains(searchBoxValue)) {
myItems!.add(result);
}
});
@@ -56,7 +56,7 @@ class MyItemProvider extends ChangeNotifier {
hospitalItems = [];
searchBoxValue = value;
originalHospitalItems!.forEach((result) {
if (result.id.toString().contains(searchBoxValue)) {
if (result.udi.toString().contains(searchBoxValue)) {
hospitalItems!.add(result);
}
});
+4 -2
View File
@@ -312,8 +312,10 @@ class PackageProvider extends ChangeNotifier {
var data = json.decode(response.body)['data'];
List<String> itemsList = [];
for (var item in data['items']) {
itemsList
.add("${item['name']} - ${item['udi'] != null ? item['udi'] : ''}");
// itemsList
// .add("${item['name']} - ${item['udi'] != null ? item['udi'] : ''}");
itemsList
.add("${item['id']} ${item['name']}");
}
print(data);
result = PackageDetailObject(
@@ -1,108 +1,23 @@
// ignore_for_file: must_be_immutable
import 'package:cssd/config/colors.dart';
import 'package:cssd/providers/items.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../../config/routes.dart';
class ItemAddSaveButton extends StatefulWidget {
ItemAddSaveButton({
class ItemAddSaveButton extends StatelessWidget {
const ItemAddSaveButton({
Key? key,
required GlobalKey<FormState> form,
this.batchId,
required this.nameCTRL,
required this.descriptionCTRL,
required this.udiCTRL,
required double deviceBlockSize,
required this.sizeCTRL,
required this.specificCTRL,
required this.dateValue,
required this.isLoading,
}) : _form = form,
_deviceBlockSize = deviceBlockSize,
required this.onTap,
}) : _deviceBlockSize = deviceBlockSize,
super(key: key);
final GlobalKey<FormState> _form;
final TextEditingController nameCTRL;
final TextEditingController descriptionCTRL;
final TextEditingController udiCTRL;
final TextEditingController sizeCTRL;
final TextEditingController specificCTRL;
final String dateValue;
final String? batchId;
final double _deviceBlockSize;
bool isLoading;
@override
State<ItemAddSaveButton> createState() => _ItemAddSaveButtonState();
}
class _ItemAddSaveButtonState extends State<ItemAddSaveButton> {
final VoidCallback onTap;
@override
Widget build(BuildContext context) {
return InkWell(
onTap: () {
if (!widget._form.currentState!.validate()) {
return;
}
setState(() {
widget.isLoading = true;
});
Provider.of<ItemProvider>(context, listen: false)
.createItemResult(
widget.nameCTRL.text,
widget.sizeCTRL.text,
widget.specificCTRL.text,
widget.udiCTRL.text,
widget.descriptionCTRL.text,
widget.batchId,
)
.then(
(result) {
setState(() {
widget.isLoading = false;
});
if (result == 'done') {
showDialog(
context: context,
builder: (ctx) => AlertDialog(
content: Text('Item added.'),
actions: <Widget>[
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
},
child: Text('Ok'),
)
],
),
).then((value) => Navigator.of(context)
.popAndPushNamed(Routes.testResultScreen));
}
},
);
showDialog(
context: context,
builder: (ctx) => AlertDialog(
content: Text('Item added.'),
actions: <Widget>[
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
},
child: Text('Ok'),
)
],
),
).then((_) {
Navigator.of(context).pushReplacementNamed(Routes.itemResultScreen);
});
},
onTap: onTap,
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 5 * widget._deviceBlockSize,
horizontal: 5 * _deviceBlockSize,
vertical: 10,
),
decoration: BoxDecoration(
@@ -117,7 +32,7 @@ class _ItemAddSaveButtonState extends State<ItemAddSaveButton> {
'Save',
style: TextStyle(
color: Colors.white,
fontSize: 5 * widget._deviceBlockSize,
fontSize: 5 * _deviceBlockSize,
),
),
),
+19 -14
View File
@@ -90,20 +90,24 @@ class _UploaderImageState extends State<UploaderImage> {
}
Future<void> loadAssetsFromFilePicker(BuildContext context) async {
var providerObject = Provider.of<ItemProvider>(context, listen: false);
List<PlatformFile> files = providerObject.catchImages;
try {
var datas = await FilePicker.platform.pickFiles(
type: FileType.custom,
allowedExtensions: ['jpg', 'png', 'bmp', 'jpeg', 'pdf', 'docx', 'doc'],
withData: true,
withReadStream: true,
);
files += datas!.files;
} catch (_) {}
providerObject.setCatchImages(files);
providerObject.setImages();
var providerObject = Provider.of<ItemProvider>(context, listen: false);
List<PlatformFile> files = providerObject.catchImages;
var image = await ImagePicker.platform.pickImage(
source: ImageSource.gallery,
imageQuality: 25,
);
if (image != null) {
files.add(
PlatformFile(
path: image.path,
name: "item_image",
bytes: File(image.path).readAsBytesSync(),
size: File(image.path).lengthSync(),
),
);
providerObject.setCatchImages(files);
providerObject.setImages();
}
}
Future<void> loadAssetsFromCamera(BuildContext context) async {
@@ -111,6 +115,7 @@ class _UploaderImageState extends State<UploaderImage> {
List<PlatformFile> _catchImages = providerObject.catchImages;
var image = await ImagePicker.platform.pickImage(
source: ImageSource.camera,
imageQuality: 25,
);
if (image != null) {
_catchImages.add(
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:url_launcher/url_launcher.dart';
class ItemDetailsDataBox extends StatelessWidget {
const ItemDetailsDataBox({
Key? key,
@@ -316,6 +317,22 @@ class ItemDetailsDataBox extends StatelessWidget {
),
],
),
Divider(),
SizedBox(
height: 10,
),
Container(
width: double.infinity,
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 20),
child: ListView.separated(
shrinkWrap: true,
itemBuilder: (ctx, index) {
return Image(image: NetworkImage(datas.filePath![index]));
},
separatorBuilder: (ctx, index) => Divider(),
itemCount: datas.filePath!.length,
),
),
],
),
),
@@ -35,21 +35,21 @@ class ItemItemBox extends StatelessWidget {
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
if (item!.udi != null)
Container(
padding: const EdgeInsets.all(6.0),
child: Text(
item!.udi!,
style: TextStyle(
fontWeight: FontWeight.w700,
fontSize: 3 * _deviceBlockSize,
),
),
),
if (item!.udi != null)
SizedBox(
width: 3 * _deviceBlockSize,
),
// if (item!.udi != null)
// Container(
// padding: const EdgeInsets.all(6.0),
// child: Text(
// item!.udi!,
// style: TextStyle(
// fontWeight: FontWeight.w700,
// fontSize: 3 * _deviceBlockSize,
// ),
// ),
// ),
// if (item!.udi != null)
// SizedBox(
// width: 3 * _deviceBlockSize,
// ),
// Spacer(),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
@@ -69,7 +69,7 @@ class ItemItemBox extends StatelessWidget {
child: Row(
children: [
Text(
'Size: ',
'Udi: ',
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 3 * _deviceBlockSize,
@@ -77,7 +77,7 @@ class ItemItemBox extends StatelessWidget {
),
),
Text(
item!.size,
item!.udi ?? '',
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontWeight: FontWeight.w700,
@@ -92,7 +92,7 @@ class ItemItemBox extends StatelessWidget {
child: Row(
children: <Widget>[
Text(
'User: ',
'Owner: ',
style: TextStyle(
color: Colors.grey,
fontSize: 3 * _deviceBlockSize,
@@ -37,21 +37,21 @@ class MyItemsItemDataBox extends StatelessWidget {
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
if (items!.udi != null)
Container(
padding: const EdgeInsets.all(6.0),
child: Text(
items!.udi!,
style: TextStyle(
fontWeight: FontWeight.w700,
fontSize: 3 * _deviceBlockSize,
),
),
),
if (items!.udi != null)
SizedBox(
width: 3 * _deviceBlockSize,
),
// if (items!.udi != null)
// Container(
// padding: const EdgeInsets.all(6.0),
// child: Text(
// items!.udi!,
// style: TextStyle(
// fontWeight: FontWeight.w700,
// fontSize: 3 * _deviceBlockSize,
// ),
// ),
// ),
// if (items!.udi != null)
// SizedBox(
// width: 3 * _deviceBlockSize,
// ),
// Spacer(),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
@@ -71,7 +71,7 @@ class MyItemsItemDataBox extends StatelessWidget {
child: Row(
children: [
Text(
'Size: ',
'Udi: ',
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 3 * _deviceBlockSize,
@@ -79,7 +79,7 @@ class MyItemsItemDataBox extends StatelessWidget {
),
),
Text(
items!.size,
items!.udi ?? '',
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontWeight: FontWeight.w700,
@@ -95,7 +95,7 @@ class MyItemsItemDataBox extends StatelessWidget {
child: Row(
children: <Widget>[
Text(
'User: ',
'Owner: ',
style: TextStyle(
color: Colors.grey,
fontSize: 3 * _deviceBlockSize,
@@ -235,7 +235,7 @@ class PackageDetailsDataBox extends StatelessWidget {
shrinkWrap: true,
itemBuilder: (ctx, index) => RichText(
text: TextSpan(
text: 'Item ',
text: '${index + 1}. ',
style: TextStyle(
color: Colors.grey,
fontFamily: 'montserrat',
@@ -105,7 +105,7 @@ class _FormCreatorState extends State<FormCreator> {
),
InkWell(
onTap: () async {
await loadAssets(context);
await loadAssetsFromFilePicker(context);
},
child: Container(
width: MediaQuery.of(context).size.width - 40,
@@ -570,34 +570,33 @@ class _FormCreatorState extends State<FormCreator> {
profileProviderObject.setImages();
}
Future<void> loadAssets(BuildContext context) async {
var profileProviderObject =
Provider.of<TestResultsProvider>(context, listen: false);
List<PlatformFile> files = profileProviderObject.catchImages;
try {
var datas = await FilePicker.platform.pickFiles(
type: FileType.custom,
allowedExtensions: ['jpg', 'png', 'bmp', 'jpeg', 'pdf', 'docx', 'doc'],
withData: true,
withReadStream: true,
);
files += datas!.files;
// files +=
// print(files);
} catch (_) {}
profileProviderObject.setCatchImages(files);
profileProviderObject.setImages();
// profileProviderObject.addImage();
Future<void> loadAssetsFromFilePicker(BuildContext context) async {
var providerObject = Provider.of<TestResultsProvider>(context, listen: false);
List<PlatformFile> files = providerObject.catchImages;
var image = await ImagePicker.platform.pickImage(
source: ImageSource.gallery,
imageQuality: 25,
);
if (image != null) {
files.add(
PlatformFile(
path: image.path,
name: "item_image",
bytes: File(image.path).readAsBytesSync(),
size: File(image.path).lengthSync(),
),
);
providerObject.setCatchImages(files);
providerObject.setImages();
}
}
Future<void> loadAssetsFromCamera(BuildContext context) async {
var providerObject =
Provider.of<TestResultsProvider>(context, listen: false);
var providerObject = Provider.of<TestResultsProvider>(context, listen: false);
List<PlatformFile> _catchImages = providerObject.catchImages;
var image = await ImagePicker.platform.pickImage(
source: ImageSource.camera,
imageQuality: 25,
);
if (image != null) {
_catchImages.add(
@@ -6,13 +6,17 @@ import FlutterMacOS
import Foundation
import connectivity_macos
import flutter_image_compress_macos
import path_provider_foundation
import shared_preferences_foundation
import sqflite
import url_launcher_macos
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
ConnectivityPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlugin"))
FlutterImageCompressMacosPlugin.register(with: registry.registrar(forPlugin: "FlutterImageCompressMacosPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
}
+149 -13
View File
@@ -41,6 +41,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.1"
cached_network_image:
dependency: transitive
description:
name: cached_network_image
sha256: f98972704692ba679db144261172a8e20feb145636c617af0eb4022132a6797f
url: "https://pub.dev"
source: hosted
version: "3.3.0"
cached_network_image_platform_interface:
dependency: transitive
description:
name: cached_network_image_platform_interface
sha256: "56aa42a7a01e3c9db8456d9f3f999931f1e05535b5a424271e9a38cabf066613"
url: "https://pub.dev"
source: hosted
version: "3.0.0"
cached_network_image_web:
dependency: transitive
description:
name: cached_network_image_web
sha256: "759b9a9f8f6ccbb66c185df805fac107f05730b1dab9c64626d1008cca532257"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
camera:
dependency: "direct main"
description:
@@ -117,10 +141,10 @@ packages:
dependency: transitive
description:
name: collection
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
url: "https://pub.dev"
source: hosted
version: "1.17.2"
version: "1.18.0"
connectivity:
dependency: "direct main"
description:
@@ -254,6 +278,54 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_cache_manager:
dependency: transitive
description:
name: flutter_cache_manager
sha256: "8207f27539deb83732fdda03e259349046a39a4c767269285f449ade355d54ba"
url: "https://pub.dev"
source: hosted
version: "3.3.1"
flutter_image_compress:
dependency: "direct main"
description:
name: flutter_image_compress
sha256: f159d2e8c4ed04b8e36994124fd4a5017a0f01e831ae3358c74095c340e9ae5e
url: "https://pub.dev"
source: hosted
version: "2.1.0"
flutter_image_compress_common:
dependency: transitive
description:
name: flutter_image_compress_common
sha256: "7cad12802628706655920089cfe9ee1d1098300e7f39a079eb160458bbc47652"
url: "https://pub.dev"
source: hosted
version: "1.0.3"
flutter_image_compress_macos:
dependency: transitive
description:
name: flutter_image_compress_macos
sha256: fea1e3d71150d03373916b832c49b5c2f56c3e7e13da82a929274a2c6f88251e
url: "https://pub.dev"
source: hosted
version: "1.0.1"
flutter_image_compress_platform_interface:
dependency: transitive
description:
name: flutter_image_compress_platform_interface
sha256: eb4f055138b29b04498ebcb6d569aaaee34b64d75fb74ea0d40f9790bf47ee9d
url: "https://pub.dev"
source: hosted
version: "1.0.3"
flutter_image_compress_web:
dependency: transitive
description:
name: flutter_image_compress_web
sha256: da41cc3859f19d11c7d10be615f6a9dcf0907e7daffde7442bf4cc2486663660
url: "https://pub.dev"
source: hosted
version: "0.1.3+2"
flutter_launcher_icons:
dependency: "direct dev"
description:
@@ -412,10 +484,10 @@ packages:
dependency: transitive
description:
name: meta
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
url: "https://pub.dev"
source: hosted
version: "1.9.1"
version: "1.10.0"
mime:
dependency: transitive
description:
@@ -440,6 +512,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.0"
network_image:
dependency: "direct main"
description:
name: network_image
sha256: d257e7601f72089f18f1d05e62c9cd100f49bd256c30c98cba0b1cdaf3d517e3
url: "https://pub.dev"
source: hosted
version: "0.1.1"
octo_image:
dependency: transitive
description:
name: octo_image
sha256: "45b40f99622f11901238e18d48f5f12ea36426d8eced9f4cbf58479c7aa2430d"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
path:
dependency: transitive
description:
@@ -560,6 +648,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.3.1"
rxdart:
dependency: transitive
description:
name: rxdart
sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb"
url: "https://pub.dev"
source: hosted
version: "0.27.7"
shared_preferences:
dependency: "direct main"
description:
@@ -629,22 +725,46 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.10.0"
sprintf:
dependency: transitive
description:
name: sprintf
sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
url: "https://pub.dev"
source: hosted
version: "7.0.0"
sqflite:
dependency: transitive
description:
name: sqflite
sha256: "591f1602816e9c31377d5f008c2d9ef7b8aca8941c3f89cc5fd9d84da0c38a9a"
url: "https://pub.dev"
source: hosted
version: "2.3.0"
sqflite_common:
dependency: transitive
description:
name: sqflite_common
sha256: bb4738f15b23352822f4c42a531677e5c6f522e079461fd240ead29d8d8a54a6
url: "https://pub.dev"
source: hosted
version: "2.5.0+2"
stack_trace:
dependency: transitive
description:
name: stack_trace
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
url: "https://pub.dev"
source: hosted
version: "1.11.0"
version: "1.11.1"
stream_channel:
dependency: transitive
description:
name: stream_channel
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
url: "https://pub.dev"
source: hosted
version: "2.1.1"
version: "2.1.2"
stream_transform:
dependency: transitive
description:
@@ -661,6 +781,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.0"
synchronized:
dependency: transitive
description:
name: synchronized
sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
term_glyph:
dependency: transitive
description:
@@ -673,10 +801,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
url: "https://pub.dev"
source: hosted
version: "0.6.0"
version: "0.6.1"
typed_data:
dependency: transitive
description:
@@ -749,6 +877,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.8"
uuid:
dependency: transitive
description:
name: uuid
sha256: df5a4d8f22ee4ccd77f8839ac7cb274ebc11ef9adcce8b92be14b797fe889921
url: "https://pub.dev"
source: hosted
version: "4.2.1"
vector_math:
dependency: transitive
description:
@@ -761,10 +897,10 @@ packages:
dependency: transitive
description:
name: web
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
url: "https://pub.dev"
source: hosted
version: "0.1.4-beta"
version: "0.3.0"
win32:
dependency: transitive
description:
@@ -798,5 +934,5 @@ packages:
source: hosted
version: "3.1.2"
sdks:
dart: ">=3.1.0 <4.0.0"
dart: ">=3.2.0-194.0.dev <4.0.0"
flutter: ">=3.13.0"
+3 -1
View File
@@ -11,7 +11,7 @@ description: A new Flutter project.
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.7.1+7
version: 3.0.0+0
environment:
sdk: ">=3.0.5 <4.0.0"
@@ -40,6 +40,8 @@ dependencies:
equatable: ^2.0.5
flutter_lints: ^2.0.3
image_picker: ^0.7.5+4
flutter_image_compress: ^2.1.0
network_image: ^0.1.1
# video_player: ^0.10.11+2
dev_dependencies:
+6 -1
View File
@@ -10,6 +10,11 @@ include(${EPHEMERAL_DIR}/generated_config.cmake)
# https://github.com/flutter/flutter/issues/57146.
set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper")
# Set fallback configurations for older versions of the flutter tool.
if (NOT DEFINED FLUTTER_TARGET_PLATFORM)
set(FLUTTER_TARGET_PLATFORM "windows-x64")
endif()
# === Flutter Library ===
set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll")
@@ -92,7 +97,7 @@ add_custom_command(
COMMAND ${CMAKE_COMMAND} -E env
${FLUTTER_TOOL_ENVIRONMENT}
"${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat"
windows-x64 $<CONFIG>
${FLUTTER_TARGET_PLATFORM} $<CONFIG>
VERBATIM
)
add_custom_target(flutter_assemble DEPENDS