Skip to content

Commit 6d6f2d1

Browse files
committed
Picture quality is now customizable.
1 parent 3706c8c commit 6d6f2d1

File tree

3 files changed

+34
-31
lines changed

3 files changed

+34
-31
lines changed

react-native/services/PictureHelper/index.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,13 @@ export class PictureHelper implements PictureHelperInterface {
1212
* @param fileStore The file store in which pictures are to be stored.
1313
* @param permissionHelper The permission helper which will be used when
1414
* acquiring pictures.
15+
* @param quality The compression quality to use, where 0 is minimum
16+
* and 1 is maximum.
1517
*/
1618
constructor (
1719
private readonly fileStore: FileStoreInterface,
18-
private readonly permissionHelper: PermissionHelper
20+
private readonly permissionHelper: PermissionHelper,
21+
private readonly quality: number
1922
) {}
2023

2124
async takePicture (
@@ -30,7 +33,7 @@ export class PictureHelper implements PictureHelperInterface {
3033
async () => {
3134
const result = await ImagePicker.launchCameraAsync({
3235
allowsEditing: true,
33-
quality: 0.7,
36+
quality: this.quality,
3437
mediaTypes: ImagePicker.MediaTypeOptions.Images,
3538
exif: false,
3639
base64: false,
@@ -70,7 +73,7 @@ export class PictureHelper implements PictureHelperInterface {
7073
async () => {
7174
const result = await ImagePicker.launchImageLibraryAsync({
7275
allowsEditing: true,
73-
quality: 0.7,
76+
quality: this.quality,
7477
mediaTypes: ImagePicker.MediaTypeOptions.Images,
7578
exif: false,
7679
base64: false,
@@ -103,7 +106,7 @@ export class PictureHelper implements PictureHelperInterface {
103106
async () => {
104107
const result = await ImagePicker.launchImageLibraryAsync({
105108
allowsEditing: true,
106-
quality: 0.7,
109+
quality: this.quality,
107110
mediaTypes: ImagePicker.MediaTypeOptions.Images,
108111
exif: false,
109112
base64: false,

react-native/services/PictureHelper/readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Provides helpers for working with pictures.
77
```tsx
88
import type { PictureHelper } from "react-native-app-helpers";
99

10-
const pictureHelper = new PictureHelper(fileStore, permissionHelper);
10+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.7);
1111

1212
// Do NOT save to media library.
1313
await permissionHelper.takePicture(

react-native/services/PictureHelper/unit.tsx

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ test('take picture without saving to media library permission denied', async ()
2727
const onCancel = jest.fn().mockResolvedValue(undefined)
2828
const onSuccess = jest.fn()
2929

30-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
30+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
3131

3232
await pictureHelper.takePicture(
3333
false,
@@ -78,7 +78,7 @@ test('take picture saving to media library permission denied', async () => {
7878
const onCancel = jest.fn().mockResolvedValue(undefined)
7979
const onSuccess = jest.fn()
8080

81-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
81+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
8282

8383
await pictureHelper.takePicture(
8484
true,
@@ -133,7 +133,7 @@ test('take picture without saving to media library cancelled', async () => {
133133
const onCancel = jest.fn().mockResolvedValue(undefined)
134134
const onSuccess = jest.fn()
135135

136-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
136+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
137137

138138
await pictureHelper.takePicture(
139139
false,
@@ -149,7 +149,7 @@ test('take picture without saving to media library cancelled', async () => {
149149
expect(ImagePicker.launchCameraAsync).toHaveBeenCalledTimes(1)
150150
expect(ImagePicker.launchCameraAsync).toBeCalledWith({
151151
allowsEditing: true,
152-
quality: 0.7,
152+
quality: 0.35,
153153
mediaTypes: ImagePicker.MediaTypeOptions.Images,
154154
exif: false,
155155
base64: false,
@@ -196,7 +196,7 @@ test('take picture without saving to media library none selected', async () => {
196196
const onCancel = jest.fn().mockResolvedValue(undefined)
197197
const onSuccess = jest.fn()
198198

199-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
199+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
200200

201201
await pictureHelper.takePicture(
202202
false,
@@ -212,7 +212,7 @@ test('take picture without saving to media library none selected', async () => {
212212
expect(ImagePicker.launchCameraAsync).toHaveBeenCalledTimes(1)
213213
expect(ImagePicker.launchCameraAsync).toBeCalledWith({
214214
allowsEditing: true,
215-
quality: 0.7,
215+
quality: 0.35,
216216
mediaTypes: ImagePicker.MediaTypeOptions.Images,
217217
exif: false,
218218
base64: false,
@@ -258,7 +258,7 @@ test('take picture saving to media library cancelled', async () => {
258258
const onCancel = jest.fn().mockResolvedValue(undefined)
259259
const onSuccess = jest.fn()
260260

261-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
261+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
262262

263263
await pictureHelper.takePicture(
264264
true,
@@ -274,7 +274,7 @@ test('take picture saving to media library cancelled', async () => {
274274
expect(ImagePicker.launchCameraAsync).toHaveBeenCalledTimes(1)
275275
expect(ImagePicker.launchCameraAsync).toBeCalledWith({
276276
allowsEditing: true,
277-
quality: 0.7,
277+
quality: 0.35,
278278
mediaTypes: ImagePicker.MediaTypeOptions.Images,
279279
exif: false,
280280
base64: false,
@@ -321,7 +321,7 @@ test('take picture saving to media library none selected', async () => {
321321
const onCancel = jest.fn().mockResolvedValue(undefined)
322322
const onSuccess = jest.fn()
323323

324-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
324+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
325325

326326
await pictureHelper.takePicture(
327327
true,
@@ -337,7 +337,7 @@ test('take picture saving to media library none selected', async () => {
337337
expect(ImagePicker.launchCameraAsync).toHaveBeenCalledTimes(1)
338338
expect(ImagePicker.launchCameraAsync).toBeCalledWith({
339339
allowsEditing: true,
340-
quality: 0.7,
340+
quality: 0.35,
341341
mediaTypes: ImagePicker.MediaTypeOptions.Images,
342342
exif: false,
343343
base64: false,
@@ -384,7 +384,7 @@ test('take picture without saving to media library successful', async () => {
384384
const onCancel = jest.fn()
385385
const onSuccess = jest.fn().mockResolvedValue(undefined)
386386

387-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
387+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
388388

389389
await pictureHelper.takePicture(
390390
false,
@@ -403,7 +403,7 @@ test('take picture without saving to media library successful', async () => {
403403
expect(ImagePicker.launchCameraAsync).toHaveBeenCalledTimes(1)
404404
expect(ImagePicker.launchCameraAsync).toBeCalledWith({
405405
allowsEditing: true,
406-
quality: 0.7,
406+
quality: 0.35,
407407
mediaTypes: ImagePicker.MediaTypeOptions.Images,
408408
exif: false,
409409
base64: false,
@@ -460,7 +460,7 @@ test('take picture saving to media library successful', async () => {
460460
const onCancel = jest.fn()
461461
const onSuccess = jest.fn().mockResolvedValue(undefined)
462462

463-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
463+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
464464

465465
await pictureHelper.takePicture(
466466
true,
@@ -479,7 +479,7 @@ test('take picture saving to media library successful', async () => {
479479
expect(ImagePicker.launchCameraAsync).toHaveBeenCalledTimes(1)
480480
expect(ImagePicker.launchCameraAsync).toBeCalledWith({
481481
allowsEditing: true,
482-
quality: 0.7,
482+
quality: 0.35,
483483
mediaTypes: ImagePicker.MediaTypeOptions.Images,
484484
exif: false,
485485
base64: false,
@@ -527,7 +527,7 @@ test('select one picture from media library permission denied', async () => {
527527
const onCancel = jest.fn().mockResolvedValue(undefined)
528528
const onSuccess = jest.fn()
529529

530-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
530+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
531531

532532
await pictureHelper.selectOnePictureFromMediaLibrary(
533533
onPermissionDenied,
@@ -581,7 +581,7 @@ test('select one picture from media library cancelled', async () => {
581581
const onCancel = jest.fn()
582582
const onSuccess = jest.fn().mockResolvedValue(undefined)
583583

584-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
584+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
585585

586586
await pictureHelper.selectOnePictureFromMediaLibrary(
587587
onPermissionDenied,
@@ -597,7 +597,7 @@ test('select one picture from media library cancelled', async () => {
597597
expect(ImagePicker.launchImageLibraryAsync).toHaveBeenCalledTimes(1)
598598
expect(ImagePicker.launchImageLibraryAsync).toBeCalledWith({
599599
allowsEditing: true,
600-
quality: 0.7,
600+
quality: 0.35,
601601
mediaTypes: ImagePicker.MediaTypeOptions.Images,
602602
exif: false,
603603
base64: false,
@@ -644,7 +644,7 @@ test('select one picture from media library no assets', async () => {
644644
const onCancel = jest.fn()
645645
const onSuccess = jest.fn().mockResolvedValue(undefined)
646646

647-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
647+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
648648

649649
await pictureHelper.selectOnePictureFromMediaLibrary(
650650
onPermissionDenied,
@@ -660,7 +660,7 @@ test('select one picture from media library no assets', async () => {
660660
expect(ImagePicker.launchImageLibraryAsync).toHaveBeenCalledTimes(1)
661661
expect(ImagePicker.launchImageLibraryAsync).toBeCalledWith({
662662
allowsEditing: true,
663-
quality: 0.7,
663+
quality: 0.35,
664664
mediaTypes: ImagePicker.MediaTypeOptions.Images,
665665
exif: false,
666666
base64: false,
@@ -707,7 +707,7 @@ test('select one picture from media library successful', async () => {
707707
const onCancel = jest.fn()
708708
const onSuccess = jest.fn().mockResolvedValue(undefined)
709709

710-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
710+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
711711

712712
await pictureHelper.selectOnePictureFromMediaLibrary(
713713
onPermissionDenied,
@@ -726,7 +726,7 @@ test('select one picture from media library successful', async () => {
726726
expect(ImagePicker.launchImageLibraryAsync).toHaveBeenCalledTimes(1)
727727
expect(ImagePicker.launchImageLibraryAsync).toBeCalledWith({
728728
allowsEditing: true,
729-
quality: 0.7,
729+
quality: 0.35,
730730
mediaTypes: ImagePicker.MediaTypeOptions.Images,
731731
exif: false,
732732
base64: false,
@@ -769,7 +769,7 @@ test('select multiple pictures from media library permission denied', async () =
769769
const onCancel = jest.fn().mockResolvedValue(undefined)
770770
const onSuccess = jest.fn()
771771

772-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
772+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
773773

774774
await pictureHelper.selectMultiplePicturesFromMediaLibrary(
775775
onPermissionDenied,
@@ -823,7 +823,7 @@ test('select multiple pictures from media library cancelled', async () => {
823823
const onCancel = jest.fn()
824824
const onSuccess = jest.fn().mockResolvedValue(undefined)
825825

826-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
826+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
827827

828828
await pictureHelper.selectMultiplePicturesFromMediaLibrary(
829829
onPermissionDenied,
@@ -839,7 +839,7 @@ test('select multiple pictures from media library cancelled', async () => {
839839
expect(ImagePicker.launchImageLibraryAsync).toHaveBeenCalledTimes(1)
840840
expect(ImagePicker.launchImageLibraryAsync).toBeCalledWith({
841841
allowsEditing: true,
842-
quality: 0.7,
842+
quality: 0.35,
843843
mediaTypes: ImagePicker.MediaTypeOptions.Images,
844844
exif: false,
845845
base64: false,
@@ -900,7 +900,7 @@ test('select multiple pictures from media library successful', async () => {
900900
const onCancel = jest.fn()
901901
const onSuccess = jest.fn().mockResolvedValue(undefined)
902902

903-
const pictureHelper = new PictureHelper(fileStore, permissionHelper)
903+
const pictureHelper = new PictureHelper(fileStore, permissionHelper, 0.35)
904904

905905
await pictureHelper.selectMultiplePicturesFromMediaLibrary(
906906
onPermissionDenied,
@@ -921,7 +921,7 @@ test('select multiple pictures from media library successful', async () => {
921921
expect(ImagePicker.launchImageLibraryAsync).toHaveBeenCalledTimes(1)
922922
expect(ImagePicker.launchImageLibraryAsync).toBeCalledWith({
923923
allowsEditing: true,
924-
quality: 0.7,
924+
quality: 0.35,
925925
mediaTypes: ImagePicker.MediaTypeOptions.Images,
926926
exif: false,
927927
base64: false,

0 commit comments

Comments
 (0)