From 4f6a0a4eaad70db98abe4587e2433c1aba41d3d0 Mon Sep 17 00:00:00 2001 From: Dimitar Todorov Date: Wed, 7 Aug 2019 12:02:38 +0300 Subject: [PATCH 1/2] feat: Add support for video select in android --- README.md | 2 +- src/imagepicker.android.ts | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 475aca3..7a0d25e 100644 --- a/README.md +++ b/README.md @@ -133,7 +133,7 @@ context | prompt | iOS | undefined | Display prompt text when selecting assets. | | numberOfColumnsInPortrait | iOS | 4 | Set the number of columns in Portrait orientation. | | numberOfColumnsInLandscape | iOS | 7 | Set the number of columns in Landscape orientation. | -| mediaType | both | Any (iOS), Image (Android) | Choose whether to pick Image/Video/Any type of assets. | +| mediaType | both | Any | Choose whether to pick Image/Video/Any type of assets. | The **hostView** parameter can be set to the view that hosts the image picker. Applicable in iOS only, intended to be used when open picker from a modal page. diff --git a/src/imagepicker.android.ts b/src/imagepicker.android.ts index 09d8053..ba5d406 100644 --- a/src/imagepicker.android.ts +++ b/src/imagepicker.android.ts @@ -147,7 +147,7 @@ export class ImagePicker { } get mediaType(): string { - const mediaType = this._options && 'mediaType' in this._options ? this._options.mediaType : ImagePickerMediaType.Image; + const mediaType = this._options && 'mediaType' in this._options ? this._options.mediaType : ImagePickerMediaType.Any; if (mediaType === ImagePickerMediaType.Image) { return "image/*"; } else if (mediaType === ImagePickerMediaType.Video) { @@ -227,6 +227,20 @@ export class ImagePicker { let intent = new Intent(); intent.setType(this.mediaType); + let length = this.mediaType === "*/*" ? 2 : 1; + let mimeTypes = Array.create(java.lang.String, length); + + if (this.mediaType === "*/*") { + mimeTypes[0] = "image/*"; + mimeTypes[1] = "video/*"; + } + else { + mimeTypes[0] = this.mediaType; + } + + // not in platform-declaration typings + intent.putExtra((android.content.Intent as any).EXTRA_MIME_TYPES, mimeTypes); + // TODO: Use (android).content.Intent.EXTRA_ALLOW_MULTIPLE if (this.mode === 'multiple') { intent.putExtra("android.intent.extra.ALLOW_MULTIPLE", true); From 4f71c0857fe28e15a1125f9eba0e8607d38a725a Mon Sep 17 00:00:00 2001 From: Dimitar Todorov Date: Wed, 7 Aug 2019 12:11:39 +0300 Subject: [PATCH 2/2] Fix: lint errors --- src/imagepicker.android.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/imagepicker.android.ts b/src/imagepicker.android.ts index ba5d406..5037f76 100644 --- a/src/imagepicker.android.ts +++ b/src/imagepicker.android.ts @@ -240,7 +240,6 @@ export class ImagePicker { // not in platform-declaration typings intent.putExtra((android.content.Intent as any).EXTRA_MIME_TYPES, mimeTypes); - // TODO: Use (android).content.Intent.EXTRA_ALLOW_MULTIPLE if (this.mode === 'multiple') { intent.putExtra("android.intent.extra.ALLOW_MULTIPLE", true);