@@ -12,6 +12,7 @@ import 'package:pic_share_helper/custom_toast.dart';
12
12
import 'package:pic_share_helper/icon_button.dart' ;
13
13
import 'package:pic_share_helper/image_page.dart' ;
14
14
import 'package:pic_share_helper/config_model.dart' ;
15
+ import 'package:pic_share_helper/path.dart' ;
15
16
import 'package:receive_sharing_intent/receive_sharing_intent.dart' ;
16
17
import 'package:saver_gallery/saver_gallery.dart' ;
17
18
import 'package:share_plus/share_plus.dart' ;
@@ -112,7 +113,7 @@ class _MainPageState extends State<MainPage> {
112
113
'https://github.com/bggRGjQaUbCoE/Pic-Share-Helper' ;
113
114
114
115
late final StreamSubscription _intentSub;
115
- final List <String > _paths = < String > [];
116
+ final List <Path > _paths = < Path > [];
116
117
117
118
bool _isPicking = false ;
118
119
late final _imagePicker = ImagePicker ();
@@ -137,7 +138,7 @@ class _MainPageState extends State<MainPage> {
137
138
(List <SharedMediaFile > files) {
138
139
if (files.isNotEmpty) {
139
140
setState (() {
140
- _paths.addAll (files.map ((item) => item.path).toList ());
141
+ _paths.addAll (files.map ((item) => Path ( item.path, null ) ).toList ());
141
142
_configList
142
143
.addAll (List .generate (files.length, (_) => ConfigModel ()));
143
144
});
@@ -154,7 +155,7 @@ class _MainPageState extends State<MainPage> {
154
155
.then ((List <SharedMediaFile > files) {
155
156
if (files.isNotEmpty) {
156
157
setState (() {
157
- _paths.addAll (files.map ((item) => item.path).toList ());
158
+ _paths.addAll (files.map ((item) => Path ( item.path, null ) ).toList ());
158
159
_configList.addAll (List .generate (files.length, (_) => ConfigModel ()));
159
160
});
160
161
}
@@ -208,7 +209,7 @@ class _MainPageState extends State<MainPage> {
208
209
},
209
210
onUpdate: (path) {
210
211
setState (() {
211
- _paths[index] = path;
212
+ _paths[index].cropped = path;
212
213
});
213
214
},
214
215
onShare: () => _onShare ([_paths[index]]),
@@ -342,7 +343,8 @@ class _MainPageState extends State<MainPage> {
342
343
_imagePicker.pickMultiImage (imageQuality: 100 ).then ((files) {
343
344
if (files.isNotEmpty) {
344
345
setState (() {
345
- _paths.addAll (files.map ((item) => item.path).toList ());
346
+ _paths.addAll (
347
+ files.map ((item) => Path (item.path, null )).toList ());
346
348
_configList
347
349
.addAll (List .generate (files.length, (_) => ConfigModel ()));
348
350
});
@@ -428,7 +430,7 @@ class _MainPageState extends State<MainPage> {
428
430
),
429
431
);
430
432
431
- void _onShare (List <String > paths) async {
433
+ void _onShare (List <Path > paths) async {
432
434
if (_paths.isNotEmpty) {
433
435
try {
434
436
List <XFile > files = [];
@@ -438,10 +440,10 @@ class _MainPageState extends State<MainPage> {
438
440
'processing${paths .length > 1 ? ' ${i + 1 }/${paths .length }' : '' }' ,
439
441
);
440
442
String type =
441
- lookupMimeType (paths[i])? .split ('/' ).lastOrNull ?? 'png' ;
443
+ lookupMimeType (paths[i].valid )? .split ('/' ).lastOrNull ?? 'png' ;
442
444
await FlutterImageCompress .compressAndGetFile (
443
- paths[i],
444
- '${paths [i ]}${DateTime .now ().millisecondsSinceEpoch }.$type ' ,
445
+ paths[i].valid ,
446
+ '${paths [i ]. valid }${DateTime .now ().millisecondsSinceEpoch }.$type ' ,
445
447
quality: _currentConfig.quality.round (),
446
448
keepExif: ! _currentConfig.removeExif,
447
449
format: _compressFormat (type),
@@ -462,7 +464,7 @@ class _MainPageState extends State<MainPage> {
462
464
}
463
465
}
464
466
465
- void _onSave (List <String > paths) async {
467
+ void _onSave (List <Path > paths) async {
466
468
if (paths.isNotEmpty) {
467
469
try {
468
470
for (int i = 0 ; i < paths.length; i++ ) {
@@ -471,15 +473,15 @@ class _MainPageState extends State<MainPage> {
471
473
'processing${paths .length > 1 ? ' ${i + 1 }/${paths .length }' : '' }' ,
472
474
);
473
475
String type =
474
- lookupMimeType (paths[i])? .split ('/' ).lastOrNull ?? 'png' ;
476
+ lookupMimeType (paths[i].valid )? .split ('/' ).lastOrNull ?? 'png' ;
475
477
await FlutterImageCompress .compressWithFile (
476
- paths[i],
478
+ paths[i].valid ,
477
479
quality: _currentConfig.quality.round (),
478
480
keepExif: ! _currentConfig.removeExif,
479
481
format: _compressFormat (type),
480
482
).then ((data) {
481
483
if (data != null ) {
482
- String imageName = paths[i].split ('/' ).lastOrNull ??
484
+ String imageName = paths[i].valid. split ('/' ).lastOrNull ??
483
485
'${DateTime .now ().millisecondsSinceEpoch ~/ 1000 }.jpg' ;
484
486
SaverGallery .saveImage (
485
487
data,
0 commit comments