Example usage for com.facebook.react.bridge ReadableType Map

List of usage examples for com.facebook.react.bridge ReadableType Map

Introduction

In this page you can find the example usage for com.facebook.react.bridge ReadableType Map.

Prototype

ReadableType Map

To view the source code for com.facebook.react.bridge ReadableType Map.

Click Source Link

Usage

From source file:com.reactlibrary.SGScanditPicker.java

License:Apache License

@Override
public void receiveCommand(BarcodePicker view, int commandType, @Nullable final ReadableArray args) {

    int argCount = args == null ? 0 : args.size();
    final WritableMap promiseResponse = Arguments.createMap();
    if (argCount > 0) {
        if (args.getType(args.size() - 1) == ReadableType.Map) {
            ReadableMap map = args.getMap(args.size() - 1);
            if (map.hasKey("commandid")) {
                int commandid = map.getInt("commandid");
                promiseResponse.putInt("commandid", commandid);
                argCount--;/*  w  ww . j  ava  2 s.  c  o  m*/
            }
        }
    }

    switch (commandType) {
    case COMMAND_STOP_SCANNING: {
        picker.stopScanning();
        return;
    }
    case COMMAND_START_SCANNING: {
        picker.startScanning(false, new Runnable() {
            @Override
            public void run() {
                new PromiseSender(promiseResponse) {
                    @Override
                    public Object getResponse() {
                        return "Scan started";
                    }
                };
            }
        });
        return;
    }
    case COMMAND_START_SCANNING_IN_PAUSED_STATE: {
        picker.startScanning(true);
        return;
    }
    case COMMAND_PAUSE_SCANNING: {
        picker.pauseScanning();
        return;
    }
    case COMMAND_SET_SETTINGS: {
        if (argCount > 0) {
            ReadableMap map = args.getMap(0);
            setSettings(null, map);
            new PromiseSender(promiseResponse) {
                @Override
                public Object getResponse() {
                    return ScanditBarcodeHelpers.scanSettingsToWritableMap(scanSettings);
                }
            };
        } else {
            final int c = argCount;
            new PromiseSender(promiseResponse) {
                @Override
                public Object getResponse() {
                    promiseFailed = true;
                    return "Cannot set null settings" + c;
                }
            };
        }
        return;
    }
    case COMMAND_GET_SETTINGS: {
        new PromiseSender(promiseResponse) {
            @Override
            public Object getResponse() {
                return ScanditBarcodeHelpers.scanSettingsToWritableMap(scanSettings);
            }
        };
        emitSettings();
        return;
    }

    default:
        throw new IllegalArgumentException(String.format(Locale.ENGLISH,
                "Unsupported command %d received by %s.", commandType, getClass().getSimpleName()));
    }
}