Search in sources :

Example 11 with NativeViewHierarchyManager

use of com.facebook.react.uimanager.NativeViewHierarchyManager in project react-native-camera by react-native-community.

the class CameraModule method takePicture.

@ReactMethod
public void takePicture(final ReadableMap options, final int viewTag, final Promise promise) {
    final ReactApplicationContext context = getReactApplicationContext();
    final File cacheDirectory = mScopedContext.getCacheDirectory();
    UIManagerModule uiManager = context.getNativeModule(UIManagerModule.class);
    uiManager.addUIBlock(new UIBlock() {

        @Override
        public void execute(NativeViewHierarchyManager nativeViewHierarchyManager) {
            RNCameraView cameraView = (RNCameraView) nativeViewHierarchyManager.resolveView(viewTag);
            try {
                if (!Build.FINGERPRINT.contains("generic")) {
                    if (cameraView.isCameraOpened()) {
                        cameraView.takePicture(options, promise, cacheDirectory);
                    } else {
                        promise.reject("E_CAMERA_UNAVAILABLE", "Camera is not running");
                    }
                } else {
                    Bitmap image = RNCameraViewHelper.generateSimulatorPhoto(cameraView.getWidth(), cameraView.getHeight());
                    ByteArrayOutputStream stream = new ByteArrayOutputStream();
                    image.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                    new ResolveTakenPictureAsyncTask(stream.toByteArray(), promise, options, cacheDirectory).execute();
                }
            } catch (Exception e) {
                promise.reject("E_CAMERA_BAD_VIEWTAG", "takePictureAsync: Expected a Camera component");
            }
        }
    });
}
Also used : UIBlock(com.facebook.react.uimanager.UIBlock) Bitmap(android.graphics.Bitmap) UIManagerModule(com.facebook.react.uimanager.UIManagerModule) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ReactApplicationContext(com.facebook.react.bridge.ReactApplicationContext) File(java.io.File) NativeViewHierarchyManager(com.facebook.react.uimanager.NativeViewHierarchyManager) ResolveTakenPictureAsyncTask(org.reactnative.camera.tasks.ResolveTakenPictureAsyncTask) ReactMethod(com.facebook.react.bridge.ReactMethod)

Example 12 with NativeViewHierarchyManager

use of com.facebook.react.uimanager.NativeViewHierarchyManager in project react-native-camera by lwansbrough.

the class CameraModule method stopRecording.

@ReactMethod
public void stopRecording(final int viewTag) {
    final ReactApplicationContext context = getReactApplicationContext();
    UIManagerModule uiManager = context.getNativeModule(UIManagerModule.class);
    uiManager.addUIBlock(new UIBlock() {

        @Override
        public void execute(NativeViewHierarchyManager nativeViewHierarchyManager) {
            final RNCameraView cameraView;
            try {
                cameraView = (RNCameraView) nativeViewHierarchyManager.resolveView(viewTag);
                if (cameraView.isCameraOpened()) {
                    cameraView.stopRecording();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}
Also used : UIBlock(com.facebook.react.uimanager.UIBlock) UIManagerModule(com.facebook.react.uimanager.UIManagerModule) NativeViewHierarchyManager(com.facebook.react.uimanager.NativeViewHierarchyManager)

Example 13 with NativeViewHierarchyManager

use of com.facebook.react.uimanager.NativeViewHierarchyManager in project react-native-camera by lwansbrough.

the class CameraModule method record.

@ReactMethod
public void record(final ReadableMap options, final int viewTag, final Promise promise) {
    final ReactApplicationContext context = getReactApplicationContext();
    final File cacheDirectory = mScopedContext.getCacheDirectory();
    UIManagerModule uiManager = context.getNativeModule(UIManagerModule.class);
    uiManager.addUIBlock(new UIBlock() {

        @Override
        public void execute(NativeViewHierarchyManager nativeViewHierarchyManager) {
            final RNCameraView cameraView;
            try {
                cameraView = (RNCameraView) nativeViewHierarchyManager.resolveView(viewTag);
                if (cameraView.isCameraOpened()) {
                    cameraView.record(options, promise, cacheDirectory);
                } else {
                    promise.reject("E_CAMERA_UNAVAILABLE", "Camera is not running");
                }
            } catch (Exception e) {
                promise.reject("E_CAPTURE_FAILED", e.getMessage());
            }
        }
    });
}
Also used : UIBlock(com.facebook.react.uimanager.UIBlock) UIManagerModule(com.facebook.react.uimanager.UIManagerModule) File(java.io.File) NativeViewHierarchyManager(com.facebook.react.uimanager.NativeViewHierarchyManager)

Example 14 with NativeViewHierarchyManager

use of com.facebook.react.uimanager.NativeViewHierarchyManager in project react-native-camera by lwansbrough.

the class CameraModule method resumeRecording.

@ReactMethod
public void resumeRecording(final int viewTag) {
    final ReactApplicationContext context = getReactApplicationContext();
    UIManagerModule uiManager = context.getNativeModule(UIManagerModule.class);
    uiManager.addUIBlock(new UIBlock() {

        @Override
        public void execute(NativeViewHierarchyManager nativeViewHierarchyManager) {
            final RNCameraView cameraView;
            try {
                cameraView = (RNCameraView) nativeViewHierarchyManager.resolveView(viewTag);
                if (cameraView.isCameraOpened()) {
                    cameraView.resumeRecording();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}
Also used : UIBlock(com.facebook.react.uimanager.UIBlock) UIManagerModule(com.facebook.react.uimanager.UIManagerModule) NativeViewHierarchyManager(com.facebook.react.uimanager.NativeViewHierarchyManager)

Example 15 with NativeViewHierarchyManager

use of com.facebook.react.uimanager.NativeViewHierarchyManager in project react-native-camera by lwansbrough.

the class CameraModule method pauseRecording.

@ReactMethod
public void pauseRecording(final int viewTag) {
    final ReactApplicationContext context = getReactApplicationContext();
    UIManagerModule uiManager = context.getNativeModule(UIManagerModule.class);
    uiManager.addUIBlock(new UIBlock() {

        @Override
        public void execute(NativeViewHierarchyManager nativeViewHierarchyManager) {
            final RNCameraView cameraView;
            try {
                cameraView = (RNCameraView) nativeViewHierarchyManager.resolveView(viewTag);
                if (cameraView.isCameraOpened()) {
                    cameraView.pauseRecording();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}
Also used : UIBlock(com.facebook.react.uimanager.UIBlock) UIManagerModule(com.facebook.react.uimanager.UIManagerModule) NativeViewHierarchyManager(com.facebook.react.uimanager.NativeViewHierarchyManager)

Aggregations

NativeViewHierarchyManager (com.facebook.react.uimanager.NativeViewHierarchyManager)16 UIBlock (com.facebook.react.uimanager.UIBlock)16 UIManagerModule (com.facebook.react.uimanager.UIManagerModule)16 ReactApplicationContext (com.facebook.react.bridge.ReactApplicationContext)4 ReactMethod (com.facebook.react.bridge.ReactMethod)4 File (java.io.File)4 AspectRatio (com.google.android.cameraview.AspectRatio)2 ArrayList (java.util.ArrayList)2 Set (java.util.Set)2 SortedSet (java.util.SortedSet)2 Bitmap (android.graphics.Bitmap)1 View (android.view.View)1 ReactRootView (com.facebook.react.ReactRootView)1 JSApplicationIllegalArgumentException (com.facebook.react.bridge.JSApplicationIllegalArgumentException)1 WritableArray (com.facebook.react.bridge.WritableArray)1 Size (com.google.android.cameraview.Size)1 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 List (java.util.List)1 Properties (java.util.Properties)1 ResolveTakenPictureAsyncTask (org.reactnative.camera.tasks.ResolveTakenPictureAsyncTask)1