feat(lib): Filename added to the image properties iOS and Android (#61)
* fix(lib): mirror fix PHAsset video upload
458e70c79d (diff-3a2b7a4c4ebe5ac224b5a32896c032fb)
* Include the filename in both iOS and Android
* Add filename to docs
This commit is contained in:
parent
829c7bd65a
commit
f420cefa77
|
@ -143,6 +143,7 @@ Returns a Promise which when resolved will be of the following shape:
|
||||||
* `group_name`: {string}
|
* `group_name`: {string}
|
||||||
* `image`: {object} : An object with the following shape:
|
* `image`: {object} : An object with the following shape:
|
||||||
* `uri`: {string}
|
* `uri`: {string}
|
||||||
|
* `filename`: {string}
|
||||||
* `height`: {number}
|
* `height`: {number}
|
||||||
* `width`: {number}
|
* `width`: {number}
|
||||||
* `isStored`: {boolean}
|
* `isStored`: {boolean}
|
||||||
|
|
|
@ -401,7 +401,10 @@ public class CameraRollModule extends ReactContextBaseJavaModule {
|
||||||
int mimeTypeIndex) {
|
int mimeTypeIndex) {
|
||||||
WritableMap image = new WritableNativeMap();
|
WritableMap image = new WritableNativeMap();
|
||||||
Uri photoUri = Uri.parse("file://" + media.getString(dataIndex));
|
Uri photoUri = Uri.parse("file://" + media.getString(dataIndex));
|
||||||
|
File file = new File(media.getString(dataIndex));
|
||||||
|
String strFileName = file.getName();
|
||||||
image.putString("uri", photoUri.toString());
|
image.putString("uri", photoUri.toString());
|
||||||
|
image.putString("filename", strFileName);
|
||||||
float width = media.getInt(widthIndex);
|
float width = media.getInt(widthIndex);
|
||||||
float height = media.getInt(heightIndex);
|
float height = media.getInt(heightIndex);
|
||||||
|
|
||||||
|
|
|
@ -230,13 +230,13 @@ RCT_EXPORT_METHOD(getPhotos:(NSDictionary *)params
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get underlying resources of an asset - this includes files as well as details about edited PHAssets
|
// Get underlying resources of an asset - this includes files as well as details about edited PHAssets
|
||||||
if ([mimeTypes count] > 0) {
|
|
||||||
NSArray<PHAssetResource *> *const assetResources = [PHAssetResource assetResourcesForAsset:asset];
|
NSArray<PHAssetResource *> *const assetResources = [PHAssetResource assetResourcesForAsset:asset];
|
||||||
if (![assetResources firstObject]) {
|
if (![assetResources firstObject]) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PHAssetResource *const _Nonnull resource = [assetResources firstObject];
|
PHAssetResource *const _Nonnull resource = [assetResources firstObject];
|
||||||
|
|
||||||
|
if ([mimeTypes count] > 0) {
|
||||||
CFStringRef const uti = (__bridge CFStringRef _Nonnull)(resource.uniformTypeIdentifier);
|
CFStringRef const uti = (__bridge CFStringRef _Nonnull)(resource.uniformTypeIdentifier);
|
||||||
NSString *const mimeType = (NSString *)CFBridgingRelease(UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType));
|
NSString *const mimeType = (NSString *)CFBridgingRelease(UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType));
|
||||||
|
|
||||||
|
@ -272,6 +272,7 @@ RCT_EXPORT_METHOD(getPhotos:(NSDictionary *)params
|
||||||
? @"audio"
|
? @"audio"
|
||||||
: @"unknown")));
|
: @"unknown")));
|
||||||
CLLocation *const loc = asset.location;
|
CLLocation *const loc = asset.location;
|
||||||
|
NSString *const origFilename = resource.originalFilename;
|
||||||
|
|
||||||
// A note on isStored: in the previous code that used ALAssets, isStored
|
// A note on isStored: in the previous code that used ALAssets, isStored
|
||||||
// was always set to YES, probably because iCloud-synced images were never returned (?).
|
// was always set to YES, probably because iCloud-synced images were never returned (?).
|
||||||
|
@ -286,6 +287,7 @@ RCT_EXPORT_METHOD(getPhotos:(NSDictionary *)params
|
||||||
@"group_name": currentCollectionName,
|
@"group_name": currentCollectionName,
|
||||||
@"image": @{
|
@"image": @{
|
||||||
@"uri": uri,
|
@"uri": uri,
|
||||||
|
@"filename": origFilename,
|
||||||
@"height": @([asset pixelHeight]),
|
@"height": @([asset pixelHeight]),
|
||||||
@"width": @([asset pixelWidth]),
|
@"width": @([asset pixelWidth]),
|
||||||
@"isStored": @YES, // this field doesn't seem to exist on android
|
@"isStored": @YES, // this field doesn't seem to exist on android
|
||||||
|
|
Loading…
Reference in New Issue