pick_or_save 2.2.4
pick_or_save: ^2.2.4 copied to clipboard
A Flutter file picking and saving package that enables you to pick or save a single file and multiple files.
2.2.4 #
- Added support for picking directories with persistent permission and return its uri.
- Added support to optionally traverse through all subdirectories in a picked directory and return their uris.
- Added support to selectively traverse starting through a directory whose uri we stored from previous traverse.
- Support for cancelling the ongoing directory traversing.
- Added support to provide mime types and extensions list when traversing, to only get those types of documents in result.
- Added support for getting all persistent permission uris from device.
- Added support for checking persistent permission status of uri.
- Added support for releasing a persistent permission for a uri.
- Improved intents handling.
- Updated documentation.
- Updated example.
2.1.8 #
- Updated documentation.
2.1.4 #
- Fixed the issue of unintentionally clearing other tasks results in the plugin when one tasks finishes in the plugin.
2.1.3 #
- Updated documentation.
2.1.2 #
- Breaking:
copyFileToCacheDiris replaced withgetCachedFilePath. - Updated documentation.
2.1.1 #
- Breaking:
cacheFilePathFromUriis replaced withcacheFilePathFromPath. - Fixed unable to save multiple due to the changes in 2.0.1.
2.0.1 #
-
Breaking:
FileMetadataParamsnow only takesfilePathwhich can take both absolute file path or Uri so I removedsourceFilePathandsourceFileUri. -
Breaking:
CacheFilePathFromUriParamsis replaced withCacheFilePathFromPathParams. -
Breaking:
CacheFilePathFromPathParamsnow only takesfilePathwhich can take both absolute file path or Uri so I removedfileUri. -
Breaking: Now if
copyFileToCacheDirset to true the returned path file name will be different from picked file name.This was done to avoid deleting or rewriting existing cache files with same name.
But you can still get the original name by following the pattern.
For example:- If you pick a file with name "My Test File.pdf" then the cached file will be something like this "My Test File.8190480413118007032.pdf". From that we see the pattern would be "original name prefix"+"."+"random numbers"+"."+"file extension". So what we need to do is to just remove the "."+"random numbers" to get the real name. Look at the below code:
String getRealName(String pickOrSaveCachedFileName) {
int indexOfExtDot = pickOrSaveCachedFileName.lastIndexOf('.');
if (indexOfExtDot == -1) {
return pickOrSaveCachedFileName;
} else {
String fileExt =
pickOrSaveCachedFileName.substring(indexOfExtDot).toLowerCase();
String fileNameWithoutExtension = pickOrSaveCachedFileName.substring(
0, pickOrSaveCachedFileName.length - fileExt.length);
int indexOfRandomNumDot = fileNameWithoutExtension.lastIndexOf('.');
if (indexOfRandomNumDot == -1) {
return pickOrSaveCachedFileName;
} else {
String dotAndRandomNum =
fileNameWithoutExtension.substring(indexOfRandomNumDot).toLowerCase();
String fileNameWithoutDotAndRandomNumAndExtension =
fileNameWithoutExtension.substring(
0, fileNameWithoutExtension.length - dotAndRandomNum.length);
return fileNameWithoutDotAndRandomNumAndExtension + fileExt;
}
}
}
- Fixes app crash due to
java.lang.IllegalStateException: Reply already submitted. - Recreated example to easily try all functionalities of plugin.
1.0.5 #
-
Breaking:
filePickingTypeis replaced withenableMultipleSelection. -
Added support photo picker.
To use photo picker set
pickerTypetoPickerType.photoand then set themimeTypesFilter.Note 1: Photo picker only supports single mime type so
mimeTypesFilterfirst value should be valid such as image mime(image/) or video mime(video/) or both(/).Note 2: For Photo picker
allowedExtensionsdoesn't automatically combines withmimeTypeFilterby detecting mimeType from extensions because of note 1. But still the result would contain only files with extension provided inallowedExtensions.Note 3: If photo picker is not available on the users device then we automatically fallback to
PickerType.file. -
Fixed
mimeTypesFilternot working forfilePicker.
1.0.3 #
- Breaking:
mimeTypeFilteris replaced withmimeTypesFiltereverywhere. - Fixed
localOnlyforfileSaverandfilePickernot working as intended. - Fixed
fileSaveronly opening download folder for when saving single file due to the updates made in version 1.0.1. - Fixed
mimeTypesFilternot working forfileSaver. - Fixed
fileSavergiving error instead of file paths when saving multiple files even after saving files successfully due to the updates made in version 1.0.1.
1.0.2 #
- Fixed
copyFileToCacheDirand few other things not working due to the updates made in version 1.0.1. - Added
cacheFilePathFromUrito create a cache file from uri and get the cached file path.
1.0.1 #
-
Breaking: Now
allowedExtensionsautomatically combines withmimeTypeFilterby detecting mimeType from extensions. -
Breaking: Use
saveFilesassourceFilesPaths,data,filesNamesare removed (see updated documentation or example).saveFilestakes list ofSaveFileInfo()andSaveFileInfo()takesfilePath,fileDataandfileName.This removes the limitation of only using either file path or file data for saving files as it can take many
SaveFileInfo()objects created through file path or file data. -
Project completely refactored.
0.1.3 #
- Fixed
allowedExtensionsfor files picking.
0.1.1 #
- Added
cancelFilesSaving()to cancel saving files. - Automatically cancels ongoing saving of files when trying to save new files.
- Fixed example.
0.0.9 #
- Added more assertions on saving files.
0.0.8 #
- Tackles exceptions and errors.
- Fixes "Dialog already active" error on retrying a failed save.
0.0.7 #
- Fixes file metadata not working for URI.
0.0.6 #
- Allows using absolute file path for metadata.
- Breaking: Use
sourceFileUrifor URIs andsourceFilePathfor absolute file paths to get metadata.
0.0.5 #
- Fixes file metadata last modified format.
0.0.4 #
- Adds function to get metadata of a uri.
0.0.3 #
- Fixes mimeTypeFilter not working.
0.0.2 #
- Fixes changelog.
0.0.1 #
- Initial release.