List of usage examples for com.facebook.react.bridge ReadableMap getType
@NonNull ReadableType getType(@NonNull String name);
From source file:com.silklabs.react.blobs.WebSocketModule.java
License:Open Source License
@ReactMethod public void connect(final String url, @Nullable final ReadableArray protocols, @Nullable final ReadableMap headers, final int id) { OkHttpClient client = new OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS) .writeTimeout(10, TimeUnit.SECONDS).readTimeout(0, TimeUnit.MINUTES) // Disable timeouts for read .build();//from www .j a v a 2s .c o m Request.Builder builder = new Request.Builder().tag(id).url(url); if (headers != null) { ReadableMapKeySetIterator iterator = headers.keySetIterator(); if (!headers.hasKey("origin")) { builder.addHeader("origin", setDefaultOrigin(url)); } while (iterator.hasNextKey()) { String key = iterator.nextKey(); if (ReadableType.String.equals(headers.getType(key))) { builder.addHeader(key, headers.getString(key)); } else { FLog.w(ReactConstants.TAG, "Ignoring: requested " + key + ", value not a string"); } } } else { builder.addHeader("origin", setDefaultOrigin(url)); } if (protocols != null && protocols.size() > 0) { StringBuilder protocolsValue = new StringBuilder(""); for (int i = 0; i < protocols.size(); i++) { String v = protocols.getString(i).trim(); if (!v.isEmpty() && !v.contains(",")) { protocolsValue.append(v); protocolsValue.append(","); } } if (protocolsValue.length() > 0) { protocolsValue.replace(protocolsValue.length() - 1, protocolsValue.length(), ""); builder.addHeader("Sec-WebSocket-Protocol", protocolsValue.toString()); } } WebSocketCall.create(client, builder.build()).enqueue(new WebSocketListener() { @Override public void onOpen(WebSocket webSocket, Response response) { mWebSocketConnections.put(id, webSocket); WritableMap params = Arguments.createMap(); params.putInt("id", id); sendEvent("websocketOpen", params); } @Override public void onClose(int code, String reason) { WritableMap params = Arguments.createMap(); params.putInt("id", id); params.putInt("code", code); params.putString("reason", reason); sendEvent("websocketClosed", params); } @Override public void onFailure(IOException e, Response response) { notifyWebSocketFailed(id, e.getMessage()); } @Override public void onPong(Buffer buffer) { } @Override public void onMessage(ResponseBody response) throws IOException { WritableMap params = Arguments.createMap(); params.putInt("id", id); if (mBlobsEnabled.containsKey(id) && mBlobsEnabled.get(id) && response.contentType() == WebSocket.BINARY) { byte[] data; try { data = response.source().readByteArray(); } catch (IOException e) { notifyWebSocketFailed(id, e.getMessage()); return; } WritableMap blob = Arguments.createMap(); blob.putString("blobId", BlobModule.store(data)); blob.putInt("offset", 0); blob.putInt("size", data.length); params.putMap("data", blob); params.putString("type", "blob"); } else { String message; try { if (response.contentType() == WebSocket.BINARY) { message = Base64.encodeToString(response.source().readByteArray(), Base64.NO_WRAP); } else { message = response.source().readUtf8(); } } catch (IOException e) { notifyWebSocketFailed(id, e.getMessage()); return; } params.putString("data", message); params.putString("type", response.contentType() == WebSocket.BINARY ? "binary" : "text"); } try { response.source().close(); } catch (IOException e) { FLog.e(ReactConstants.TAG, "Could not close BufferedSource for WebSocket id " + id, e); } sendEvent("websocketMessage", params); } }); // Trigger shutdown of the dispatcher's executor so this process can exit cleanly client.dispatcher().executorService().shutdown(); }
From source file:com.transistorsoft.rnbackgroundgeolocation.RNBackgroundGeolocationModule.java
private static JSONObject mapToJson(ReadableMap map) { ReadableMapKeySetIterator iterator = map.keySetIterator(); JSONObject json = new JSONObject(); try {/*from w ww .j a va 2s .com*/ while (iterator.hasNextKey()) { String key = iterator.nextKey(); switch (map.getType(key)) { case String: json.put(key, map.getString(key)); break; case Boolean: json.put(key, map.getBoolean(key)); break; case Number: json.put(key, map.getDouble(key)); break; case Map: json.put(key, mapToJson(map.getMap(key))); break; case Array: json.put(key, arrayToJson(map.getArray(key))); break; } } } catch (JSONException e) { e.printStackTrace(); } return json; }
From source file:it.near.sdk.reactnative.rnnearitsdk.RNNearItUtils.java
License:Mozilla Public License
public static JSONObject toJSONObject(ReadableMap readableMap) throws JSONException { JSONObject jsonObject = new JSONObject(); ReadableMapKeySetIterator iterator = readableMap.keySetIterator(); while (iterator.hasNextKey()) { String key = iterator.nextKey(); ReadableType type = readableMap.getType(key); switch (type) { case Null: jsonObject.put(key, null);// ww w . jav a 2s.com break; case Boolean: jsonObject.put(key, readableMap.getBoolean(key)); break; case Number: jsonObject.put(key, readableMap.getDouble(key)); break; case String: jsonObject.put(key, readableMap.getString(key)); break; case Map: jsonObject.put(key, toJSONObject(readableMap.getMap(key))); break; case Array: jsonObject.put(key, toJSONArray(readableMap.getArray(key))); break; } } return jsonObject; }
From source file:it.near.sdk.reactnative.rnnearitsdk.RNNearItUtils.java
License:Mozilla Public License
public static Map<String, Object> toMap(ReadableMap readableMap) { Map<String, Object> map = new HashMap<>(); ReadableMapKeySetIterator iterator = readableMap.keySetIterator(); while (iterator.hasNextKey()) { String key = iterator.nextKey(); ReadableType type = readableMap.getType(key); switch (type) { case Null: map.put(key, null);// ww w . ja v a 2 s . c o m break; case Boolean: map.put(key, readableMap.getBoolean(key)); break; case Number: map.put(key, readableMap.getDouble(key)); break; case String: map.put(key, readableMap.getString(key)); break; case Map: map.put(key, toMap(readableMap.getMap(key))); break; case Array: map.put(key, toArray(readableMap.getArray(key))); break; } } return map; }
From source file:rn.crashlytics.answers.AnswersModule.java
License:Open Source License
private static void addCustomAttribute(AnswersEvent event, ReadableMap attrMap, String attrKey) { ReadableType type = attrMap.getType(attrKey); switch (type) { case Number: event.putCustomAttribute(attrKey, attrMap.getDouble(attrKey)); break;// www . j a v a 2 s. c o m case String: event.putCustomAttribute(attrKey, attrMap.getString(attrKey)); break; case Boolean: event.putCustomAttribute(attrKey, String.valueOf(attrMap.getBoolean(attrKey))); break; case Null: break; // skip default: throw new IllegalArgumentException("Can't handle Objects or Arrays"); } }