From 465c71980025c94033ca624233ff86cfab7d13d0 Mon Sep 17 00:00:00 2001 From: Steve McNiven-Scott Date: Fri, 13 May 2016 09:26:13 -0400 Subject: [PATCH] Method to check to see if camera is available or not --- apps/tests/camera-tests.ts | 8 ++++++++ camera/Readme.md | 3 +++ camera/camera.android.ts | 6 ++++++ camera/camera.d.ts | 5 +++++ camera/camera.ios.ts | 4 ++++ 5 files changed, 26 insertions(+) diff --git a/apps/tests/camera-tests.ts b/apps/tests/camera-tests.ts index 639de8147..ed7585d92 100644 --- a/apps/tests/camera-tests.ts +++ b/apps/tests/camera-tests.ts @@ -2,6 +2,8 @@ import camera = require("camera"); // << camera-require +import TKUnit = require("./TKUnit"); + export var test_takePicture = function () { // >> camera-take-picture camera.takePicture().then(result => { @@ -9,3 +11,9 @@ export var test_takePicture = function () { }); // << camera-take-picture }; + +export var test_isCameraAvailable = function () { + // >> camera-take-picture + var availability = camera.isAvailable(); + TKUnit.assertTrue(availability == true || availability == false, "Availability should return a Boolean"); +}; \ No newline at end of file diff --git a/camera/Readme.md b/camera/Readme.md index 582581ad9..7ec0ba343 100644 --- a/camera/Readme.md +++ b/camera/Readme.md @@ -8,4 +8,7 @@ camera.takePicture({"cameraPosition": camera.CameraPosition.BACK, "flashMode": c console.log('pic canceled'); }); +if(camera.isAvailable()){ + console.log('you may take a picture'); +} ``` diff --git a/camera/camera.android.ts b/camera/camera.android.ts index 82a7485bf..3731cd0da 100644 --- a/camera/camera.android.ts +++ b/camera/camera.android.ts @@ -106,6 +106,12 @@ export var takePicture = function (options?): Promise { }); } +export var isAvailable = function () { + var utils: typeof utilsModule = require("utils/utils"); + + return utils.ad.getApplicationContext().getPackageManager().hasSystemFeature(android.content.pm.PackageManager.FEATURE_CAMERA) +} + var calculateInSampleSize = function (imageWidth, imageHeight, reqWidth, reqHeight) { var sampleSize = 1; if (imageWidth > reqWidth && imageHeight > reqHeight) { diff --git a/camera/camera.d.ts b/camera/camera.d.ts index 0b9132892..8b55c545c 100644 --- a/camera/camera.d.ts +++ b/camera/camera.d.ts @@ -10,6 +10,11 @@ declare module "camera" { * @param options - Optional parameter for setting different camera options. */ export function takePicture(options?: CameraOptions): Promise; + + /** + * Is the camera available to use + */ + export function isAvailable(): Boolean; export interface CameraOptions { /** diff --git a/camera/camera.ios.ts b/camera/camera.ios.ts index 23c57dee6..400a28a49 100644 --- a/camera/camera.ios.ts +++ b/camera/camera.ios.ts @@ -124,3 +124,7 @@ export var takePicture = function (options): Promise { } }); } + +export var isAvailable = function () { + return UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.UIImagePickerControllerSourceTypeCamera); +}