| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'package:cross_file/cross_file.dart'; |
| import 'package:flutter/services.dart'; |
| import 'package:image_picker_platform_interface/src/types/types.dart'; |
| |
| /// The response object of [ImagePicker.getLostData]. |
| /// |
| /// Only applies to Android. |
| /// See also: |
| /// * [ImagePicker.getLostData] for more details on retrieving lost data. |
| class LostDataResponse { |
| /// Creates an instance with the given [file], [exception], and [type]. Any of |
| /// the params may be null, but this is never considered to be empty. |
| LostDataResponse({ |
| this.file, |
| this.exception, |
| this.type, |
| this.files, |
| }); |
| |
| /// Initializes an instance with all member params set to null and considered |
| /// to be empty. |
| LostDataResponse.empty() |
| : file = null, |
| exception = null, |
| type = null, |
| _empty = true, |
| files = null; |
| |
| /// Whether it is an empty response. |
| /// |
| /// An empty response should have [file], [exception] and [type] to be null. |
| bool get isEmpty => _empty; |
| |
| /// The file that was lost in a previous [getImage], [getMultiImage] or [getVideo] call due to MainActivity being destroyed. |
| /// |
| /// Can be null if [exception] exists. |
| final XFile? file; |
| |
| /// The exception of the last [getImage], [getMultiImage] or [getVideo]. |
| /// |
| /// If the last [getImage], [getMultiImage] or [getVideo] threw some exception before the MainActivity destruction, |
| /// this variable keeps that exception. |
| /// You should handle this exception as if the [getImage], [getMultiImage] or [getVideo] got an exception when |
| /// the MainActivity was not destroyed. |
| /// |
| /// Note that it is not the exception that caused the destruction of the MainActivity. |
| final PlatformException? exception; |
| |
| /// Can either be [RetrieveType.image] or [RetrieveType.video]; |
| /// |
| /// If the lost data is empty, this will be null. |
| final RetrieveType? type; |
| |
| bool _empty = false; |
| |
| /// The list of files that were lost in a previous [getMultiImage] call due to MainActivity being destroyed. |
| /// |
| /// When [files] is populated, [file] will refer to the last item in the [files] list. |
| /// |
| /// Can be null if [exception] exists. |
| final List<XFile>? files; |
| } |