@@ -120,6 +120,22 @@ class CameraPickerViewerState extends State<CameraPickerViewer> {
120
120
}
121
121
}
122
122
123
+ /// If [CameraPickerConfig.shouldDeletePreviewFile] is true, the preview file
124
+ /// will be deleted after unused.
125
+ ///
126
+ /// [CameraPickerConfig.onEntitySaving] will reference the file, we don't want
127
+ /// the file to be deleted in this case too.
128
+ void deletePreviewFileIfConfigured () {
129
+ if (pickerConfig.shouldDeletePreviewFile &&
130
+ pickerConfig.onEntitySaving != null &&
131
+ previewFile.existsSync ()) {
132
+ previewFile.delete ().catchError ((e, s) {
133
+ handleErrorWithHandler (e, s, onError);
134
+ return previewFile;
135
+ });
136
+ }
137
+ }
138
+
123
139
/// When users confirm to use the taken file, create the [AssetEntity] .
124
140
/// While the entity might returned null, there's no side effects if popping `null`
125
141
/// because the parent picker will ignore it.
@@ -137,7 +153,7 @@ class CameraPickerViewerState extends State<CameraPickerViewer> {
137
153
await pickerConfig.onEntitySaving !(
138
154
context,
139
155
widget.viewType,
140
- File (widget.previewXFile.path) ,
156
+ previewFile ,
141
157
);
142
158
} catch (e, s) {
143
159
handleErrorWithHandler (e, s, onError);
@@ -184,12 +200,7 @@ class CameraPickerViewerState extends State<CameraPickerViewer> {
184
200
);
185
201
break ;
186
202
}
187
- if (pickerConfig.shouldDeletePreviewFile && previewFile.existsSync ()) {
188
- previewFile.delete ().catchError ((e, s) {
189
- handleErrorWithHandler (e, s, onError);
190
- return previewFile;
191
- });
192
- }
203
+ deletePreviewFileIfConfigured ();
193
204
return ;
194
205
}
195
206
handleErrorWithHandler (
@@ -387,11 +398,8 @@ class CameraPickerViewerState extends State<CameraPickerViewer> {
387
398
canPop: true ,
388
399
// ignore: deprecated_member_use
389
400
onPopInvoked: (didPop) {
390
- if (didPop && previewFile.existsSync ()) {
391
- previewFile.delete ().catchError ((e, s) {
392
- handleErrorWithHandler (e, s, onError);
393
- return previewFile;
394
- });
401
+ if (didPop) {
402
+ deletePreviewFileIfConfigured ();
395
403
}
396
404
},
397
405
child: Material (
0 commit comments