Search in sources :

Example 1 with JSApplicationIllegalArgumentException

use of com.facebook.react.bridge.JSApplicationIllegalArgumentException in project react-native-gesture-handler by kmagiera.

the class RNGestureHandlerModule method createGestureHandler.

@ReactMethod
public void createGestureHandler(String handlerName, int handlerTag, ReadableMap config) {
    for (int i = 0; i < mHandlerFactories.length; i++) {
        HandlerFactory handlerFactory = mHandlerFactories[i];
        if (handlerFactory.getName().equals(handlerName)) {
            GestureHandler handler = handlerFactory.create(getReactApplicationContext());
            handler.setTag(handlerTag);
            handler.setOnTouchEventListener(mEventListener);
            mRegistry.registerHandler(handler);
            mInteractionManager.configureInteractions(handler, config);
            handlerFactory.configure(handler, config);
            return;
        }
    }
    throw new JSApplicationIllegalArgumentException("Invalid handler name " + handlerName);
}
Also used : TapGestureHandler(com.swmansion.gesturehandler.TapGestureHandler) GestureHandler(com.swmansion.gesturehandler.GestureHandler) PinchGestureHandler(com.swmansion.gesturehandler.PinchGestureHandler) PanGestureHandler(com.swmansion.gesturehandler.PanGestureHandler) RotationGestureHandler(com.swmansion.gesturehandler.RotationGestureHandler) LongPressGestureHandler(com.swmansion.gesturehandler.LongPressGestureHandler) NativeViewGestureHandler(com.swmansion.gesturehandler.NativeViewGestureHandler) JSApplicationIllegalArgumentException(com.facebook.react.bridge.JSApplicationIllegalArgumentException) ReactMethod(com.facebook.react.bridge.ReactMethod)

Example 2 with JSApplicationIllegalArgumentException

use of com.facebook.react.bridge.JSApplicationIllegalArgumentException in project react-native-gesture-handler by kmagiera.

the class RNGestureHandlerModule method tryInitializeHandlerForReactRootView.

private void tryInitializeHandlerForReactRootView(int ancestorViewTag) {
    UIManagerModule uiManager = getReactApplicationContext().getNativeModule(UIManagerModule.class);
    final int rootViewTag = uiManager.resolveRootTagFromReactTag(ancestorViewTag);
    if (rootViewTag < 1) {
        throw new JSApplicationIllegalArgumentException("Could find root view for a given ancestor with tag " + ancestorViewTag);
    }
    synchronized (mRoots) {
        for (int i = 0; i < mRoots.size(); i++) {
            RNGestureHandlerRootHelper root = mRoots.get(i);
            if (root.getRootView().getRootViewTag() == rootViewTag) {
                // initialize a new one then
                return;
            }
        }
    }
    synchronized (mEnqueuedRootViewInit) {
        if (mEnqueuedRootViewInit.contains(rootViewTag)) {
            // root view initialization already enqueued -> we skip
            return;
        }
        mEnqueuedRootViewInit.add(rootViewTag);
    }
    // root helper for a given root tag has not been found, we may wat to check if the root view is
    // an instance of RNGestureHandlerEnabledRootView and then initialize gesture handler with it
    uiManager.addUIBlock(new UIBlock() {

        @Override
        public void execute(NativeViewHierarchyManager nativeViewHierarchyManager) {
            View view = nativeViewHierarchyManager.resolveView(rootViewTag);
            if (view instanceof RNGestureHandlerEnabledRootView) {
                ((RNGestureHandlerEnabledRootView) view).initialize();
            } else {
            // Seems like the root view is something else than RNGestureHandlerEnabledRootView, this
            // is fine though as long as gestureHandlerRootHOC is used in JS
            // FIXME: check and warn about gestureHandlerRootHOC
            }
            synchronized (mEnqueuedRootViewInit) {
                mEnqueuedRootViewInit.remove(new Integer(rootViewTag));
            }
        }
    });
}
Also used : UIBlock(com.facebook.react.uimanager.UIBlock) UIManagerModule(com.facebook.react.uimanager.UIManagerModule) JSApplicationIllegalArgumentException(com.facebook.react.bridge.JSApplicationIllegalArgumentException) View(android.view.View) ReactRootView(com.facebook.react.ReactRootView) NativeViewHierarchyManager(com.facebook.react.uimanager.NativeViewHierarchyManager)

Example 3 with JSApplicationIllegalArgumentException

use of com.facebook.react.bridge.JSApplicationIllegalArgumentException in project react-native-twilio-programmable-voice by hoxfon.

the class TwilioVoiceModule method initWithAccessToken.

@ReactMethod
public void initWithAccessToken(final String accessToken, Promise promise) {
    if (accessToken.equals("")) {
        promise.reject(new JSApplicationIllegalArgumentException("Invalid access token"));
        return;
    }
    TwilioVoiceModule.this.accessToken = accessToken;
    if (BuildConfig.DEBUG) {
        Log.d(TAG, "initWithAccessToken ACTION_FCM_TOKEN");
    }
    registerForCallInvites();
    WritableMap params = Arguments.createMap();
    params.putBoolean("initialized", true);
    promise.resolve(params);
}
Also used : WritableMap(com.facebook.react.bridge.WritableMap) JSApplicationIllegalArgumentException(com.facebook.react.bridge.JSApplicationIllegalArgumentException) ReactMethod(com.facebook.react.bridge.ReactMethod)

Aggregations

JSApplicationIllegalArgumentException (com.facebook.react.bridge.JSApplicationIllegalArgumentException)3 ReactMethod (com.facebook.react.bridge.ReactMethod)2 View (android.view.View)1 ReactRootView (com.facebook.react.ReactRootView)1 WritableMap (com.facebook.react.bridge.WritableMap)1 NativeViewHierarchyManager (com.facebook.react.uimanager.NativeViewHierarchyManager)1 UIBlock (com.facebook.react.uimanager.UIBlock)1 UIManagerModule (com.facebook.react.uimanager.UIManagerModule)1 GestureHandler (com.swmansion.gesturehandler.GestureHandler)1 LongPressGestureHandler (com.swmansion.gesturehandler.LongPressGestureHandler)1 NativeViewGestureHandler (com.swmansion.gesturehandler.NativeViewGestureHandler)1 PanGestureHandler (com.swmansion.gesturehandler.PanGestureHandler)1 PinchGestureHandler (com.swmansion.gesturehandler.PinchGestureHandler)1 RotationGestureHandler (com.swmansion.gesturehandler.RotationGestureHandler)1 TapGestureHandler (com.swmansion.gesturehandler.TapGestureHandler)1