@@ -120,6 +120,22 @@ class CameraPickerViewerState extends State<CameraPickerViewer> {
120120 }
121121 }
122122
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+
123139 /// When users confirm to use the taken file, create the [AssetEntity] .
124140 /// While the entity might returned null, there's no side effects if popping `null`
125141 /// because the parent picker will ignore it.
@@ -137,7 +153,7 @@ class CameraPickerViewerState extends State<CameraPickerViewer> {
137153 await pickerConfig.onEntitySaving !(
138154 context,
139155 widget.viewType,
140- File (widget.previewXFile.path) ,
156+ previewFile ,
141157 );
142158 } catch (e, s) {
143159 handleErrorWithHandler (e, s, onError);
@@ -184,12 +200,7 @@ class CameraPickerViewerState extends State<CameraPickerViewer> {
184200 );
185201 break ;
186202 }
187- if (pickerConfig.shouldDeletePreviewFile && previewFile.existsSync ()) {
188- previewFile.delete ().catchError ((e, s) {
189- handleErrorWithHandler (e, s, onError);
190- return previewFile;
191- });
192- }
203+ deletePreviewFileIfConfigured ();
193204 return ;
194205 }
195206 handleErrorWithHandler (
@@ -387,11 +398,8 @@ class CameraPickerViewerState extends State<CameraPickerViewer> {
387398 canPop: true ,
388399 // ignore: deprecated_member_use
389400 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 ();
395403 }
396404 },
397405 child: Material (
0 commit comments