11import 'dart:convert' ;
22
3- import 'package:cookie_jar/cookie_jar.dart' ;
43import 'package:dio/dio.dart' ;
5- import 'package:dio_cookie_manager/dio_cookie_manager.dart' ;
64import 'package:flutter/material.dart' ;
75import 'package:flutter/services.dart' ;
86import 'package:flutter_local_notifications/flutter_local_notifications.dart' ;
97import 'package:images_picker/images_picker.dart' ;
108import 'package:multi_image_picker/multi_image_picker.dart' ;
119import 'package:piwigo_ng/api/API.dart' ;
12- import 'package:piwigo_ng/api/SessionAPI.dart' ;
1310import 'package:piwigo_ng/constants/SettingsConstants.dart' ;
1411import 'package:piwigo_ng/views/components/snackbars.dart' ;
1512
@@ -30,7 +27,7 @@ class Uploader {
3027 final android = AndroidNotificationDetails (
3128 'channel id' ,
3229 'channel name' ,
33- 'channel description' ,
30+ channelDescription : 'channel description' ,
3431 priority: Priority .high,
3532 importance: Importance .max
3633 );
@@ -55,10 +52,8 @@ class Uploader {
5552 ScaffoldMessenger .of (context).showSnackBar (snackBar);
5653
5754 for (var element in photos) {
58-
5955 Response response = await uploadChunk (element, category, info);
6056
61- API .dio.clear ();
6257 if (json.decode (response.data)["stat" ] == "fail" ) {
6358 print ("Request failed: ${response .statusCode }" );
6459
@@ -72,14 +67,6 @@ class Uploader {
7267 await _showUploadNotification (result);
7368 }
7469
75- void createDio () async {
76- API .dio = Dio ();
77- API .cookieJar = CookieJar ();
78- API .dio.interceptors.add (CookieManager (API .cookieJar));
79- API .dio.options.baseUrl = API .prefs.getString ("base_url" );
80- await loginUser (API .prefs.getString ("base_url" ), API .prefs.getString ("username" ), API .prefs.getString ("password" ));
81- }
82-
8370 void upload (Media photo, String category) async {
8471 Map <String , String > queries = {"format" : "json" , "method" : "pwg.images.upload" };
8572
@@ -88,6 +75,12 @@ class Uploader {
8875 ByteData byteData = await asset.getByteData ();
8976 List <int > imageData = byteData.buffer.asUint8List ();
9077
78+ Dio dio = new Dio (
79+ BaseOptions (
80+ baseUrl: API .prefs.getString ("base_url" ),
81+ ),
82+ );
83+
9184 FormData formData = FormData .fromMap ({
9285 "category" : category,
9386 "pwg_token" : API .prefs.getString ("pwg_token" ),
@@ -98,7 +91,7 @@ class Uploader {
9891 "name" : photo.path.split ('/' ).last,
9992 });
10093
101- Response response = await API . dio.post ("ws.php" ,
94+ Response response = await dio.post ("ws.php" ,
10295 data: formData,
10396 queryParameters: queries,
10497 );
@@ -126,21 +119,26 @@ class Uploader {
126119 if (info['tag_ids' ].isNotEmpty) fields['tag_ids' ] = info['tag_ids' ];
127120 if (info['level' ] != - 1 ) fields['level' ] = info['level' ];
128121
129- ChunkedUploader chunkedUploader = ChunkedUploader (API .dio);
122+ ChunkedUploader chunkedUploader = ChunkedUploader (new Dio (
123+ BaseOptions (
124+ baseUrl: API .prefs.getString ("base_url" ),
125+ ),
126+ ));
130127 print (await FlutterAbsolutePath .getAbsolutePath (photo.path));
131128 try {
132129 Future <Response > response = chunkedUploader.upload (
133- context: context,
134- path: "/ws.php" ,
135- filePath: await FlutterAbsolutePath .getAbsolutePath (photo.path),
136- maxChunkSize: API .prefs.getInt ("upload_form_chunk_size" )* 1000 ,
137- params: queries,
138- method: 'POST' ,
139- data: fields,
140- contentType: Headers .formUrlEncodedContentType,
141- onUploadProgress: (value) {
142- // print('${photo.name} $progress');
143- });
130+ context: context,
131+ path: "/ws.php" ,
132+ filePath: await FlutterAbsolutePath .getAbsolutePath (photo.path),
133+ maxChunkSize: API .prefs.getInt ("upload_form_chunk_size" )* 1000 ,
134+ params: queries,
135+ method: 'POST' ,
136+ data: fields,
137+ contentType: Headers .formUrlEncodedContentType,
138+ onUploadProgress: (value) {
139+ // print('${photo.name} $progress');
140+ },
141+ );
144142 return response;
145143 } on DioError catch (e) {
146144 print ('Dio upload chunk error $e ' );
0 commit comments