Skip to content

Commit 53c9784

Browse files
authored
Merge branch 'Piwigo:master' into master
2 parents b3d3de4 + 985beb6 commit 53c9784

18 files changed

Lines changed: 398 additions & 239 deletions

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ if (keystorePropertiesFile.exists()) {
3333

3434

3535
android {
36-
compileSdkVersion 30
36+
compileSdkVersion 31
3737

3838
sourceSets {
3939
main.java.srcDirs += 'src/main/kotlin'
@@ -43,7 +43,7 @@ android {
4343
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
4444
applicationId "com.piwigo.piwigo_ng"
4545
minSdkVersion 21
46-
targetSdkVersion 30
46+
targetSdkVersion 31
4747
versionCode flutterVersionCode.toInteger()
4848
versionName flutterVersionName
4949
}

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
buildscript {
2-
ext.kotlin_version = '1.3.50'
2+
ext.kotlin_version = '1.5.31'
33
repositories {
44
google()
55
jcenter()

lib/api/API.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
88
class API {
99
static final API _singleton = API._internal();
1010

11-
static Dio dio = Dio();
11+
Dio dio = Dio();
1212
static CookieJar cookieJar = CookieJar();
1313
static Uploader uploader;
1414
static SharedPreferences prefs;

lib/api/CategoryAPI.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Future<Map<String,dynamic>> fetchAlbums(String albumID) async {
1313
};
1414

1515
try {
16-
Response response = await API.dio.get('ws.php', queryParameters: queries);
16+
Response response = await API().dio.get('ws.php', queryParameters: queries);
1717

1818
if (response.statusCode == 200) {
1919
return json.decode(response.data);
@@ -38,7 +38,7 @@ Future<Map<String,dynamic>> getAlbumList() async {
3838
};
3939

4040
try {
41-
Response response = await API.dio.get('ws.php', queryParameters: queries);
41+
Response response = await API().dio.get('ws.php', queryParameters: queries);
4242

4343
if (response.statusCode == 200) {
4444
return json.decode(response.data);
@@ -66,7 +66,7 @@ Future<dynamic> addCategory(String catName, String catDesc, String parent) async
6666
"parent": parent
6767
};
6868
try {
69-
Response response = await API.dio.post('ws.php', queryParameters: queries);
69+
Response response = await API().dio.post('ws.php', queryParameters: queries);
7070

7171
if (response.statusCode == 200) {
7272
return json.decode(response.data);
@@ -95,7 +95,7 @@ Future<dynamic> deleteCategory(String catId, {String deletionMode = "delete_orph
9595
'photo_deletion_mode': deletionMode,
9696
});
9797
try {
98-
Response response = await API.dio.post('ws.php',
98+
Response response = await API().dio.post('ws.php',
9999
data: formData,
100100
queryParameters: queries
101101
);
@@ -128,7 +128,7 @@ Future<dynamic> moveCategory(int catId, String parentCatId) async {
128128
});
129129

130130
try {
131-
Response response = await API.dio.post('ws.php',
131+
Response response = await API().dio.post('ws.php',
132132
data: formData,
133133
queryParameters: queries
134134
);
@@ -160,7 +160,7 @@ Future<dynamic> editCategory(int catId, String catName, String catDesc) async {
160160
"comment": catDesc,
161161
});
162162
try {
163-
Response response = await API.dio.post(
163+
Response response = await API().dio.post(
164164
'ws.php',
165165
data: formData,
166166
queryParameters: queries

lib/api/ImageAPI.dart

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Future<Map<String,dynamic>> fetchImages(String albumID, int page) async {
2323
};
2424

2525
try {
26-
Response response = await API.dio.get('ws.php', queryParameters: queries);
26+
Response response = await API().dio.get('ws.php', queryParameters: queries);
2727

2828
if (response.statusCode == 200) {
2929
return json.decode(response.data);
@@ -51,7 +51,7 @@ Future<dynamic> getImageInfo(int imageId) async {
5151
"image_id": imageId
5252
});
5353
try {
54-
Response response = await API.dio.post('ws.php',
54+
Response response = await API().dio.post('ws.php',
5555
data: formData,
5656
queryParameters: queries
5757
);
@@ -94,7 +94,7 @@ Future<void> _showNotification(Map<String, dynamic> downloadStatus) async {
9494
final android = AndroidNotificationDetails(
9595
'channel id',
9696
'channel name',
97-
'channel description',
97+
channelDescription: 'channel description',
9898
priority: Priority.high,
9999
importance: Importance.max
100100
);
@@ -157,7 +157,7 @@ Future<dynamic> downloadImage(String dirPath, String url, String file) async {
157157

158158
var localPath = path.join(dirPath, file);
159159
try {
160-
Response response = await API.dio.download(
160+
Response response = await API().dio.download(
161161
url,
162162
localPath,
163163
);
@@ -198,7 +198,7 @@ Future<dynamic> deleteImage(int imageId) async {
198198
"pwg_token": API.prefs.getString("pwg_token"),
199199
});
200200
try {
201-
Response response = await API.dio.post('ws.php',
201+
Response response = await API().dio.post('ws.php',
202202
data: formData,
203203
queryParameters: queries
204204
);
@@ -261,7 +261,7 @@ Future<dynamic> removeImage(int imageId, String catId) async {
261261
});
262262

263263
try {
264-
Response response = await API.dio.post('ws.php',
264+
Response response = await API().dio.post('ws.php',
265265
data: formData,
266266
queryParameters: queries
267267
);
@@ -314,7 +314,7 @@ Future<dynamic> moveImage(int imageId, List<int> categories) async {
314314
});
315315

316316
try {
317-
Response response = await API.dio.post(
317+
Response response = await API().dio.post(
318318
'ws.php',
319319
data: formData,
320320
queryParameters: queries
@@ -370,7 +370,7 @@ Future<dynamic> assignImage(int imageId, List<int> categories) async {
370370
});
371371

372372
try {
373-
Response response = await API.dio.post(
373+
Response response = await API().dio.post(
374374
'ws.php',
375375
data: formData,
376376
queryParameters: queries
@@ -422,7 +422,7 @@ Future<dynamic> editImage(int imageId, String name, String desc, List<int> tags,
422422
FormData formData = FormData.fromMap(form);
423423

424424
try {
425-
Response response = await API.dio.post('ws.php',
425+
Response response = await API().dio.post('ws.php',
426426
data: formData,
427427
queryParameters: queries
428428
);
@@ -459,7 +459,7 @@ Future<dynamic> renameImage(int imageId, String name) async {
459459
FormData formData = FormData.fromMap(form);
460460

461461
try {
462-
Response response = await API.dio.post('ws.php',
462+
Response response = await API().dio.post('ws.php',
463463
data: formData,
464464
queryParameters: queries
465465
);

lib/api/SessionAPI.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ Future<String> loginUser(String url, String username, String password) async {
1414
'password': password,
1515
};
1616

17-
API.dio.options.baseUrl = url;
17+
API().dio.options.baseUrl = url;
1818

1919
try {
20-
Response response = await API.dio.post('ws.php',
20+
Response response = await API().dio.post('ws.php',
2121
data: FormData.fromMap(fields),
2222
options: Options(contentType: Headers.formUrlEncodedContentType),
2323
queryParameters: queries,
@@ -45,7 +45,7 @@ Future<String> loginUser(String url, String username, String password) async {
4545
}
4646
Future<String> loginGuest(String url) async {
4747

48-
API.dio.options.baseUrl = url;
48+
API().dio.options.baseUrl = url;
4949

5050
var status = await sessionStatus();
5151

@@ -63,7 +63,7 @@ Future<Map<String, dynamic>> sessionStatus() async {
6363
};
6464

6565
try {
66-
Response response = await API.dio.get('ws.php', queryParameters: queries);
66+
Response response = await API().dio.get('ws.php', queryParameters: queries);
6767
return json.decode(response.data);
6868
} catch (e) {
6969
print('Dio error $e');

lib/api/TagAPI.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Future<Map<String,dynamic>> getAdminTags() async {
99
"method": "pwg.tags.getAdminList",
1010
};
1111

12-
Response response = await API.dio.get('ws.php', queryParameters: queries);
12+
Response response = await API().dio.get('ws.php', queryParameters: queries);
1313

1414
try {
1515
if (response.statusCode == 200) {
@@ -37,7 +37,7 @@ Future<dynamic> createTag(String tagName) async {
3737
};
3838

3939
try {
40-
Response response = await API.dio.get('ws.php', queryParameters: queries);
40+
Response response = await API().dio.get('ws.php', queryParameters: queries);
4141

4242
if (response.statusCode == 200) {
4343
return json.decode(response.data)["result"];

lib/services/OrientationService.dart

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,3 @@ void decrementImageCrossAxisCount(BuildContext context) {
6060
print('decrement: ${API.prefs.getDouble("landscape_image_count")}');
6161
}
6262
}
63-
64-
65-
double getDialogWidth(BuildContext context) {
66-
67-
}

lib/services/upload/Uploader.dart

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
import 'dart:convert';
22

3-
import 'package:cookie_jar/cookie_jar.dart';
43
import 'package:dio/dio.dart';
5-
import 'package:dio_cookie_manager/dio_cookie_manager.dart';
64
import 'package:flutter/material.dart';
75
import 'package:flutter/services.dart';
86
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
97
import 'package:images_picker/images_picker.dart';
108
import 'package:multi_image_picker/multi_image_picker.dart';
119
import 'package:piwigo_ng/api/API.dart';
12-
import 'package:piwigo_ng/api/SessionAPI.dart';
1310
import 'package:piwigo_ng/constants/SettingsConstants.dart';
1411
import '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');

lib/views/CategoryViewPage.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ class _CategoryViewPageState extends State<CategoryViewPage> with SingleTickerPr
426426
List<Media> mediaList = await ImagesPicker.pick(
427427
count: 100,
428428
pickType: PickType.all,
429-
quality: 0.8,
429+
quality: 1.0,
430430
);
431431
print(mediaList[0].path);
432432
if(mediaList.isNotEmpty) {
@@ -454,15 +454,14 @@ class _CategoryViewPageState extends State<CategoryViewPage> with SingleTickerPr
454454
try {
455455
List<Media> mediaList = await ImagesPicker.openCamera(
456456
pickType: PickType.image,
457-
quality: 0.8,
457+
quality: 1.0,
458458
);
459459
print(mediaList[0].path);
460460
if(mediaList.isNotEmpty) {
461461
Navigator.push(context, MaterialPageRoute(
462462
builder: (context) => UploadGalleryViewPage(imageData: mediaList, category: widget.category)
463463
)).whenComplete(() {
464464
setState(() {
465-
// API.uploader.createDio();
466465
print('After upload'); // refresh
467466
});
468467
});

0 commit comments

Comments
 (0)