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