com.facebook.react.bridge.ReadableArray#getMap ( )源码实例Demo

下面列出了com.facebook.react.bridge.ReadableArray#getMap ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Override
BubbleEntry createEntry(ReadableArray yValues, int index) {
    if (!ReadableType.Map.equals(yValues.getType(index))) {
        throw new IllegalArgumentException("Invalid BubbleEntry data");
    }

    ReadableMap entry = yValues.getMap(index);
    if(!BridgeUtils.validate(entry, ReadableType.Number, "value") ||
            !BridgeUtils.validate(entry, ReadableType.Number, "size")) {
        throw new IllegalArgumentException("Invalid BubbleEntry data");
    }

    float value = (float) entry.getDouble("value");
    float size = (float) entry.getDouble("size");

    return new BubbleEntry(index, value, size);
}
 
public RNAGSGraphicsOverlay(ReadableMap rawData, GraphicsOverlay graphicsOverlay) {
    this.referenceId = rawData.getString("referenceId");
    ReadableArray pointImageDictionaryRaw = rawData.getArray("pointGraphics");
    pointImageDictionary = new HashMap<>();
    this.graphicsOverlay = graphicsOverlay;

    for (int i = 0; i < pointImageDictionaryRaw.size(); i++) {
        ReadableMap item = pointImageDictionaryRaw.getMap(i);
        if (item.hasKey("graphicId")) {
            String graphicId = item.getString("graphicId");
            String uri = item.getMap("graphic").getString("uri");
            pointImageDictionary.put(graphicId, uri);
        }
    }
    // Create graphics within overlay
    ReadableArray rawPoints = rawData.getArray("points");
    for (int i = 0; i < rawPoints.size(); i++) {
        addGraphicsLoop(rawPoints.getMap(i));

    }
}
 
@Override
CandleEntry createEntry(ReadableArray yValues, int index) {
    if (!ReadableType.Map.equals(yValues.getType(index))) {
        throw new IllegalArgumentException();
    }

    ReadableMap entryData = yValues.getMap(index);
    if (!BridgeUtils.validate(entryData, ReadableType.Number, "shadowH") ||
            !BridgeUtils.validate(entryData, ReadableType.Number, "shadowL") ||
            !BridgeUtils.validate(entryData, ReadableType.Number, "open") ||
            !BridgeUtils.validate(entryData, ReadableType.Number, "close")) {
        throw new IllegalArgumentException("CandleStick data must contain: shadowH, shadowL, open and close values");
    }

    float shadowH = (float) entryData.getDouble("shadowH");
    float shadowL = (float) entryData.getDouble("shadowL");
    float open = (float) entryData.getDouble("open");
    float close = (float) entryData.getDouble("close");

    return new CandleEntry(index, shadowH, shadowL, open, close);
}
 
源代码4 项目: react-native-GPay   文件: StackTraceHelper.java
/**
 * Convert a JavaScript stack trace (see {@code parseErrorStack} JS module) to an array of
 * {@link StackFrame}s.
 */
public static StackFrame[] convertJsStackTrace(@Nullable ReadableArray stack) {
  int size = stack != null ? stack.size() : 0;
  StackFrame[] result = new StackFrame[size];
  for (int i = 0; i < size; i++) {
    ReadableType type = stack.getType(i);
    if (type == ReadableType.Map) {
      ReadableMap frame = stack.getMap(i);
      String methodName = frame.getString("methodName");
      String fileName = frame.getString("file");
      int lineNumber = -1;
      if (frame.hasKey(LINE_NUMBER_KEY) && !frame.isNull(LINE_NUMBER_KEY)) {
        lineNumber = frame.getInt(LINE_NUMBER_KEY);
      }
      int columnNumber = -1;
      if (frame.hasKey(COLUMN_KEY) && !frame.isNull(COLUMN_KEY)) {
        columnNumber = frame.getInt(COLUMN_KEY);
      }
      result[i] = new StackFrameImpl(fileName, methodName, lineNumber, columnNumber);
    } else if (type == ReadableType.String) {
      result[i] = new StackFrameImpl(null, stack.getString(i), -1, -1);
    }
  }
  return result;
}
 
源代码5 项目: react-native-lock   文件: UserProfileBridgeTest.java
@Test
public void shouldBridgeIdentity() throws Exception {
    final UserProfile profile = withIdentities(INFO_AUTH0_COM, "facebook");
    final ReadableMap map = bridge(profile);

    assertThat(map.getString(EMAIL), equalTo(profile.getEmail()));

    final ReadableArray identities = map.getArray("identities");
    assertThat(identities.size(), is(1));

    final ReadableMap identityMap = identities.getMap(0);
    final UserIdentity identity = profile.getIdentities().get(0);
    assertThat(identityMap.getString("provider"), equalTo(identity.getProvider()));
    assertThat(identityMap.getString("connection"), equalTo(identity.getConnection()));
    assertThat(identityMap.getString("userId"), equalTo(identity.getId()));
    assertThat(identityMap.getBoolean("social"), equalTo(identity.isSocial()));
    assertThat(identityMap.getMap("profileData"), is(notNullValue()));
}
 
public void testArrayWithMaps() {
  mCatalystInstance.getJSModule(TestJSToJavaParametersModule.class).returnArrayWithMaps();
  waitForBridgeAndUIIdle();

  List<ReadableArray> calls = mRecordingTestModule.getArrayCalls();
  assertEquals(1, calls.size());
  ReadableArray array = calls.get(0);
  assertEquals(2, array.size());

  assertFalse(array.isNull(0));
  ReadableMap m1 = array.getMap(0);
  ReadableMap m2 = array.getMap(1);

  assertEquals("m1v1", m1.getString("m1k1"));
  assertEquals("m1v2", m1.getString("m1k2"));
  assertEquals("m2v1", m2.getString("m2k1"));
}
 
public boolean save(ReadableArray hydrationArray) {
  DataSource hydrationSource = this.getDataSource();
  ArrayList<DataPoint> dataPoints = new ArrayList<DataPoint>();
  ArrayList<DataSet> dataSets = new ArrayList<DataSet>();
  for (int index = 0 ; index < hydrationArray.size() ; index++) {
    ReadableMap hydrationSample = hydrationArray.getMap(index);
    if (hydrationSample != null) {
      dataPoints.add(DataPoint.builder(hydrationSource)
        .setTimestamp((long) hydrationSample.getDouble("date"), TimeUnit.MILLISECONDS)
        .setField(Field.FIELD_VOLUME, (float) hydrationSample.getDouble("waterConsumed"))
        .build());
    }
    if (dataPoints.size() % MAX_DATAPOINTS_PER_SINGLE_REQUEST == 0) {
      // Be sure to limit each individual request to 1000 datapoints. Exceeding this limit could result in an error.
      // https://developers.google.com/fit/android/history#insert_data
      dataSets.add(DataSet.builder(hydrationSource).addAll(dataPoints).build());
      dataPoints.clear();
    }
  }
  if (dataPoints.size() > 0) {
    dataSets.add(DataSet.builder(hydrationSource).addAll(dataPoints).build());
  }
  new SaveDataHelper(dataSets, googleFitManager).execute();

  return true;
}
 
@ReactMethod
public void openDoc(ReadableArray args, Callback callback) {
    final ReadableMap arg_object = args.getMap(0);
    try {
      if (arg_object.getString("url") != null && arg_object.getString("fileName") != null) {
          // parameter parsing
          final String url = arg_object.getString("url");
          final String fileName =arg_object.getString("fileName");
          final String fileType =arg_object.getString("fileType");
          final Boolean cache =arg_object.getBoolean("cache");
          final byte[] bytesData = new byte[0];
          // Begin the Download Task
          new FileDownloaderAsyncTask(callback, url, cache, fileName, fileType, bytesData).execute();
      }else{
          callback.invoke(false);
      }
     } catch (Exception e) {
          callback.invoke(e.getMessage());
     }
}
 
@ReactMethod
public void openDocb64(ReadableArray args, Callback callback) {
    final ReadableMap arg_object = args.getMap(0);
    try {
      if (arg_object.getString("base64") != null && arg_object.getString("fileName") != null && arg_object.getString("fileType") != null) {
          // parameter parsing
          final String base64 = arg_object.getString("base64");
          final String fileName =arg_object.getString("fileName");
          final String fileType =arg_object.getString("fileType");
          final Boolean cache = arg_object.getBoolean("cache");
          //Bytes
          final byte[] bytesData = android.util.Base64.decode(base64,android.util.Base64.DEFAULT);
          System.out.println("BytesData" + bytesData);
          // Begin the Download Task
          new FileDownloaderAsyncTask(callback, "", cache, fileName, fileType, bytesData).execute();
      }else{
          callback.invoke(false);
      }
     } catch (Exception e) {
          callback.invoke(e.getMessage());
     }


}
 
@ReactMethod
public void openDocBinaryinUrl(ReadableArray args, Callback callback) {
    final ReadableMap arg_object = args.getMap(0);
    try {
      if (arg_object.getString("url") != null && arg_object.getString("fileName") != null && arg_object.getString("fileType") != null) {
          // parameter parsing
          final String url = arg_object.getString("url");
          final String fileName =arg_object.getString("fileName");
          final String fileType =arg_object.getString("fileType");
          final Boolean cache =arg_object.getBoolean("cache");
          final byte[] bytesData = new byte[0];
          // Begin the Download Task
          new FileDownloaderAsyncTask(callback, url, cache, fileName, fileType, bytesData).execute();
      }else{
          callback.invoke(false);
      }
     } catch (Exception e) {
          callback.invoke(e.getMessage());
     }
}
 
源代码11 项目: react-native-arcgis-mapview   文件: RNAGSMapView.java
public void setInitialMapCenter(ReadableArray initialCenter) {
    ArrayList<Point> points = new ArrayList<>();
    for (int i = 0; i < initialCenter.size(); i++) {
        ReadableMap item = initialCenter.getMap(i);
        if (item == null) {
            continue;
        }
        Double latitude = item.getDouble("latitude");
        Double longitude = item.getDouble("longitude");
        if (latitude == 0 || longitude == 0) {
            continue;
        }
        Point point = new Point(longitude, latitude, SpatialReferences.getWgs84());
        points.add(point);
    }
    // If no points exist, add a sample point
    if (points.size() == 0) {
        points.add(new Point(36.244797,-94.148060, SpatialReferences.getWgs84()));
    }
    if (points.size() == 1) {
        mapView.getMap().setInitialViewpoint(new Viewpoint(points.get(0),10000));
    } else {
        Polygon polygon = new Polygon(new PointCollection(points));
        Viewpoint viewpoint = viewpointFromPolygon(polygon);
        mapView.getMap().setInitialViewpoint(viewpoint);
    }
}
 
@ReactProp(name = "layers")
public void setLayers(MapView view, @Nullable ReadableArray layers) {
    Log.v(REACT_CLASS, "set layers");

    if (layers == null || layers.size() < 1) {
        Log.v(REACT_CLASS, "set layers: adding default layer");
        mapView.addLayer(new ArcGISTiledMapServiceLayer(DEFAULT_LAYER));
    } else {
        mapView.removeAll();
        for (int i = 0; i < layers.size(); i++) {
            ReadableMap layer = layers.getMap(i);
            String type = layer.getString("type");
            String url = layer.getString("url");

            if (!url.equals("")) {
                if (type.equals("ArcGISTiledMapServiceLayer")) {
                    Log.v(REACT_CLASS, "set layers: adding ArcGISTiledMapServiceLayer:" + url);
                    mapView.addLayer(new ArcGISTiledMapServiceLayer(url));
                } else if (type.equals("ArcGISFeatureLayer")) {
                    Log.v(REACT_CLASS, "set layers: adding ArcGISFeatureLayer:" + url);
                    mapView.addLayer(new ArcGISFeatureLayer(url, ArcGISFeatureLayer.MODE.SNAPSHOT));
                } else {
                    Log.v(REACT_CLASS, "set layers: unrecognized layer: " + type);
                }
            } else {
                Log.v(REACT_CLASS, "set layers: invalid url:" + url);
            }
        }
    }
}
 
源代码13 项目: react-native-GPay   文件: ReactPickerManager.java
@ReactProp(name = "items")
public void setItems(ReactPicker view, @Nullable ReadableArray items) {
  if (items != null) {
    ReadableMap[] data = new ReadableMap[items.size()];
    for (int i = 0; i < items.size(); i++) {
      data[i] = items.getMap(i);
    }
    ReactPickerAdapter adapter = new ReactPickerAdapter(view.getContext(), data);
    adapter.setPrimaryTextColor(view.getPrimaryColor());
    view.setAdapter(adapter);
  } else {
    view.setAdapter(null);
  }
}
 
private void prepareMovieData(ReadableMap map){

        ReadableArray obj = map.getArray("names");
        for(int i = 0; i <obj.size() ; i++){
            ReadableMap objMap = obj.getMap(i);
            ListViewCell cell = new ListViewCell(objMap.getString("title"),objMap.getString("subtitle"));
            list.add(cell);
        }


        mAdapter.notifyDataSetChanged();
    }
 
/**
 *
 * Dataset config details: https://github.com/PhilJay/MPAndroidChart/wiki/DataSet-classes-in-detail
 */
@ReactProp(name = "data")
public void setData(Chart chart, ReadableMap propMap) {
    if (!BridgeUtils.validate(propMap, ReadableType.Array, "datasets")) {
        return;
    }

    String[] xValues = new String[0];
    if (BridgeUtils.validate(propMap, ReadableType.Array, "xValues")) {
        xValues = BridgeUtils.convertToStringArray(propMap.getArray("xValues"));
    }

    ChartData<IDataSet<U>> chartData = createData(xValues);

    ReadableArray datasets = propMap.getArray("datasets");
    for (int i = 0; i < datasets.size(); i++) {
        ReadableMap dataset = datasets.getMap(i);

        // TODO validation
        ReadableArray yValues = dataset.getArray("yValues");
        String label = dataset.getString("label");

        ArrayList<U> entries = createEntries(yValues);

        IDataSet<U> lineDataSet = createDataSet(entries, label);

        if (BridgeUtils.validate(dataset, ReadableType.Map, "config")) {
            dataSetConfig(lineDataSet, dataset.getMap("config"));
        }

        chartData.addDataSet(lineDataSet);
    }

    chart.setData(chartData);
    chart.invalidate();
}
 
/**
 * required for Mandiri Bill and BCA klikPay, Optional for other payment
 * @param itemDetails ReadableArray, holds information about item purchased by user TransactionRequest takes an array list of item details
 * @param transactionRequest object to request payment
 */
private void setItemDetail(ReadableArray itemDetails, TransactionRequest transactionRequest){
    ArrayList<ItemDetails> itemDetailsList = new ArrayList<>();
    for(int a=0; a < itemDetails.size(); a++){
        ReadableMap rmItem = itemDetails.getMap(a);
        String id = rmItem.getString("id");
        int price = rmItem.getInt("price");
        int qty = rmItem.getInt("qty");
        String name = rmItem.getString("name");
        itemDetailsList.add(new ItemDetails(id, price, qty, name));
    }
    transactionRequest.setItemDetails(itemDetailsList);
}
 
@Override
public void receiveCommand(RNYandexMapKitView view, int commandId, @Nullable ReadableArray args) {
    switch (commandId) {
        case ANIMATE_TO_COORDINATE:
            GeoPoint coordinate = null;
            ReadableMap latlon = args.getMap(0);
            if (latlon != null){
                double latitude = latlon.getDouble("latitude");
                double longitude = latlon.getDouble("longitude");
                coordinate = new GeoPoint(latitude, longitude);
            }
            view.animateToCoordinate(coordinate);
            break;
    }
}
 
/**
 * @param view
 * @param images an array of ReadableMap's {uri: "http://...."} return value of the resolveAssetSource(....)
 */
@ReactProp(name = "images")
public void setImages(final RCTImageSequenceView view, ReadableArray images) {
    ArrayList<String> uris = new ArrayList<>();
    for (int index = 0; index < images.size(); index++) {
        ReadableMap map = images.getMap(index);
        uris.add(map.getString("uri"));
    }

    view.setImages(uris);
}
 
源代码19 项目: react-native-GPay   文件: TransformHelper.java
public static void processTransform(ReadableArray transforms, double[] result) {
  double[] helperMatrix = sHelperMatrix.get();
  MatrixMathHelper.resetIdentityMatrix(result);

  for (int transformIdx = 0, size = transforms.size(); transformIdx < size; transformIdx++) {
    ReadableMap transform = transforms.getMap(transformIdx);
    String transformType = transform.keySetIterator().nextKey();

    MatrixMathHelper.resetIdentityMatrix(helperMatrix);
    if ("matrix".equals(transformType)) {
      ReadableArray matrix = transform.getArray(transformType);
      for (int i = 0; i < 16; i++) {
        helperMatrix[i] = matrix.getDouble(i);
      }
    } else if ("perspective".equals(transformType)) {
      MatrixMathHelper.applyPerspective(helperMatrix, transform.getDouble(transformType));
    } else if ("rotateX".equals(transformType)) {
      MatrixMathHelper.applyRotateX(
        helperMatrix,
        convertToRadians(transform, transformType));
    } else if ("rotateY".equals(transformType)) {
      MatrixMathHelper.applyRotateY(
        helperMatrix,
        convertToRadians(transform, transformType));
    } else if ("rotate".equals(transformType) || "rotateZ".equals(transformType)) {
      MatrixMathHelper.applyRotateZ(
        helperMatrix,
        convertToRadians(transform, transformType));
    } else if ("scale".equals(transformType)) {
      double scale = transform.getDouble(transformType);
      MatrixMathHelper.applyScaleX(helperMatrix, scale);
      MatrixMathHelper.applyScaleY(helperMatrix, scale);
    } else if ("scaleX".equals(transformType)) {
      MatrixMathHelper.applyScaleX(helperMatrix, transform.getDouble(transformType));
    } else if ("scaleY".equals(transformType)) {
      MatrixMathHelper.applyScaleY(helperMatrix, transform.getDouble(transformType));
    } else if ("translate".equals(transformType)) {
      ReadableArray value = transform.getArray(transformType);
      double x = value.getDouble(0);
      double y = value.getDouble(1);
      double z = value.size() > 2 ? value.getDouble(2) : 0d;
      MatrixMathHelper.applyTranslate3D(helperMatrix, x, y, z);
    } else if ("translateX".equals(transformType)) {
      MatrixMathHelper.applyTranslate2D(helperMatrix, transform.getDouble(transformType), 0d);
    } else if ("translateY".equals(transformType)) {
      MatrixMathHelper.applyTranslate2D(helperMatrix, 0d, transform.getDouble(transformType));
    } else if ("skewX".equals(transformType)) {
      MatrixMathHelper.applySkewX(
        helperMatrix,
        convertToRadians(transform, transformType));
    } else if ("skewY".equals(transformType)) {
      MatrixMathHelper.applySkewY(
        helperMatrix,
        convertToRadians(transform, transformType));
    } else {
      throw new JSApplicationIllegalArgumentException("Unsupported transform type: "
        + transformType);
    }

    MatrixMathHelper.multiplyInto(result, result, helperMatrix);
  }
}
 
源代码20 项目: photo-viewer   文件: MerryPhotoViewManager.java
@ReactProp(name = "data")
public void setData(MerryPhotoView merryPhotoView, @Nonnull ReadableArray prop) {

    MerryPhotoData[] merryPhotoDatas = new MerryPhotoData[]{};

    ArrayList<MerryPhotoData> list = new ArrayList<>();

    for (int i = 0; i < prop.size(); i++) {


        try {
            MerryPhotoData merryPhotoData = new MerryPhotoData() {
            };
            ReadableMap rm = prop.getMap(i);

            if (rm.hasKey("source")) {
                merryPhotoData.source = rm.getMap("source");

            }
            if (rm.hasKey("summary")) {
                merryPhotoData.summary = rm.getString("summary");

            }
            if (rm.hasKey("summaryColor")) {
                merryPhotoData.summaryColor = rm.getInt("summaryColor");

            }
            if (rm.hasKey("title")) {
                merryPhotoData.title = rm.getString("title");

            }
            if (rm.hasKey("titleColor")) {
                merryPhotoData.titleColor = rm.getInt("titleColor");
            }
            list.add(merryPhotoData);

        } catch (Exception e) {
            Log.e("PHOTO_VIEWER: ", e.toString());
        }


    }

    merryPhotoView.setData(list.toArray(merryPhotoDatas));
}