diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/camera/CameraRollManager.java b/ReactAndroid/src/main/java/com/facebook/react/modules/camera/CameraRollManager.java index b07abea1067..b240a4f0432 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/camera/CameraRollManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/camera/CameraRollManager.java @@ -82,6 +82,7 @@ public class CameraRollManager extends ReactContextBaseJavaModule { private static final String SELECTION_BUCKET = Images.Media.BUCKET_DISPLAY_NAME + " = ?"; private static final String SELECTION_DATE_TAKEN = Images.Media.DATE_TAKEN + " < ?"; + private static final String SELECTION_MEDIA_SIZE = Images.Media.SIZE + " < ?"; public CameraRollManager(ReactApplicationContext reactContext) { super(reactContext); @@ -228,13 +229,21 @@ public class CameraRollManager extends ReactContextBaseJavaModule { String groupName = params.hasKey("groupName") ? params.getString("groupName") : null; String assetType = params.hasKey("assetType") ? params.getString("assetType") : ASSET_TYPE_PHOTOS; + Integer maxSize = params.hasKey("maxSize") ? params.getInt("maxSize") : null; ReadableArray mimeTypes = params.hasKey("mimeTypes") ? params.getArray("mimeTypes") : null; if (params.hasKey("groupTypes")) { throw new JSApplicationIllegalArgumentException("groupTypes is not supported on Android"); } new GetMediaTask( - getReactApplicationContext(), first, after, groupName, mimeTypes, assetType, promise) + getReactApplicationContext(), + first, + after, + groupName, + mimeTypes, + assetType, + maxSize, + promise) .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } @@ -246,6 +255,7 @@ public class CameraRollManager extends ReactContextBaseJavaModule { private final @Nullable ReadableArray mMimeTypes; private final Promise mPromise; private final String mAssetType; + private final @Nullable Integer mMaxSize; private GetMediaTask( ReactContext context, @@ -254,6 +264,7 @@ public class CameraRollManager extends ReactContextBaseJavaModule { @Nullable String groupName, @Nullable ReadableArray mimeTypes, String assetType, + @Nullable Integer maxSize, Promise promise) { super(context); mContext = context; @@ -263,6 +274,7 @@ public class CameraRollManager extends ReactContextBaseJavaModule { mMimeTypes = mimeTypes; mPromise = promise; mAssetType = assetType; + mMaxSize = maxSize; } @Override @@ -277,6 +289,10 @@ public class CameraRollManager extends ReactContextBaseJavaModule { selection.append(" AND " + SELECTION_BUCKET); selectionArgs.add(mGroupName); } + if (mMaxSize != null) { + selection.append(" AND " + SELECTION_MEDIA_SIZE); + selectionArgs.add(mMaxSize.toString()); + } switch (mAssetType) { case ASSET_TYPE_PHOTOS: