diff --git a/README.md b/README.md index d231ac4..c1fdf22 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,19 @@ tns plugin add @nstudio/nativescript-camera-plus ``` +**Note :- Android** + Please add the following to your app.gradle + + ```gradle +android { +... + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} +``` + ## Sample _Yes the camera is rotated because it's a webcam to an emulator and it's just the way life works_ diff --git a/demo/app/App_Resources/Android/app.gradle b/demo/app/App_Resources/Android/app.gradle index c9d40ec..114c301 100644 --- a/demo/app/App_Resources/Android/app.gradle +++ b/demo/app/App_Resources/Android/app.gradle @@ -8,9 +8,17 @@ android { defaultConfig { generatedDensities = [] - applicationId = "org.nativescript.demo" } aaptOptions { additionalParameters "--no-version-vectors" } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 +} } + +project.ext { + kotlinVersion = "1.4.20" +} diff --git a/demo/app/main-page.ts b/demo/app/main-page.ts index 445e8e6..2ad9754 100644 --- a/demo/app/main-page.ts +++ b/demo/app/main-page.ts @@ -1,21 +1,32 @@ import * as observable from '@nativescript/core/data/observable'; import * as pages from '@nativescript/core/ui/page'; -import { HelloWorldModel } from './main-view-model'; +import {CameraPlus} from '@nstudio/nativescript-camera-plus'; +import {HelloWorldModel} from './main-view-model'; // Event handler for Page 'loaded' event attached in main-page.xml export function pageLoaded(args: observable.EventData) { - // Get the event sender - const page = args.object; - page.bindingContext = new HelloWorldModel(page); + // Get the event sender + const page = args.object; + page.bindingContext = new HelloWorldModel(page); } export function camLoaded(args: any) { - console.log(`cam loaded event`); - - try { - const flashMode = args.object.getFlashMode(); - console.log(`flashMode in loaded event = ${flashMode}`); - } catch (e) { - console.log(e); - } + const cam = args.object as CameraPlus; + console.log(`cam loaded event`); + const handle = () => { + console.log('sizes', cam.getAvailablePictureSizes('16:9')); + cam.autoFocus = true; + try { + const flashMode = args.object.getFlashMode(); + console.log(`flashMode in loaded event = ${flashMode}`); + } catch (e) { + console.log(e); + } + }; + if (!cam.hasCameraPermission()) { + cam.requestCameraPermissions() + .then(() => handle()); + } else { + handle(); + } } diff --git a/src/camera-plus.android.ts b/src/camera-plus.android.ts index 1aad6d2..21f0456 100644 --- a/src/camera-plus.android.ts +++ b/src/camera-plus.android.ts @@ -20,12 +20,13 @@ import { ICameraOptions, ICameraPlusEvents, IChooseOptions, - IVideoOptions + IVideoOptions, + WhiteBalance } from './camera-plus.common'; import * as CamHelpers from './helpers'; import { SelectedAsset } from './selected-asset'; export * from './camera-plus.common'; -export { CameraVideoQuality } from './camera-plus.common'; +export { CameraVideoQuality, WhiteBalance } from './camera-plus.common'; const REQUEST_VIDEO_CAPTURE = 999; const WRAP_CONTENT = -2; const ALIGN_PARENT_TOP = 10; @@ -55,11 +56,10 @@ const WRITE_EXTERNAL_STORAGE = () => (android as any).Manifest.permission.WRITE_ // Since these device.* properties resolve directly to the android.* namespace, // the snapshot will fail if they resolve during import, so must be done via a function const DEVICE_INFO_STRING = () => `device: ${device.manufacturer} ${device.model} on SDK: ${device.sdkVersion}`; - export class CameraPlus extends CameraPlusBase { // @GetSetProperty() public camera: android.hardware.Camera; // Snapshot-friendly, since the decorator will include the snapshot-unknown object "android" - private _camera; + private _camera: com.github.triniwiz.fancycamera.FancyCamera; private _cameraId; @GetSetProperty() @@ -127,6 +127,130 @@ export class CameraPlus extends CameraPlusBase { return this.enableVideo === true || CameraPlus.enableVideo; } + get ratio() { + return this._camera ? this._camera.getRatio() : '4:3'; + } + set ratio(value: string) { + if (this._camera) { + this._camera.setRatio(value); + } + } + + get zoom() { + return this._camera ? this._camera.getZoom() : 0; + } + + set zoom(value: number) { + if (this._camera) { + this._camera.setZoom(value); + } + } + + // @ts-ignore + set whiteBalance(value: WhiteBalance | string) { + if (this._camera) { + switch (value) { + case WhiteBalance.Cloudy: + this._camera.setWhiteBalance( + com.github.triniwiz.fancycamera.WhiteBalance.Cloudy + ); + break; + case WhiteBalance.Fluorescent: + this._camera.setWhiteBalance( + com.github.triniwiz.fancycamera.WhiteBalance.Fluorescent + ); + break; + case WhiteBalance.Incandescent: + this._camera.setWhiteBalance( + com.github.triniwiz.fancycamera.WhiteBalance.Incandescent + ); + break; + case WhiteBalance.Shadow: + this._camera.setWhiteBalance( + com.github.triniwiz.fancycamera.WhiteBalance.Shadow + ); + break; + case WhiteBalance.Sunny: + this._camera.setWhiteBalance( + com.github.triniwiz.fancycamera.WhiteBalance.Sunny + ); + break; + case WhiteBalance.Twilight: + this._camera.setWhiteBalance( + com.github.triniwiz.fancycamera.WhiteBalance.Twilight + ); + break; + case WhiteBalance.WarmFluorescent: + this._camera.setWhiteBalance( + com.github.triniwiz.fancycamera.WhiteBalance.WarmFluorescent + ); + break; + default: + this._camera.setWhiteBalance( + com.github.triniwiz.fancycamera.WhiteBalance.Auto + ); + break; + } + } + } + + get whiteBalance(): WhiteBalance | string { + if (this._camera) { + switch (this._camera.getWhiteBalance()) { + case com.github.triniwiz.fancycamera.WhiteBalance.Cloudy: + return WhiteBalance.Cloudy; + case com.github.triniwiz.fancycamera.WhiteBalance.Fluorescent: + return WhiteBalance.Fluorescent; + case com.github.triniwiz.fancycamera.WhiteBalance.Incandescent: + return WhiteBalance.Incandescent; + case com.github.triniwiz.fancycamera.WhiteBalance.Shadow: + return WhiteBalance.Shadow; + case com.github.triniwiz.fancycamera.WhiteBalance.Sunny: + return WhiteBalance.Sunny; + case com.github.triniwiz.fancycamera.WhiteBalance.Twilight: + return WhiteBalance.Twilight; + case com.github.triniwiz.fancycamera.WhiteBalance.WarmFluorescent: + return WhiteBalance.WarmFluorescent; + default: + return WhiteBalance.Auto; + } + } + return WhiteBalance.Auto; + } + + getAvailablePictureSizes(ratio: string): { width: number, height: number }[] { + const sizes = []; + if (this._camera && typeof ratio === 'string') { + const nativeSizes: any = this._camera.getAvailablePictureSizes(ratio); + for (const size of nativeSizes) { + sizes.push({ width: size.getWidth(), height: size.getHeight() }); + } + } + return sizes; + } + + getGetSupportedRatios(): string[] { + const ratios = []; + if (this._camera) { + const nativeRatios: any = this._camera.getGetSupportedRatios(); + for (const ratio of nativeRatios) { + ratios.push(ratio); + } + } + return ratios; + } + + // @ts-ignore + set pictureSize(value: string) { + if (this._camera) { + this._camera.setPictureSize(value); + } + } + + get pictureSize(): string { + return this._camera ? this._camera.getPictureSize() : '0x0'; + } + get camera() { return this._camera; } @@ -137,13 +261,14 @@ export class CameraPlus extends CameraPlusBase { // create the Android RelativeLayout app.android.on('activityRequestPermissions', this._permissionListener); this._nativeView = new android.widget.RelativeLayout(this._context); - this._camera = new co.fitcom.fancycamera.FancyCamera(this._context); - this._camera.setLayoutParams( + this._camera = new com.github.triniwiz.fancycamera.FancyCamera(this._context); + (this._camera as any).setLayoutParams( new android.view.ViewGroup.LayoutParams( android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT ) ); + this._nativeView.addView(this._camera as any); return this._nativeView; } @@ -160,8 +285,9 @@ export class CameraPlus extends CameraPlusBase { private _permissionListenerFn(args) { if (this._camera) { - if (this._camera.hasPermission()) { - this._camera.start(); + console.log('', this._camera.hasCameraPermission() || this._camera.hasPermission()); + if (this._camera.hasCameraPermission() || this._camera.hasPermission()) { + this._camera.startPreview(); } } } @@ -169,85 +295,91 @@ export class CameraPlus extends CameraPlusBase { initNativeView() { super.initNativeView(); this.on(View.layoutChangedEvent, this._onLayoutChangeListener); - const listenerImpl = (co as any).fitcom.fancycamera.CameraEventListenerUI.extend({ + const listenerImpl = (com as any).github.triniwiz.fancycamera.CameraEventListenerUI.extend({ owner: null, - onCameraCloseUI(): void {}, - async onPhotoEventUI(event: co.fitcom.fancycamera.PhotoEvent) { + onReady(): void { }, + onCameraCloseUI(): void { + }, + onCameraError(message: string, ex: java.lang.Exception): void { + console.log('onCameraError', message); + ex.printStackTrace(); const owner = this.owner ? this.owner.get() : null; - if (event.getType() === co.fitcom.fancycamera.EventType.ERROR) { - if (owner) { - owner._lastCameraOptions.shift(); - CLog('takePicture error', null); - owner.sendEvent(CameraPlus.errorEvent, null, 'Error taking picture.'); + if (owner) { + owner._lastCameraOptions.shift(); + CLog(message, null); + owner.sendEvent(CameraPlus.errorEvent, null, message); + if (owner.isRecording) { + owner.isRecording = false; } - } else if (event.getType() === co.fitcom.fancycamera.EventType.INFO) { - const file = event.getFile(); - if (event.getMessage() === co.fitcom.fancycamera.PhotoEvent.EventInfo.PHOTO_TAKEN.toString()) { - const options = owner._lastCameraOptions.shift(); - let confirmPic; - let confirmPicRetakeText; - let confirmPicSaveText; - let saveToGallery; - let reqWidth; - let reqHeight; - let shouldKeepAspectRatio; - let shouldAutoSquareCrop = owner.autoSquareCrop; - - const density = utils.layout.getDisplayDensity(); - if (options) { - confirmPic = options.confirm ? true : false; - confirmPicRetakeText = options.confirmRetakeText ? options.confirmRetakeText : owner.confirmRetakeText; - confirmPicSaveText = options.confirmSaveText ? options.confirmSaveText : owner.confirmSaveText; - saveToGallery = options.saveToGallery ? true : false; - reqWidth = options.width ? options.width * density : 0; - reqHeight = options.height ? options.height * density : reqWidth; - shouldKeepAspectRatio = types.isNullOrUndefined(options.keepAspectRatio) ? true : options.keepAspectRatio; - shouldAutoSquareCrop = !!options.autoSquareCrop; - } else { - // use xml property getters or their defaults - CLog('Using property getters for defaults, no options.'); - confirmPic = owner.confirmPhotos; - saveToGallery = owner.saveToGallery; - } - if (confirmPic === true) { - owner.sendEvent(CameraPlus.confirmScreenShownEvent); - const result = await CamHelpers.createImageConfirmationDialog( - file.getAbsolutePath(), - confirmPicRetakeText, - confirmPicSaveText - ).catch(ex => { - CLog('Error createImageConfirmationDialog', ex); - }); - - owner.sendEvent(CameraPlus.confirmScreenDismissedEvent); - - CLog(`confirmation result = ${result}`); - if (result !== true) { - file.delete(); - return; - } + } + }, + async onCameraPhotoUI(event?: java.io.File) { + const owner = this.owner ? this.owner.get() : null; + const file = event; + const options = owner._lastCameraOptions.shift(); + let confirmPic; + let confirmPicRetakeText; + let confirmPicSaveText; + let saveToGallery; + let reqWidth; + let reqHeight; + let shouldKeepAspectRatio; + let shouldAutoSquareCrop = owner.autoSquareCrop; + + const density = utils.layout.getDisplayDensity(); + if (options) { + confirmPic = options.confirm ? true : false; + confirmPicRetakeText = options.confirmRetakeText ? options.confirmRetakeText : owner.confirmRetakeText; + confirmPicSaveText = options.confirmSaveText ? options.confirmSaveText : owner.confirmSaveText; + saveToGallery = options.saveToGallery ? true : false; + reqWidth = options.width ? options.width * density : 0; + reqHeight = options.height ? options.height * density : reqWidth; + shouldKeepAspectRatio = types.isNullOrUndefined(options.keepAspectRatio) ? true : options.keepAspectRatio; + shouldAutoSquareCrop = !!options.autoSquareCrop; + } else { + // use xml property getters or their defaults + CLog('Using property getters for defaults, no options.'); + confirmPic = owner.confirmPhotos; + saveToGallery = owner.saveToGallery; + } + if (confirmPic === true) { + owner.sendEvent(CameraPlus.confirmScreenShownEvent); + const result = await CamHelpers.createImageConfirmationDialog( + file.getAbsolutePath(), + confirmPicRetakeText, + confirmPicSaveText + ).catch(ex => { + CLog('Error createImageConfirmationDialog', ex); + }); - const asset = CamHelpers.assetFromPath( - file.getAbsolutePath(), - reqWidth, - reqHeight, - shouldKeepAspectRatio - ); + owner.sendEvent(CameraPlus.confirmScreenDismissedEvent); - owner.sendEvent(CameraPlus.photoCapturedEvent, asset); - return; - } else { - const asset = CamHelpers.assetFromPath( - file.getAbsolutePath(), - reqWidth, - reqHeight, - shouldKeepAspectRatio - ); - owner.sendEvent(CameraPlus.photoCapturedEvent, asset); - return; - } + CLog(`confirmation result = ${result}`); + if (result !== true) { + file.delete(); + return; } + + const asset = CamHelpers.assetFromPath( + file.getAbsolutePath(), + reqWidth, + reqHeight, + shouldKeepAspectRatio + ); + + owner.sendEvent(CameraPlus.photoCapturedEvent, asset); + return; + } else { + const asset = CamHelpers.assetFromPath( + file.getAbsolutePath(), + reqWidth, + reqHeight, + shouldKeepAspectRatio + ); + owner.sendEvent(CameraPlus.photoCapturedEvent, asset); + return; } + }, onCameraOpenUI(): void { const owner = this.owner ? this.owner.get() : null; @@ -262,26 +394,23 @@ export class CameraPlus extends CameraPlusBase { } } }, - onVideoEventUI(event: co.fitcom.fancycamera.VideoEvent): void { + onCameraVideoStartUI(): void { const owner = this.owner ? this.owner.get() : null; if (owner) { - if (event.getType() === co.fitcom.fancycamera.EventType.ERROR) { - CLog(`stopRecording error`, null); - owner.sendEvent(CameraPlus.errorEvent, null, 'Error trying to stop recording.'); - owner.isRecording = false; - } else if (event.getType() === co.fitcom.fancycamera.EventType.INFO) { - if (event.getMessage() === co.fitcom.fancycamera.VideoEvent.EventInfo.RECORDING_STARTED.toString()) { - owner.isRecording = true; - owner.sendEvent(CameraPlus.videoRecordingStartedEvent, owner.camera); - } else if ( - event.getMessage() === co.fitcom.fancycamera.VideoEvent.EventInfo.RECORDING_FINISHED.toString() - ) { - owner.sendEvent(CameraPlus.videoRecordingReadyEvent, event.getFile().getAbsolutePath()); - CLog(`Recording complete`); - owner.isRecording = false; - } - } + owner.isRecording = true; + owner.sendEvent(CameraPlus.videoRecordingStartedEvent, owner.camera); + } + }, + onCameraVideoUI(event?: java.io.File): void { + const owner = this.owner ? this.owner.get() : null; + if (owner) { + owner.sendEvent(CameraPlus.videoRecordingReadyEvent, event.getAbsolutePath()); + CLog(`Recording complete`); + owner.isRecording = false; } + }, + onCameraAnalysisUI(imageAnalysis: com.github.triniwiz.fancycamera.ImageAnalysis): void { + } }); const listener = new listenerImpl(); @@ -306,11 +435,11 @@ export class CameraPlus extends CameraPlusBase { if (this._camera) { switch (id) { case CAMERA_FACING_FRONT: - this._camera.setCameraPosition(co.fitcom.fancycamera.FancyCamera.CameraPosition.FRONT); + this._camera.setPosition(com.github.triniwiz.fancycamera.CameraPosition.FRONT); this._cameraId = CAMERA_FACING_FRONT; break; default: - this._camera.setCameraPosition(co.fitcom.fancycamera.FancyCamera.CameraPosition.BACK); + this._camera.setPosition(com.github.triniwiz.fancycamera.CameraPosition.BACK); this._cameraId = CAMERA_FACING_BACK; break; } @@ -343,16 +472,14 @@ export class CameraPlus extends CameraPlusBase { } } - private _autoFocus = false; // @ts-ignore public get autoFocus(): boolean { - return this._autoFocus; + return this._camera ? this._camera.getAutoFocus() : false; } public set autoFocus(focus: boolean) { if (this._camera) { this._camera.setAutoFocus(focus); } - this._autoFocus = focus; } _togglingCamera = false; @@ -387,25 +514,25 @@ export class CameraPlus extends CameraPlusBase { this._camera.setSaveToGallery(!!options.saveToGallery); switch (options.quality) { case CameraVideoQuality.HIGHEST: - this._camera.setQuality(co.fitcom.fancycamera.FancyCamera.Quality.HIGHEST.getValue()); + this._camera.setQuality(com.github.triniwiz.fancycamera.Quality.HIGHEST); break; case CameraVideoQuality.LOWEST: - this._camera.setQuality(co.fitcom.fancycamera.FancyCamera.Quality.LOWEST.getValue()); + this._camera.setQuality(com.github.triniwiz.fancycamera.Quality.LOWEST); break; case CameraVideoQuality.MAX_2160P: - this._camera.setQuality(co.fitcom.fancycamera.FancyCamera.Quality.MAX_2160P.getValue()); + this._camera.setQuality(com.github.triniwiz.fancycamera.Quality.MAX_2160P); break; case CameraVideoQuality.MAX_1080P: - this._camera.setQuality(co.fitcom.fancycamera.FancyCamera.Quality.MAX_1080P.getValue()); + this._camera.setQuality(com.github.triniwiz.fancycamera.Quality.MAX_1080P); break; case CameraVideoQuality.MAX_720P: - this._camera.setQuality(co.fitcom.fancycamera.FancyCamera.Quality.MAX_720P.getValue()); + this._camera.setQuality(com.github.triniwiz.fancycamera.Quality.MAX_720P); break; case CameraVideoQuality.QVGA: - this._camera.setQuality(co.fitcom.fancycamera.FancyCamera.Quality.QVGA.getValue()); + this._camera.setQuality(com.github.triniwiz.fancycamera.Quality.QVGA); break; default: - this._camera.setQuality(co.fitcom.fancycamera.FancyCamera.Quality.MAX_480P.getValue()); + this._camera.setQuality(com.github.triniwiz.fancycamera.Quality.MAX_480P); break; } // -1 uses profile value; @@ -554,9 +681,14 @@ export class CameraPlus extends CameraPlusBase { /** * Toggles the flash mode of the camera. */ + public toggleFlash() { if (this._camera) { - this._camera.toggleFlash(); + if (this._camera.getFlashMode() !== com.github.triniwiz.fancycamera.CameraFlashMode.OFF) { + this._camera.setFlashMode(com.github.triniwiz.fancycamera.CameraFlashMode.ON); + } else { + this._camera.setFlashMode(com.github.triniwiz.fancycamera.CameraFlashMode.OFF); + } } } @@ -670,8 +802,8 @@ export class CameraPlus extends CameraPlusBase { */ public getCurrentCamera(): 'front' | 'rear' { if (!this._camera) return 'rear'; - switch (this._camera.getCameraPosition()) { - case co.fitcom.fancycamera.FancyCamera.CameraPosition.FRONT.getValue(): + switch (this._camera.getPosition()) { + case com.github.triniwiz.fancycamera.CameraPosition.FRONT: return 'front'; default: return 'rear'; @@ -710,7 +842,7 @@ export class CameraPlus extends CameraPlusBase { if (!this._camera) { return false; } - return this._camera.hasFlash(); + return this._camera.getHasFlash(); } /** @@ -718,7 +850,7 @@ export class CameraPlus extends CameraPlusBase { */ public getFlashMode() { if (this.hasFlash()) { - if (this._camera.flashEnabled()) { + if (this._camera.getFlashMode() !== com.github.triniwiz.fancycamera.CameraFlashMode.OFF) { return 'on'; } return 'off'; diff --git a/src/camera-plus.common.ts b/src/camera-plus.common.ts index 798be60..8271621 100644 --- a/src/camera-plus.common.ts +++ b/src/camera-plus.common.ts @@ -84,6 +84,53 @@ export abstract class CameraPlusBase extends ContentView implements CameraPlusDe */ public static confirmScreenDismissedEvent = 'confirmScreenDismissedEvent'; + /** + * @default 4:3 + * *ANDROID ONLY* A string to represent the camera preview aspect ratio e.g 4:3, 1:1 ,16:9 to check if the device supports the ratio use {@link getGetSupportedRatios} + */ + @GetSetProperty() + public ratio: string; + + /** + * *ANDROID ONLY* Camera zoom uses a float 0 - 1. + * 0 being no zoom + * 1 being max zoom + */ + @GetSetProperty() + public zoom: number = 0; + + + /** + * *ANDROID ONLY* Camera white balance + */ + @GetSetProperty() + public whiteBalance: WhiteBalance | string = WhiteBalance.Auto; + + + /** + * *ANDROID ONLY* A string representing the size of picture {@link takePicture} will output. Available sizes can be fetched using {@link getAvailablePictureSizes} + */ + @GetSetProperty() + public pictureSize: string = '0x0'; + + +/** + * *ANDROID ONLY* + * @param ratio string + * @returns returns an array of supported picture sizes supported by the current camera + */ + getAvailablePictureSizes(ratio: string): { width: number, height: number }[] { + return []; + } + + /** + * *ANDROID ONLY* + * @returns retuns an array of strings representing the preview sizes supported by the current device. + */ + getGetSupportedRatios(): string[] { + return []; + } + /** * If true the default take picture event will present a confirmation dialog. Default is true. */ @@ -379,6 +426,17 @@ export interface IVideoOptions { androidMaxAudioBitRate?: number; } +export enum WhiteBalance { + Auto = 'auto', + Sunny = 'sunny', + Cloudy = 'cloudy', + Shadow = 'shadow', + Twilight = 'twilight', + Fluorescent = 'fluorescent', + Incandescent = 'incandescent', + WarmFluorescent = 'warm-fluorescent', +} + export function GetSetProperty() { return (target, propertyKey: string) => { Object.defineProperty(target, propertyKey, { diff --git a/src/camera-plus.ios.ts b/src/camera-plus.ios.ts index aec7f24..a897bd3 100644 --- a/src/camera-plus.ios.ts +++ b/src/camera-plus.ios.ts @@ -22,7 +22,7 @@ import { } from './camera-plus.common'; export * from './camera-plus.common'; -export { CameraVideoQuality } from './camera-plus.common'; +export { CameraVideoQuality, WhiteBalance } from './camera-plus.common'; /** * Library image picker delegate (multiple or single) */ diff --git a/src/index.d.ts b/src/index.d.ts index c658bdc..ecb5413 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -67,6 +67,45 @@ export declare class CameraPlus extends ContentView { */ debug: boolean; + + /** + * @default 4:3 + * *ANDROID ONLY* A string to represent the camera preview aspect ratio e.g 4:3, 1:1 ,16:9 to check if the device supports the ratio use {@link getGetSupportedRatios} + */ + ratio: string; + + /** + * *ANDROID ONLY* Camera zoom uses a float 0 - 1. + * 0 being no zoom + * 1 being max zoom + */ + zoom: number; + + /** + * *ANDROID ONLY* Camera white balance + */ + whiteBalance: WhiteBalance | string; + + + /** + * *ANDROID ONLY* A string representing the size of picture {@link takePicture} will output. Available sizes can be fetched using {@link getAvailablePictureSizes} + */ + pictureSize: string; + + +/** + * *ANDROID ONLY* + * @param ratio string + * @returns returns an array of supported picture sizes supported by the current camera + */ + getAvailablePictureSizes(ratio: string): { width: number, height: number}[]; + + /** + * *ANDROID ONLY* + * @returns retuns an array of strings representing the preview sizes supported by the current device. + */ + getGetSupportedRatios(): string[]; + /** * If true the default take picture event will present a confirmation dialog. Default is true. */ @@ -290,3 +329,14 @@ export interface ICameraPlusEvents { videoRecordingFinishedEvent: any; videoRecordingReadyEvent: any; } + +export enum WhiteBalance { + Auto = 'auto', + Sunny = 'sunny', + Cloudy = 'cloudy', + Shadow = 'shadow', + Twilight = 'twilight', + Fluorescent = 'fluorescent', + Incandescent = 'incandescent', + WarmFluorescent = 'warm-fluorescent', +} diff --git a/src/platforms/android/AndroidManifest.xml b/src/platforms/android/AndroidManifest.xml deleted file mode 100644 index 4c8be5c..0000000 --- a/src/platforms/android/AndroidManifest.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/src/platforms/android/include.gradle b/src/platforms/android/include.gradle index 6367682..bd2fb9a 100644 --- a/src/platforms/android/include.gradle +++ b/src/platforms/android/include.gradle @@ -2,9 +2,13 @@ allprojects { repositories { maven { url "https://jitpack.io" } google() + maven { url "https://dl.bintray.com/triniwiz/maven" } } } + dependencies { - implementation "com.android.support:exifinterface:+" - implementation 'com.github.triniwiz:fancycamera:1.2.3' + implementation 'androidx.multidex:multidex:2.0.1' + implementation('com.github.triniwiz:fancycamera:3.0.0-alpha13'){ + transitive = true + } } diff --git a/src/platforms/android/nativescript_camera_plus.aar b/src/platforms/android/nativescript_camera_plus.aar index 9b07536..b2950ec 100644 Binary files a/src/platforms/android/nativescript_camera_plus.aar and b/src/platforms/android/nativescript_camera_plus.aar differ diff --git a/src/platforms/android/res/xml/provider_paths.xml b/src/platforms/android/res/xml/provider_paths.xml deleted file mode 100644 index ffa74ab..0000000 --- a/src/platforms/android/res/xml/provider_paths.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/typings/android.d.ts b/src/typings/android.d.ts index 36e9850..2ecd5d8 100644 --- a/src/typings/android.d.ts +++ b/src/typings/android.d.ts @@ -1,356 +1,751 @@ -declare module co { - export module fitcom { - export module fancycamera { - export class BuildConfig { - public static class: java.lang.Class; - public static DEBUG: boolean; - public static APPLICATION_ID: string; - public static BUILD_TYPE: string; - public static FLAVOR: string; - public static VERSION_CODE: number; - public static VERSION_NAME: string; - public constructor(); - } - } - } +/// + +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class BuildConfig { + public static class: java.lang.Class; + public static DEBUG: boolean; + public static LIBRARY_PACKAGE_NAME: string; + public static BUILD_TYPE: string; + public constructor(); + } + } + } + } +} + +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class Camera extends com.github.triniwiz.fancycamera.CameraBase { + public static class: java.lang.Class; + public getDisplayRatio(): string; + public cameraRecording(): boolean; + public setMaxVideoFrameRate(param0: number): void; + public getDisableHEVC(): boolean; + public getAutoFocus(): boolean; + public isStarted(): boolean; + public startPreview(): void; + public getMaxAudioBitRate(): number; + public getFlashMode(): com.github.triniwiz.fancycamera.CameraFlashMode; + public constructor(param0: globalAndroid.content.Context, param1: globalAndroid.util.AttributeSet); + public setAutoSquareCrop(param0: boolean): void; + public getPosition(): com.github.triniwiz.fancycamera.CameraPosition; + public setForceStopping(param0: boolean): void; + public getSupportedRatios(): native.Array; + public isForceStopping(): boolean; + public getWhiteBalance(): com.github.triniwiz.fancycamera.WhiteBalance; + public getAutoSquareCrop(): boolean; + public setWhiteBalance(param0: com.github.triniwiz.fancycamera.WhiteBalance): void; + public getPictureSize(): string; + public getSaveToGallery(): boolean; + public isRecording(): boolean; + public startRecording(): void; + public setDisableHEVC(param0: boolean): void; + public getDetectorType(): com.github.triniwiz.fancycamera.DetectorType; + public setCamera(param0: globalAndroid.hardware.Camera): void; + public getNumberOfCameras(): number; + public setZoom(param0: number): void; + public release(): void; + public getLock(): any; + public setLock(param0: any): void; + public setSaveToGallery(param0: boolean): void; + public setAudioLevelsEnabled(param0: boolean): void; + public setPosition(param0: com.github.triniwiz.fancycamera.CameraPosition): void; + public stop(): void; + public isAudioLevelsEnabled(): boolean; + public setMaxVideoBitrate(param0: number): void; + public setRecording(param0: boolean): void; + public getAmplitudeEMA(): number; + public stopPreview(): void; + public setStarted(param0: boolean): void; + public setQuality(param0: com.github.triniwiz.fancycamera.Quality): void; + public setPictureSize(param0: string): void; + public setRotation(param0: com.github.triniwiz.fancycamera.CameraOrientation): void; + public getMaxVideoBitrate(): number; + public getAvailablePictureSizes(param0: string): native.Array; + public getCamera(): globalAndroid.hardware.Camera; + public takePhoto(): void; + public getMaxVideoFrameRate(): number; + public getAmplitude(): number; + public getZoom(): number; + public setAutoFocus(param0: boolean): void; + public setDisplayRatio(param0: string): void; + public getQuality(): com.github.triniwiz.fancycamera.Quality; + public toggleCamera(): void; + public stopRecording(): void; + public constructor(param0: globalAndroid.content.Context, param1: globalAndroid.util.AttributeSet, param2: number); + public hasFlash(): boolean; + public constructor(param0: globalAndroid.content.Context); + public setMaxAudioBitRate(param0: number): void; + public getRotation(): com.github.triniwiz.fancycamera.CameraOrientation; + public getDb(): number; + public setFlashMode(param0: com.github.triniwiz.fancycamera.CameraFlashMode): void; + public setDetectorType(param0: com.github.triniwiz.fancycamera.DetectorType): void; + } + export module Camera { + export class WhenMappings { + public static class: java.lang.Class; + } + } + } + } + } +} + +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class Camera2 extends com.github.triniwiz.fancycamera.CameraBase { + public static class: java.lang.Class; + public getDisplayRatio(): string; + public cameraRecording(): boolean; + public onSurfaceRequested(param0: androidx.camera.core.SurfaceRequest): void; + public setMaxVideoFrameRate(param0: number): void; + public getDisableHEVC(): boolean; + public getAutoFocus(): boolean; + public getMaxAudioBitRate(): number; + public startPreview(): void; + public getFlashMode(): com.github.triniwiz.fancycamera.CameraFlashMode; + public constructor(param0: globalAndroid.content.Context, param1: globalAndroid.util.AttributeSet); + public setAutoSquareCrop(param0: boolean): void; + public getPosition(): com.github.triniwiz.fancycamera.CameraPosition; + public getSupportedRatios(): native.Array; + public getWhiteBalance(): com.github.triniwiz.fancycamera.WhiteBalance; + public getAutoSquareCrop(): boolean; + public setWhiteBalance(param0: com.github.triniwiz.fancycamera.WhiteBalance): void; + public getPictureSize(): string; + public getSaveToGallery(): boolean; + public startRecording(): void; + public setDisableHEVC(param0: boolean): void; + public getDetectorType(): com.github.triniwiz.fancycamera.DetectorType; + public getNumberOfCameras(): number; + public setZoom(param0: number): void; + public release(): void; + public setSaveToGallery(param0: boolean): void; + public setAudioLevelsEnabled(param0: boolean): void; + public setAmplitude(param0: number): void; + public setPosition(param0: com.github.triniwiz.fancycamera.CameraPosition): void; + public isAudioLevelsEnabled(): boolean; + public stop(): void; + public setMaxVideoBitrate(param0: number): void; + public setAmplitudeEMA(param0: number): void; + public getAmplitudeEMA(): number; + public stopPreview(): void; + public setQuality(param0: com.github.triniwiz.fancycamera.Quality): void; + public setPictureSize(param0: string): void; + public setRotation(param0: com.github.triniwiz.fancycamera.CameraOrientation): void; + public setDb(param0: number): void; + public getMaxVideoBitrate(): number; + public getAvailablePictureSizes(param0: string): native.Array; + public getMaxVideoFrameRate(): number; + public takePhoto(): void; + public getAmplitude(): number; + public getZoom(): number; + public setAutoFocus(param0: boolean): void; + public setDisplayRatio(param0: string): void; + public getQuality(): com.github.triniwiz.fancycamera.Quality; + public toggleCamera(): void; + public stopRecording(): void; + public constructor(param0: globalAndroid.content.Context, param1: globalAndroid.util.AttributeSet, param2: number); + public hasFlash(): boolean; + public constructor(param0: globalAndroid.content.Context); + public setMaxAudioBitRate(param0: number): void; + public getRotation(): com.github.triniwiz.fancycamera.CameraOrientation; + public getDb(): number; + public setFlashMode(param0: com.github.triniwiz.fancycamera.CameraFlashMode): void; + public setDetectorType(param0: com.github.triniwiz.fancycamera.DetectorType): void; + } + export module Camera2 { + export class WhenMappings { + public static class: java.lang.Class; + } + } + } + } + } +} + +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export abstract class CameraBase { + public static class: java.lang.Class; + public static Companion: com.github.triniwiz.fancycamera.CameraBase.Companion; + public setFaceDetectionOptions(param0: any): void; + public setMTimerTask$fancycamera_release(param0: java.util.TimerTask): void; + public getListener$fancycamera_release(): com.github.triniwiz.fancycamera.CameraEventListener; + public getCurrentOrientation$fancycamera_release(): number; + public setMaxVideoFrameRate(param0: number): void; + public isObjectDetectionSupported$fancycamera_release(): boolean; + public getAutoFocus(): boolean; + public setOnTextRecognitionListener(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public startPreview(): void; + public isMLSupported$fancycamera_release(): boolean; + public getDATETIME_FORMAT$fancycamera_release(): java.lang.ThreadLocal; + public getFlashMode(): com.github.triniwiz.fancycamera.CameraFlashMode; + public constructor(param0: globalAndroid.content.Context, param1: globalAndroid.util.AttributeSet); + public isFaceDetectionSupported$fancycamera_release(): boolean; + public setAutoSquareCrop(param0: boolean): void; + public getSupportedRatios(): native.Array; + public getWhiteBalance(): com.github.triniwiz.fancycamera.WhiteBalance; + public setWhiteBalance(param0: com.github.triniwiz.fancycamera.WhiteBalance): void; + public getSaveToGallery(): boolean; + public setGettingAudioLevels$fancycamera_release(param0: boolean): void; + public stringSizeToSize$fancycamera_release(param0: string): com.github.triniwiz.fancycamera.Size; + public getImageLabelingOptions$fancycamera_release(): any; + public setOnObjectDetectedListener(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public setOnFacesDetectedListener(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public hasCameraPermission(): boolean; + public setSaveToGallery(param0: boolean): void; + public setAudioLevelsEnabled(param0: boolean): void; + public getDATE_FORMAT$fancycamera_release(): java.lang.ThreadLocal; + public getAnalysisExecutor$fancycamera_release(): java.util.concurrent.ExecutorService; + public getObjectDetectionOptions$fancycamera_release(): any; + public setImageLabelingSupported$fancycamera_release(param0: boolean): void; + public getOnTextRecognitionListener$fancycamera_release(): com.github.triniwiz.fancycamera.ImageAnalysisCallback; + public getMDuration$fancycamera_release(): number; + public setOnTextRecognitionListener$fancycamera_release(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public setFaceDetectionSupported$fancycamera_release(param0: boolean): void; + public setBarcodeScannerOptions$fancycamera_release(param0: any): void; + public getMainHandler$fancycamera_release(): globalAndroid.os.Handler; + public getOnBarcodeScanningListener$fancycamera_release(): com.github.triniwiz.fancycamera.ImageAnalysisCallback; + public setAnalysisExecutor$fancycamera_release(param0: java.util.concurrent.ExecutorService): void; + public startDurationTimer$fancycamera_release(): void; + public stopDurationTimer$fancycamera_release(): void; + public getDuration(): number; + public requestAudioPermission(): void; + public hasAudioPermission(): boolean; + public getMaxVideoBitrate(): number; + public isBarcodeScanningSupported$fancycamera_release(): boolean; + public getOnPoseDetectedListener$fancycamera_release(): com.github.triniwiz.fancycamera.ImageAnalysisCallback; + public getFaceDetectionOptions$fancycamera_release(): any; + public getAvailablePictureSizes(param0: string): native.Array; + public getMTimerTask$fancycamera_release(): java.util.TimerTask; + public setRecorder$fancycamera_release(param0: globalAndroid.media.MediaRecorder): void; + public setTextRecognitionSupported$fancycamera_release(param0: boolean): void; + public getMaxVideoFrameRate(): number; + public takePhoto(): void; + public getRecorder$fancycamera_release(): globalAndroid.media.MediaRecorder; + public setAutoFocus(param0: boolean): void; + public convertToExifDateTime$fancycamera_release(param0: number): string; + public getQuality(): com.github.triniwiz.fancycamera.Quality; + public setImageLabelingOptions(param0: any): void; + public initListener$fancycamera_release(param0: globalAndroid.media.MediaRecorder): void; + public getVIDEO_RECORDER_PERMISSIONS_REQUEST$fancycamera_release(): number; + public stopRecording(): void; + public getOnFacesDetectedListener$fancycamera_release(): com.github.triniwiz.fancycamera.ImageAnalysisCallback; + public getVIDEO_RECORDER_PERMISSIONS$fancycamera_release(): native.Array; + public hasFlash(): boolean; + public constructor(param0: globalAndroid.content.Context); + public setonSurfaceUpdateListener(param0: com.github.triniwiz.fancycamera.SurfaceUpdateListener): void; + public setMaxAudioBitRate(param0: number): void; + public getRotation(): com.github.triniwiz.fancycamera.CameraOrientation; + public getDb(): number; + public setBarcodeScannerOptions(param0: any): void; + public setDetectorType(param0: com.github.triniwiz.fancycamera.DetectorType): void; + public setOnSurfaceUpdateListener$fancycamera_release(param0: com.github.triniwiz.fancycamera.SurfaceUpdateListener): void; + public getBarcodeScannerOptions$fancycamera_release(): any; + public cameraRecording(): boolean; + public getDisplayRatio(): string; + public isImageLabelingSupported$fancycamera_release(): boolean; + public deInitListener$fancycamera_release(): void; + public getDisableHEVC(): boolean; + public requestCameraPermission(): void; + public getMaxAudioBitRate(): number; + public setObjectDetectionOptions$fancycamera_release(param0: any): void; + public getTIME_FORMAT$fancycamera_release(): java.lang.ThreadLocal; + public hasStoragePermission(): boolean; + public getPosition(): com.github.triniwiz.fancycamera.CameraPosition; + public setOnFacesDetectedListener$fancycamera_release(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public setMTimer$fancycamera_release(param0: java.util.Timer): void; + public getAutoSquareCrop(): boolean; + public getPictureSize(): string; + public startRecording(): void; + public setDisableHEVC(param0: boolean): void; + public detectSupport$fancycamera_release(): void; + public getDetectorType(): com.github.triniwiz.fancycamera.DetectorType; + public setObjectDetectionSupported$fancycamera_release(param0: boolean): void; + public getNumberOfCameras(): number; + public setOnImageLabelingListener$fancycamera_release(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public setZoom(param0: number): void; + public requestPermission(): void; + public release(): void; + public isGettingAudioLevels$fancycamera_release(): boolean; + public setCurrentOrientation$fancycamera_release(param0: number): void; + public setPosition(param0: com.github.triniwiz.fancycamera.CameraPosition): void; + public isAudioLevelsEnabled(): boolean; + public stop(): void; + public setPoseDetectionSupported$fancycamera_release(param0: boolean): void; + public setMaxVideoBitrate(param0: number): void; + public setListener$fancycamera_release(param0: com.github.triniwiz.fancycamera.CameraEventListener): void; + public getAmplitudeEMA(): number; + public stopPreview(): void; + public getOnObjectDetectedListener$fancycamera_release(): com.github.triniwiz.fancycamera.ImageAnalysisCallback; + public setQuality(param0: com.github.triniwiz.fancycamera.Quality): void; + public getMTimer$fancycamera_release(): java.util.Timer; + public setObjectDetectionOptions(param0: any): void; + public setPictureSize(param0: string): void; + public setOnPoseDetectedListener$fancycamera_release(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public getOnImageLabelingListener$fancycamera_release(): com.github.triniwiz.fancycamera.ImageAnalysisCallback; + public setRotation(param0: com.github.triniwiz.fancycamera.CameraOrientation): void; + public setOnObjectDetectedListener$fancycamera_release(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public setImageLabelingOptions$fancycamera_release(param0: any): void; + public getOnSurfaceUpdateListener$fancycamera_release(): com.github.triniwiz.fancycamera.SurfaceUpdateListener; + public convertFromExifDateTime$fancycamera_release(param0: string): java.util.Date; + public hasPermission(): boolean; + public isPoseDetectionSupported$fancycamera_release(): boolean; + public getCamcorderProfile$fancycamera_release(param0: com.github.triniwiz.fancycamera.Quality): globalAndroid.media.CamcorderProfile; + public getAmplitude(): number; + public getZoom(): number; + public setDisplayRatio(param0: string): void; + public requestStoragePermission(): void; + public toggleCamera(): void; + public setOnBarcodeScanningListener(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public constructor(param0: globalAndroid.content.Context, param1: globalAndroid.util.AttributeSet, param2: number); + public setOnPoseDetectedListener(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public setMDuration$fancycamera_release(param0: number): void; + public setOnBarcodeScanningListener$fancycamera_release(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public setBarcodeScanningSupported$fancycamera_release(param0: boolean): void; + public setOnImageLabelingListener(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public setFaceDetectionOptions$fancycamera_release(param0: any): void; + public setFlashMode(param0: com.github.triniwiz.fancycamera.CameraFlashMode): void; + public isTextRecognitionSupported$fancycamera_release(): boolean; + } + export module CameraBase { + export class Companion { + public static class: java.lang.Class; + public getEMA_FILTER$fancycamera_release(): number; + } + export class WhenMappings { + public static class: java.lang.Class; + } + } + } + } + } +} + +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class CameraEventListener { + public static class: java.lang.Class; + /** + * Constructs a new instance of the com.github.triniwiz.fancycamera.CameraEventListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class. + */ + public constructor(implementation: { + onReady(): void; + onCameraOpen(): void; + onCameraClose(): void; + onCameraPhoto(param0: java.io.File): void; + onCameraVideo(param0: java.io.File): void; + onCameraAnalysis(param0: com.github.triniwiz.fancycamera.ImageAnalysis): void; + onCameraError(param0: string, param1: java.lang.Exception): void; + onCameraVideoStart(): void; + }); + public constructor(); + public onCameraOpen(): void; + public onCameraClose(): void; + public onCameraVideo(param0: java.io.File): void; + public onCameraVideoStart(): void; + public onCameraAnalysis(param0: com.github.triniwiz.fancycamera.ImageAnalysis): void; + public onReady(): void; + public onCameraError(param0: string, param1: java.lang.Exception): void; + public onCameraPhoto(param0: java.io.File): void; + } + } + } + } } -declare module co { - export module fitcom { - export module fancycamera { - export class Camera1 extends co.fitcom.fancycamera.CameraBase { - public static class: java.lang.Class; - public setSaveToGallery(param0: boolean): void; - public setDisableHEVC(param0: boolean): void; - public setMaxVideoFrameRate(param0: number): void; - public getDisableHEVC(): boolean; - public setAutoFocus(param0: boolean): void; - public setAutoSquareCrop(param0: boolean): void; - public getMaxVideoFrameRate(): number; - public setMaxAudioBitRate(param0: number): void; - public getSaveToGallery(): boolean; - public getMaxVideoBitrate(): number; - public getAutoFocus(): boolean; - public getMaxAudioBitRate(): number; - public getNumberOfCameras(): number; - public setMaxVideoBitrate(param0: number): void; - } - } - } +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export abstract class CameraEventListenerUI extends com.github.triniwiz.fancycamera.CameraEventListener { + public static class: java.lang.Class; + public static Companion: com.github.triniwiz.fancycamera.CameraEventListenerUI.Companion; + public onCameraOpenUI(): void; + public onCameraClose(): void; + public onCameraVideoUI(param0: java.io.File): void; + public onCameraError(param0: string, param1: java.lang.Exception): void; + public onCameraErrorUI(param0: string, param1: java.lang.Exception): void; + public onCameraPhoto(param0: java.io.File): void; + public onCameraVideoStartUI(): void; + public onReadyUI(): void; + public onCameraOpen(): void; + public onCameraVideo(param0: java.io.File): void; + public onCameraVideoStart(): void; + public onCameraCloseUI(): void; + public constructor(); + public onCameraAnalysis(param0: com.github.triniwiz.fancycamera.ImageAnalysis): void; + public onReady(): void; + public onCameraPhotoUI(param0: java.io.File): void; + public onCameraAnalysisUI(param0: com.github.triniwiz.fancycamera.ImageAnalysis): void; + } + export module CameraEventListenerUI { + export class Companion { + public static class: java.lang.Class; + } + } + } + } + } } -declare module co { - export module fitcom { - export module fancycamera { - export class Camera2 extends co.fitcom.fancycamera.CameraBase { - public static class: java.lang.Class; - public setSaveToGallery(param0: boolean): void; - public setDisableHEVC(param0: boolean): void; - public setMaxVideoFrameRate(param0: number): void; - public getDisableHEVC(): boolean; - public setAutoFocus(param0: boolean): void; - public setAutoSquareCrop(param0: boolean): void; - public getMaxVideoFrameRate(): number; - public setMaxAudioBitRate(param0: number): void; - public getSaveToGallery(): boolean; - public getMaxVideoBitrate(): number; - public getAutoFocus(): boolean; - public getMaxAudioBitRate(): number; - public getNumberOfCameras(): number; - public setMaxVideoBitrate(param0: number): void; - } - } - } +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class CameraFlashMode { + public static class: java.lang.Class; + public static OFF: com.github.triniwiz.fancycamera.CameraFlashMode; + public static ON: com.github.triniwiz.fancycamera.CameraFlashMode; + public static AUTO: com.github.triniwiz.fancycamera.CameraFlashMode; + public static RED_EYE: com.github.triniwiz.fancycamera.CameraFlashMode; + public static TORCH: com.github.triniwiz.fancycamera.CameraFlashMode; + public static Companion: com.github.triniwiz.fancycamera.CameraFlashMode.Companion; + public static values(): native.Array; + public getValue(): number; + public static valueOf(param0: string): com.github.triniwiz.fancycamera.CameraFlashMode; + } + export module CameraFlashMode { + export class Companion { + public static class: java.lang.Class; + public from(param0: number): com.github.triniwiz.fancycamera.CameraFlashMode; + } + } + } + } + } } -declare module co { - export module fitcom { - export module fancycamera { - export abstract class CameraBase { - public static class: java.lang.Class; - public static CameraThread: string; - public getListener(): co.fitcom.fancycamera.CameraEventListener; - public setSaveToGallery(param0: boolean): void; - public setDisableHEVC(param0: boolean): void; - public requestStoragePermission(): void; - public setMaxVideoFrameRate(param0: number): void; - public getHolder(): globalAndroid.view.TextureView; - public setListener(param0: co.fitcom.fancycamera.CameraEventListener): void; - public getDisableHEVC(): boolean; - public setAutoFocus(param0: boolean): void; - public setMaxAudioBitRate(param0: number): void; - public setTextViewListener(param0: co.fitcom.fancycamera.TextViewListener): void; - public hasStoragePermission(): boolean; - public getAutoFocus(): boolean; - public getNumberOfCameras(): number; - public getTextViewListener(): co.fitcom.fancycamera.TextViewListener; - public setMaxVideoBitrate(param0: number): void; - } - } - } +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class CameraOrientation { + public static class: java.lang.Class; + public static UNKNOWN: com.github.triniwiz.fancycamera.CameraOrientation; + public static PORTRAIT: com.github.triniwiz.fancycamera.CameraOrientation; + public static PORTRAIT_UPSIDE_DOWN: com.github.triniwiz.fancycamera.CameraOrientation; + public static LANDSCAPE_LEFT: com.github.triniwiz.fancycamera.CameraOrientation; + public static LANDSCAPE_RIGHT: com.github.triniwiz.fancycamera.CameraOrientation; + public static Companion: com.github.triniwiz.fancycamera.CameraOrientation.Companion; + public static valueOf(param0: string): com.github.triniwiz.fancycamera.CameraOrientation; + public static values(): native.Array; + public getValue(): number; + } + export module CameraOrientation { + export class Companion { + public static class: java.lang.Class; + public from(param0: number): com.github.triniwiz.fancycamera.CameraOrientation; + } + } + } + } + } } -declare module co { - export module fitcom { - export module fancycamera { - export class CameraEventListener { - public static class: java.lang.Class; - /** - * Constructs a new instance of the co.fitcom.fancycamera.CameraEventListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class. - */ - public constructor(implementation: { - onCameraOpen(): void; - onCameraClose(): void; - onPhotoEvent(param0: co.fitcom.fancycamera.PhotoEvent): void; - onVideoEvent(param0: co.fitcom.fancycamera.VideoEvent): void; - }); - public constructor(); - public onPhotoEvent(param0: co.fitcom.fancycamera.PhotoEvent): void; - public onCameraClose(): void; - public onVideoEvent(param0: co.fitcom.fancycamera.VideoEvent): void; - public onCameraOpen(): void; - } - } - } +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class CameraPosition { + public static class: java.lang.Class; + public static BACK: com.github.triniwiz.fancycamera.CameraPosition; + public static FRONT: com.github.triniwiz.fancycamera.CameraPosition; + public static Companion: com.github.triniwiz.fancycamera.CameraPosition.Companion; + public getValue(): number; + public static valueOf(param0: string): com.github.triniwiz.fancycamera.CameraPosition; + public static values(): native.Array; + } + export module CameraPosition { + export class Companion { + public static class: java.lang.Class; + public from(param0: number): com.github.triniwiz.fancycamera.CameraPosition; + } + } + } + } + } } -declare module co { - export module fitcom { - export module fancycamera { - export abstract class CameraEventListenerUI extends co.fitcom.fancycamera.CameraEventListener { - public static class: java.lang.Class; - public onPhotoEvent(param0: co.fitcom.fancycamera.PhotoEvent): void; - public onCameraCloseUI(): void; - public onPhotoEventUI(param0: co.fitcom.fancycamera.PhotoEvent): void; - public onCameraOpenUI(): void; - public onVideoEvent(param0: co.fitcom.fancycamera.VideoEvent): void; - public onCameraClose(): void; - public onCameraOpen(): void; - public constructor(); - public onVideoEventUI(param0: co.fitcom.fancycamera.VideoEvent): void; - } - } - } +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class DetectorType { + public static class: java.lang.Class; + public static Barcode: com.github.triniwiz.fancycamera.DetectorType; + public static DigitalInk: com.github.triniwiz.fancycamera.DetectorType; + public static Face: com.github.triniwiz.fancycamera.DetectorType; + public static Image: com.github.triniwiz.fancycamera.DetectorType; + public static Object: com.github.triniwiz.fancycamera.DetectorType; + public static Pose: com.github.triniwiz.fancycamera.DetectorType; + public static Text: com.github.triniwiz.fancycamera.DetectorType; + public static All: com.github.triniwiz.fancycamera.DetectorType; + public static None: com.github.triniwiz.fancycamera.DetectorType; + public toString(): string; + public static valueOf(param0: string): com.github.triniwiz.fancycamera.DetectorType; + public static values(): native.Array; + } + } + } + } } -declare module co { - export module fitcom { - export module fancycamera { - export class EventType { - public static class: java.lang.Class; - public static ERROR: co.fitcom.fancycamera.EventType; - public static INFO: co.fitcom.fancycamera.EventType; - public static values(): native.Array; - public static valueOf(param0: string): co.fitcom.fancycamera.EventType; - } - } - } +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class Event { + public static class: java.lang.Class; + public getType(): com.github.triniwiz.fancycamera.EventType; + public getMessage(): string; + public getFile(): java.io.File; + public constructor(param0: com.github.triniwiz.fancycamera.EventType, param1: java.io.File, param2: string); + } + } + } + } } -declare module co { - export module fitcom { - export module fancycamera { - export class FancyCamera { - public static class: java.lang.Class; - public onSurfaceTextureDestroyed(param0: globalAndroid.graphics.SurfaceTexture): boolean; - public flashEnabled(): boolean; - public requestStoragePermission(): void; - public setDisableHEVC(param0: boolean): void; - public setListener(param0: co.fitcom.fancycamera.CameraEventListener): void; - public onSurfaceTextureAvailable( - param0: globalAndroid.graphics.SurfaceTexture, - param1: number, - param2: number - ): void; - public getAutoFocus(): boolean; - public setCameraPosition(param0: co.fitcom.fancycamera.FancyCamera.CameraPosition): void; - public getDB(): number; - public setSaveToGallery(param0: boolean): void; - public constructor(param0: globalAndroid.content.Context, param1: globalAndroid.util.AttributeSet); - public setMaxVideoFrameRate(param0: number): void; - public setFile(param0: java.io.File): void; - public getAmplitude(): number; - public takePhoto(): void; - public requestPermission(): void; - public setCameraPosition(param0: number): void; - public getMaxVideoFrameRate(): number; - public enableFlash(): void; - public getSaveToGallery(): boolean; - public getMaxVideoBitrate(): number; - public getCameraPosition(): number; - public onSurfaceTextureSizeChanged( - param0: globalAndroid.graphics.SurfaceTexture, - param1: number, - param2: number - ): void; - public getAmplitudeEMA(): number; - public setCameraOrientation(param0: co.fitcom.fancycamera.FancyCamera.CameraOrientation): void; - public cameraStarted(): boolean; - public getDuration(): number; - public startRecording(): void; - public getDisableHEVC(): boolean; - public hasPermission(): boolean; - public toggleFlash(): void; - public constructor(param0: globalAndroid.content.Context); - public start(): void; - public cameraRecording(): boolean; - public stopRecording(): void; - public setMaxVideoBitrate(param0: number): void; - public deInitListener(): void; - public release(): void; - public setQuality(param0: number): void; - public setAutoFocus(param0: boolean): void; - public setCameraOrientation(param0: number): void; - public getCameraOrientation(): number; - public setAutoSquareCrop(param0: boolean): void; - public setMaxAudioBitRate(param0: number): void; - public stop(): void; - public onSurfaceTextureUpdated(param0: globalAndroid.graphics.SurfaceTexture): void; - public disableFlash(): void; - public hasFlash(): boolean; - public toggleCamera(): void; - public hasStoragePermission(): boolean; - public getMaxAudioBitRate(): number; - public getNumberOfCameras(): number; - } - export module FancyCamera { - export class CameraOrientation { - public static class: java.lang.Class; - public static UNKNOWN: co.fitcom.fancycamera.FancyCamera.CameraOrientation; - public static PORTRAIT: co.fitcom.fancycamera.FancyCamera.CameraOrientation; - public static PORTRAIT_UPSIDE_DOWN: co.fitcom.fancycamera.FancyCamera.CameraOrientation; - public static LANDSCAPE_LEFT: co.fitcom.fancycamera.FancyCamera.CameraOrientation; - public static LANDSCAPE_RIGHT: co.fitcom.fancycamera.FancyCamera.CameraOrientation; - public getValue(): number; - public static valueOf(param0: string): co.fitcom.fancycamera.FancyCamera.CameraOrientation; - public static values(): native.Array; - } - export class CameraPosition { - public static class: java.lang.Class; - public static BACK: co.fitcom.fancycamera.FancyCamera.CameraPosition; - public static FRONT: co.fitcom.fancycamera.FancyCamera.CameraPosition; - public getValue(): number; - public static values(): native.Array; - public static valueOf(param0: string): co.fitcom.fancycamera.FancyCamera.CameraPosition; - } - export class Quality { - public static class: java.lang.Class; - public static MAX_480P: co.fitcom.fancycamera.FancyCamera.Quality; - public static MAX_720P: co.fitcom.fancycamera.FancyCamera.Quality; - public static MAX_1080P: co.fitcom.fancycamera.FancyCamera.Quality; - public static MAX_2160P: co.fitcom.fancycamera.FancyCamera.Quality; - public static HIGHEST: co.fitcom.fancycamera.FancyCamera.Quality; - public static LOWEST: co.fitcom.fancycamera.FancyCamera.Quality; - public static QVGA: co.fitcom.fancycamera.FancyCamera.Quality; - public getValue(): number; - public static valueOf(param0: string): co.fitcom.fancycamera.FancyCamera.Quality; - public static values(): native.Array; - } - } - } - } +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class EventType { + public static class: java.lang.Class; + public static Photo: com.github.triniwiz.fancycamera.EventType; + public static Video: com.github.triniwiz.fancycamera.EventType; + public static values(): native.Array; + public static valueOf(param0: string): com.github.triniwiz.fancycamera.EventType; + } + } + } + } } -declare module co { - export module fitcom { - export module fancycamera { - export class PhotoEvent { - public static class: java.lang.Class; - public getFile(): java.io.File; - public getMessage(): string; - public getType(): co.fitcom.fancycamera.EventType; - } - export module PhotoEvent { - export class EventError { - public static class: java.lang.Class; - public static UNKNOWN: co.fitcom.fancycamera.PhotoEvent.EventError; - public static values(): native.Array; - public static valueOf(param0: string): co.fitcom.fancycamera.PhotoEvent.EventError; - } - export class EventInfo { - public static class: java.lang.Class; - public static PHOTO_TAKEN: co.fitcom.fancycamera.PhotoEvent.EventInfo; - public static UNKNOWN: co.fitcom.fancycamera.PhotoEvent.EventInfo; - public static values(): native.Array; - public static valueOf(param0: string): co.fitcom.fancycamera.PhotoEvent.EventInfo; - } - } - } - } +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class FancyCamera { + public static class: java.lang.Class; + public static Companion: com.github.triniwiz.fancycamera.FancyCamera.Companion; + public getGetSupportedRatios(): native.Array; + public setMaxVideoFrameRate(param0: number): void; + public getDisableHEVC(): boolean; + public getAutoFocus(): boolean; + public setCameraOrientation(param0: com.github.triniwiz.fancycamera.CameraOrientation): void; + public setOnTextRecognitionListener(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public requestCameraPermission(): void; + public getMaxAudioBitRate(): number; + public startPreview(): void; + public getFlashMode(): com.github.triniwiz.fancycamera.CameraFlashMode; + public setListener(param0: com.github.triniwiz.fancycamera.CameraEventListener): void; + public constructor(param0: globalAndroid.content.Context, param1: globalAndroid.util.AttributeSet); + public hasStoragePermission(): boolean; + public setAutoSquareCrop(param0: boolean): void; + public getPosition(): com.github.triniwiz.fancycamera.CameraPosition; + public getWhiteBalance(): com.github.triniwiz.fancycamera.WhiteBalance; + public getAutoSquareCrop(): boolean; + public setWhiteBalance(param0: com.github.triniwiz.fancycamera.WhiteBalance): void; + public getPictureSize(): string; + public getSaveToGallery(): boolean; + public startRecording(): void; + public setDisableHEVC(param0: boolean): void; + public getDetectorType(): com.github.triniwiz.fancycamera.DetectorType; + public getNumberOfCameras(): number; + public setOnObjectDetectedListener(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public static getForceV1(): boolean; + public setZoom(param0: number): void; + public setOnFacesDetectedListener(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public requestPermission(): void; + public release(): void; + public hasCameraPermission(): boolean; + public setSaveToGallery(param0: boolean): void; + public setAudioLevelsEnabled(param0: boolean): void; + public setPosition(param0: com.github.triniwiz.fancycamera.CameraPosition): void; + public isAudioLevelsEnabled(): boolean; + public stop(): void; + public setMaxVideoBitrate(param0: number): void; + public getRatio(): string; + public stopPreview(): void; + public setQuality(param0: com.github.triniwiz.fancycamera.Quality): void; + public setPictureSize(param0: string): void; + public hasPermission(): boolean; + public getDuration(): number; + public requestAudioPermission(): void; + public hasAudioPermission(): boolean; + public getMaxVideoBitrate(): number; + public getAvailablePictureSizes(param0: string): native.Array; + public getMaxVideoFrameRate(): number; + public takePhoto(): void; + public getZoom(): number; + public setAutoFocus(param0: boolean): void; + public requestStoragePermission(): void; + public getCameraOrientation(): com.github.triniwiz.fancycamera.CameraOrientation; + public getQuality(): com.github.triniwiz.fancycamera.Quality; + public setRatio(param0: string): void; + public setOnBarcodeScanningListener(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public toggleCamera(): void; + public stopRecording(): void; + public setOnPoseDetectedListener(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public constructor(param0: globalAndroid.content.Context); + public setonSurfaceUpdateListener(param0: com.github.triniwiz.fancycamera.SurfaceUpdateListener): void; + public onPermissionHandler(param0: number, param1: native.Array, param2: native.Array): void; + public setMaxAudioBitRate(param0: number): void; + public getHasFlash(): boolean; + public getDb(): number; + public setEnableAudioLevels(param0: boolean): void; + public setOnImageLabelingListener(param0: com.github.triniwiz.fancycamera.ImageAnalysisCallback): void; + public setFlashMode(param0: com.github.triniwiz.fancycamera.CameraFlashMode): void; + public static setForceV1(param0: boolean): void; + public setDetectorType(param0: com.github.triniwiz.fancycamera.DetectorType): void; + } + export module FancyCamera { + export class Companion { + public static class: java.lang.Class; + public setForceV1(param0: boolean): void; + public getForceV1(): boolean; + } + } + } + } + } } -declare module co { - export module fitcom { - export module fancycamera { - export class TextViewListener { - public static class: java.lang.Class; - /** - * Constructs a new instance of the co.fitcom.fancycamera.TextViewListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class. - */ - public constructor(implementation: { - onSurfaceTextureAvailable( - param0: globalAndroid.graphics.SurfaceTexture, - param1: number, - param2: number - ): void; - onSurfaceTextureSizeChanged( - param0: globalAndroid.graphics.SurfaceTexture, - param1: number, - param2: number - ): void; - onSurfaceTextureDestroyed(param0: globalAndroid.graphics.SurfaceTexture): void; - onSurfaceTextureUpdated(param0: globalAndroid.graphics.SurfaceTexture): void; - }); - public constructor(); - public onSurfaceTextureAvailable( - param0: globalAndroid.graphics.SurfaceTexture, - param1: number, - param2: number - ): void; - public onSurfaceTextureUpdated(param0: globalAndroid.graphics.SurfaceTexture): void; - public onSurfaceTextureDestroyed(param0: globalAndroid.graphics.SurfaceTexture): void; - public onSurfaceTextureSizeChanged( - param0: globalAndroid.graphics.SurfaceTexture, - param1: number, - param2: number - ): void; - } - } - } +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class ImageAnalysis { + public static class: java.lang.Class; + public constructor(); + } + } + } + } } -declare module co { - export module fitcom { - export module fancycamera { - export class VideoEvent { - public static class: java.lang.Class; - public getFile(): java.io.File; - public getMessage(): string; - public getType(): co.fitcom.fancycamera.EventType; - } - export module VideoEvent { - export class EventError { - public static class: java.lang.Class; - public static SERVER_DIED: co.fitcom.fancycamera.VideoEvent.EventError; - public static UNKNOWN: co.fitcom.fancycamera.VideoEvent.EventError; - public static values(): native.Array; - public static valueOf(param0: string): co.fitcom.fancycamera.VideoEvent.EventError; - } - export class EventInfo { - public static class: java.lang.Class; - public static RECORDING_STARTED: co.fitcom.fancycamera.VideoEvent.EventInfo; - public static RECORDING_FINISHED: co.fitcom.fancycamera.VideoEvent.EventInfo; - public static MAX_DURATION_REACHED: co.fitcom.fancycamera.VideoEvent.EventInfo; - public static MAX_FILESIZE_APPROACHING: co.fitcom.fancycamera.VideoEvent.EventInfo; - public static MAX_FILESIZE_REACHED: co.fitcom.fancycamera.VideoEvent.EventInfo; - public static NEXT_OUTPUT_FILE_STARTED: co.fitcom.fancycamera.VideoEvent.EventInfo; - public static UNKNOWN: co.fitcom.fancycamera.VideoEvent.EventInfo; - public static valueOf(param0: string): co.fitcom.fancycamera.VideoEvent.EventInfo; - public static values(): native.Array; - } - } - } - } +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class ImageAnalysisCallback { + public static class: java.lang.Class; + /** + * Constructs a new instance of the com.github.triniwiz.fancycamera.ImageAnalysisCallback interface with the provided implementation. An empty constructor exists calling super() when extending the interface class. + */ + public constructor(implementation: { + onSuccess(param0: string): void; + onError(param0: string, param1: java.lang.Exception): void; + }); + public constructor(); + public onSuccess(param0: string): void; + public onError(param0: string, param1: java.lang.Exception): void; + } + } + } + } +} + +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class Quality { + public static class: java.lang.Class; + public static MAX_480P: com.github.triniwiz.fancycamera.Quality; + public static MAX_720P: com.github.triniwiz.fancycamera.Quality; + public static MAX_1080P: com.github.triniwiz.fancycamera.Quality; + public static MAX_2160P: com.github.triniwiz.fancycamera.Quality; + public static HIGHEST: com.github.triniwiz.fancycamera.Quality; + public static LOWEST: com.github.triniwiz.fancycamera.Quality; + public static QVGA: com.github.triniwiz.fancycamera.Quality; + public static Companion: com.github.triniwiz.fancycamera.Quality.Companion; + public getValue(): number; + public static values(): native.Array; + public static valueOf(param0: string): com.github.triniwiz.fancycamera.Quality; + } + export module Quality { + export class Companion { + public static class: java.lang.Class; + public from(param0: number): com.github.triniwiz.fancycamera.Quality; + } + } + } + } + } +} + +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class Size { + public static class: java.lang.Class; + public toString(): string; + public getHeight(): number; + public getWidth(): number; + public constructor(param0: number, param1: number); + } + } + } + } +} + +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class SurfaceUpdateListener { + public static class: java.lang.Class; + /** + * Constructs a new instance of the com.github.triniwiz.fancycamera.SurfaceUpdateListener interface with the provided implementation. An empty constructor exists calling super() when extending the interface class. + */ + public constructor(implementation: { + onUpdate(): void; + }); + public constructor(); + public onUpdate(): void; + } + } + } + } +} + +declare module com { + export module github { + export module triniwiz { + export module fancycamera { + export class WhiteBalance { + public static class: java.lang.Class; + public static Auto: com.github.triniwiz.fancycamera.WhiteBalance; + public static Sunny: com.github.triniwiz.fancycamera.WhiteBalance; + public static Cloudy: com.github.triniwiz.fancycamera.WhiteBalance; + public static Shadow: com.github.triniwiz.fancycamera.WhiteBalance; + public static Twilight: com.github.triniwiz.fancycamera.WhiteBalance; + public static Fluorescent: com.github.triniwiz.fancycamera.WhiteBalance; + public static Incandescent: com.github.triniwiz.fancycamera.WhiteBalance; + public static WarmFluorescent: com.github.triniwiz.fancycamera.WhiteBalance; + public getValue$fancycamera_release(): string; + public static valueOf(param0: string): com.github.triniwiz.fancycamera.WhiteBalance; + public static values(): native.Array; + } + } + } + } } //Generics information: +