Fix export issue

This commit is contained in:
fhkhd
2023-12-16 14:44:46 +03:30
parent ecdc586ea2
commit dfbec35288
4 changed files with 58 additions and 31 deletions
+42 -31
View File
@@ -11,6 +11,7 @@ import 'package:flutter_downloader/flutter_downloader.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import '../../config/routes.dart'; import '../../config/routes.dart';
import '../../providers/auth.dart';
import '../../providers/connectivity.dart'; import '../../providers/connectivity.dart';
import '../../widgets/CycleScreens/Result/banner.dart'; import '../../widgets/CycleScreens/Result/banner.dart';
import '../../widgets/CycleScreens/Result/search_box.dart'; import '../../widgets/CycleScreens/Result/search_box.dart';
@@ -38,23 +39,25 @@ class _ItemResultScreenState extends State<ItemResultScreen> {
void initState() { void initState() {
sc = new ScrollController(); sc = new ScrollController();
super.initState(); super.initState();
IsolateNameServer.registerPortWithName(_port.sendPort, 'downloader_send_port'); IsolateNameServer.registerPortWithName(
_port.sendPort, 'downloader_send_port');
_port.listen((dynamic data) { _port.listen((dynamic data) {
String id = data[0]; String id = data[0];
DownloadTaskStatus status = data[1]; DownloadTaskStatus status = data[1];
int progress = data[2]; int progress = data[2];
if (status == DownloadTaskStatus.complete) { if (status == DownloadTaskStatus.complete) {
print('Downloaded'); print('Downloaded');
} }
setState((){ }); setState(() {});
}); });
FlutterDownloader.registerCallback(downloadCallback); FlutterDownloader.registerCallback(downloadCallback);
} }
@pragma('vm:entry-point') @pragma('vm:entry-point')
static void downloadCallback(String id, int status, int progress) { static void downloadCallback(String id, int status, int progress) {
final SendPort? send = IsolateNameServer.lookupPortByName('downloader_send_port'); final SendPort? send =
IsolateNameServer.lookupPortByName('downloader_send_port');
send!.send([id, status, progress]); send!.send([id, status, progress]);
} }
@@ -106,7 +109,12 @@ class _ItemResultScreenState extends State<ItemResultScreen> {
), ),
appBar: AppBar( appBar: AppBar(
titleSpacing: -10, titleSpacing: -10,
title: Text('Home', style: TextStyle(color: Colors.white,),), title: Text(
'Home',
style: TextStyle(
color: Colors.white,
),
),
backgroundColor: Colors.black, backgroundColor: Colors.black,
leading: IconButton( leading: IconButton(
icon: Icon( icon: Icon(
@@ -281,30 +289,33 @@ class ItemResultFloatingButton extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final userData = Provider.of<Auth>(context, listen: false).user;
return Row( return Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[ children: <Widget>[
InkWell( if (userData['roles'].contains('Supervisor') ||
customBorder: CircleBorder(), userData['roles'].contains('Admin'))
onTap: () async { InkWell(
var status = await Permission.storage.request(); customBorder: CircleBorder(),
if (status.isGranted) { onTap: () async {
Provider.of<ItemProvider>(context, listen: false).exportItems(); var status = await Permission.storage.request();
} if (status.isGranted) {
}, Provider.of<ItemProvider>(context, listen: false).exportItems();
child: Container( }
padding: EdgeInsets.all(_deviceBlockSize), },
decoration: BoxDecoration( child: Container(
shape: BoxShape.circle, padding: EdgeInsets.all(_deviceBlockSize),
color: Colors.black, decoration: BoxDecoration(
), shape: BoxShape.circle,
child: Icon( color: Colors.black,
Icons.import_export, ),
size: 10 * _deviceBlockSize, child: Icon(
color: Colors.white, Icons.import_export,
size: 10 * _deviceBlockSize,
color: Colors.white,
),
), ),
), ),
),
SizedBox( SizedBox(
width: 2 * _deviceBlockSize, width: 2 * _deviceBlockSize,
), ),
@@ -11,6 +11,7 @@ import 'package:flutter_downloader/flutter_downloader.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import '../../config/routes.dart'; import '../../config/routes.dart';
import '../../providers/auth.dart';
import '../../providers/connectivity.dart'; import '../../providers/connectivity.dart';
import '../../widgets/CycleScreens/Result/banner.dart'; import '../../widgets/CycleScreens/Result/banner.dart';
import '../../widgets/CycleScreens/Result/search_box.dart'; import '../../widgets/CycleScreens/Result/search_box.dart';
@@ -254,9 +255,12 @@ class PackageResultFloatingButton extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final userData = Provider.of<Auth>(context, listen: false).user;
return Row( return Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
if (userData['roles'].contains('Supervisor') ||
userData['roles'].contains('Admin'))
InkWell( InkWell(
customBorder: CircleBorder(), customBorder: CircleBorder(),
onTap: () async { onTap: () async {
+6
View File
@@ -379,8 +379,14 @@ class ItemProvider extends ChangeNotifier {
final taskId = await FlutterDownloader.enqueue( final taskId = await FlutterDownloader.enqueue(
url: Url.exportItems, url: Url.exportItems,
savedDir: baseStorage!.path, savedDir: baseStorage!.path,
headers: {
'Authorization': User.token,
"Accept": "*"
},
showNotification: true, showNotification: true,
openFileFromNotification: true, openFileFromNotification: true,
saveInPublicStorage: true,
fileName: "Items " + DateTime.now().toString() + ".xlsx",
); );
print(taskId); print(taskId);
return true; return true;
+6
View File
@@ -342,9 +342,15 @@ class PackageProvider extends ChangeNotifier {
final baseStorage = await getExternalStorageDirectory(); final baseStorage = await getExternalStorageDirectory();
final taskId = await FlutterDownloader.enqueue( final taskId = await FlutterDownloader.enqueue(
url: Url.exportPackages, url: Url.exportPackages,
headers: {
'Authorization': User.token,
"Accept": "*"
},
savedDir: baseStorage!.path, savedDir: baseStorage!.path,
showNotification: true, showNotification: true,
openFileFromNotification: true, openFileFromNotification: true,
saveInPublicStorage: true,
fileName: "Packages " + DateTime.now().toString() + ".xlsx",
); );
print(taskId); print(taskId);
return true; return true;