Example usage for com.facebook.react.bridge ReadableArray getArray

List of usage examples for com.facebook.react.bridge ReadableArray getArray

Introduction

In this page you can find the example usage for com.facebook.react.bridge ReadableArray getArray.

Prototype

@Nullable
    ReadableArray getArray(int index);

Source Link

Usage

From source file:co.rewen.statex.StateXModule.java

License:Open Source License

/**
 * Inserts multiple (key, value) pairs. If one or more of the pairs cannot be inserted, this will
 * return StateXFailure, but all other pairs will have been inserted.
 * The insertion will replace conflicting (key, value) pairs.
 *///from www. j a va  2s.  c om
@ReactMethod
public void multiSet(final ReadableArray keyValueArray, final Callback callback) {
    if (keyValueArray.size() == 0) {
        callback.invoke(AsyncStorageErrorUtil.getInvalidKeyError(null));
        return;
    }

    new GuardedAsyncTask<Void, Void>(getReactApplicationContext()) {
        @Override
        protected void doInBackgroundGuarded(Void... params) {
            if (!ensureDatabase()) {
                callback.invoke(AsyncStorageErrorUtil.getDBError(null));
                return;
            }

            String sql = "INSERT OR REPLACE INTO " + TABLE_STATE + " VALUES (?, ?);";
            SQLiteStatement statement = mStateXDatabaseSupplier.get().compileStatement(sql);
            WritableMap error = null;
            ArrayList<String> keys = new ArrayList<>();
            try {
                mStateXDatabaseSupplier.get().beginTransaction();
                for (int idx = 0; idx < keyValueArray.size(); idx++) {
                    if (keyValueArray.getArray(idx).size() != 2) {
                        error = AsyncStorageErrorUtil.getInvalidValueError(null);
                        break;
                    }
                    String key = keyValueArray.getArray(idx).getString(0);
                    if (key == null) {
                        error = AsyncStorageErrorUtil.getInvalidKeyError(null);
                        break;
                    }
                    String value = keyValueArray.getArray(idx).getString(1);
                    if (value == null) {
                        error = AsyncStorageErrorUtil.getInvalidValueError(null);
                        break;
                    }

                    keys.add(key);
                    statement.clearBindings();
                    statement.bindString(1, key);
                    statement.bindString(2, value);
                    statement.execute();
                }
                mStateXDatabaseSupplier.get().setTransactionSuccessful();
            } catch (Exception e) {
                FLog.w(ReactConstants.TAG, e.getMessage(), e);
                error = AsyncStorageErrorUtil.getError(null, e.getMessage());
            } finally {
                try {
                    mStateXDatabaseSupplier.get().endTransaction();
                } catch (Exception e) {
                    FLog.w(ReactConstants.TAG, e.getMessage(), e);
                    if (error == null) {
                        error = AsyncStorageErrorUtil.getError(null, e.getMessage());
                    }
                }
            }
            if (error != null) {
                callback.invoke(error);
            } else {
                callback.invoke();
                notifyStateChanged(keys);
            }
        }
    }.execute();
}

From source file:co.rewen.statex.StateXModule.java

License:Open Source License

/**
 * Given an array of (key, value) pairs, this will merge the given values with the stored values
 * of the given keys, if they exist.//from  www.j av a2  s. c o  m
 */
@ReactMethod
public void multiMerge(final ReadableArray keyValueArray, final Callback callback) {
    new GuardedAsyncTask<Void, Void>(getReactApplicationContext()) {
        @Override
        protected void doInBackgroundGuarded(Void... params) {
            if (!ensureDatabase()) {
                callback.invoke(AsyncStorageErrorUtil.getDBError(null));
                return;
            }
            WritableMap error = null;
            ArrayList<String> keys = new ArrayList<>();
            try {
                mStateXDatabaseSupplier.get().beginTransaction();
                for (int idx = 0; idx < keyValueArray.size(); idx++) {
                    if (keyValueArray.getArray(idx).size() != 2) {
                        error = AsyncStorageErrorUtil.getInvalidValueError(null);
                        return;
                    }

                    String key = keyValueArray.getArray(idx).getString(0);
                    if (key == null) {
                        error = AsyncStorageErrorUtil.getInvalidKeyError(null);
                        return;
                    } else {
                        keys.add(key);
                    }

                    if (keyValueArray.getArray(idx).getString(1) == null) {
                        error = AsyncStorageErrorUtil.getInvalidValueError(null);
                        return;
                    }

                    if (!AsyncLocalStorageUtil.mergeImpl(mStateXDatabaseSupplier.get(), key,
                            keyValueArray.getArray(idx).getString(1))) {
                        error = AsyncStorageErrorUtil.getDBError(null);
                        return;
                    }
                }
                mStateXDatabaseSupplier.get().setTransactionSuccessful();
            } catch (Exception e) {
                FLog.w(ReactConstants.TAG, e.getMessage(), e);
                error = AsyncStorageErrorUtil.getError(null, e.getMessage());
            } finally {
                try {
                    mStateXDatabaseSupplier.get().endTransaction();
                } catch (Exception e) {
                    FLog.w(ReactConstants.TAG, e.getMessage(), e);
                    if (error == null) {
                        error = AsyncStorageErrorUtil.getError(null, e.getMessage());
                    }
                }
            }
            if (error != null) {
                callback.invoke(error);
            } else {
                callback.invoke();
                notifyStateChanged(keys);
            }
        }
    }.execute();
}

From source file:com.adjust.nativemodule.AdjustUtil.java

License:Open Source License

/** 
 * toList converts a {@link ReadableArray} into an ArrayList. 
 * //from ww w.j  av  a  2  s. c o  m
 * @param readableArray The ReadableArray to be conveted. 
 * @return An ArrayList containing the data that was in the ReadableArray. 
 */
public static List<Object> toList(@Nullable ReadableArray readableArray) {
    if (readableArray == null) {
        return null;
    }

    List<Object> result = new ArrayList<>(readableArray.size());

    for (int index = 0; index < readableArray.size(); index++) {
        ReadableType readableType = readableArray.getType(index);

        switch (readableType) {
        case Null:
            break;
        case Boolean:
            result.add(readableArray.getBoolean(index));
            break;
        case Number:
            // Can be int or double. 
            double tmp = readableArray.getDouble(index);

            if (tmp == (int) tmp) {
                result.add((int) tmp);
            } else {
                result.add(tmp);
            }

            break;
        case String:
            result.add(readableArray.getString(index));
            break;
        case Map:
            result.add(toMap(readableArray.getMap(index)));
            break;
        case Array:
            result = toList(readableArray.getArray(index));
            break;
        default:
            AdjustFactory.getLogger().error("Could not convert object with index: " + index + ".");
        }
    }

    return result;
}

From source file:com.amazonaws.reactnative.core.AWSRNClientMarshaller.java

License:Open Source License

/**
 * toList converts a {@link ReadableArray} into an ArrayList.
 *
 * @param readableArray The ReadableArray to be conveted.
 * @return An ArrayList containing the data that was in the ReadableArray.
 *///  w w w .j  a v  a2 s .  c om
public static List<Object> readableArrayToList(final @Nullable ReadableArray readableArray) {
    if (readableArray == null) {
        return null;
    }

    List<Object> result = new ArrayList<>(readableArray.size());
    for (int index = 0; index < readableArray.size(); index++) {
        final ReadableType readableType = readableArray.getType(index);
        switch (readableType) {
        case Null:
            result.add(String.valueOf(index));
            break;
        case Boolean:
            result.add(readableArray.getBoolean(index));
            break;
        case Number:
            // Can be int or double.
            double tmp = readableArray.getDouble(index);
            if (tmp == (int) tmp) {
                result.add((int) tmp);
            } else {
                result.add(tmp);
            }
            break;
        case String:
            result.add(readableArray.getString(index));
            break;
        case Map:
            result.add(readableMapToMap(readableArray.getMap(index)));
            break;
        case Array:
            result = readableArrayToList(readableArray.getArray(index));
            break;
        default:
            throw new IllegalArgumentException("Could not convert object with index: " + index + ".");
        }
    }

    return result;
}

From source file:com.boundlessgeo.spatialconnect.jsbridge.RNSpatialConnect.java

License:Apache License

private ArrayList<Object> convertArrayToArrayList(ReadableArray readableArray) {
    ArrayList<Object> jsonArray = new ArrayList<>();
    for (int i = 0; i < readableArray.size(); i++) {
        switch (readableArray.getType(i)) {
        case Null:
            break;
        case Boolean:
            jsonArray.add(readableArray.getBoolean(i));
            break;
        case Number:
            jsonArray.add(readableArray.getDouble(i));
            break;
        case String:
            jsonArray.add(readableArray.getString(i));
            break;
        case Map:
            jsonArray.add(convertMapToHashMap(readableArray.getMap(i)));
            break;
        case Array:
            jsonArray.add(convertArrayToArrayList(readableArray.getArray(i)));
            break;
        }/*from   w w w .  j  a  va  2  s .c  om*/
    }

    return jsonArray;
}

From source file:com.boundlessgeo.spatialconnect.jsbridge.SCBridge.java

License:Apache License

private static JSONArray convertArrayToJson(ReadableArray readableArray) throws JSONException {
    JSONArray array = new JSONArray();
    for (int i = 0; i < readableArray.size(); i++) {
        switch (readableArray.getType(i)) {
        case Null:
            break;
        case Boolean:
            array.put(readableArray.getBoolean(i));
            break;
        case Number:
            array.put(readableArray.getDouble(i));
            break;
        case String:
            array.put(readableArray.getString(i));
            break;
        case Map:
            array.put(convertMapToJson(readableArray.getMap(i)));
            break;
        case Array:
            array.put(convertArrayToJson(readableArray.getArray(i)));
            break;
        }//from w  ww .j a  va 2  s. c o m
    }
    return array;
}

From source file:com.ibatimesheet.RNJSONUtils.java

License:Apache License

public static JSONArray convertArrayToJson(ReadableArray readableArray) throws JSONException {
    JSONArray array = new JSONArray();
    for (int i = 0; i < readableArray.size(); i++) {
        switch (readableArray.getType(i)) {
        case Null:
            break;
        case Boolean:
            array.put(readableArray.getBoolean(i));
            break;
        case Number:
            array.put(readableArray.getDouble(i));
            break;
        case String:
            array.put(readableArray.getString(i));
            break;
        case Map:
            array.put(convertMapToJson(readableArray.getMap(i)));
            break;
        case Array:
            array.put(convertArrayToJson(readableArray.getArray(i)));
            break;
        }/*  w  w w . j av  a 2 s  .c  o  m*/
    }
    return array;
}

From source file:com.microsoft.appcenter.reactnative.analytics.ReactNativeUtils.java

License:Open Source License

public static JSONArray convertReadableArrayToJsonArray(ReadableArray arr) throws JSONException {
    JSONArray jsonArr = new JSONArray();
    for (int i = 0; i < arr.size(); i++) {
        ReadableType type = arr.getType(i);
        switch (type) {
        case Map:
            jsonArr.put(convertReadableMapToJsonObject(arr.getMap(i)));
            break;
        case Array:
            jsonArr.put(convertReadableArrayToJsonArray(arr.getArray(i)));
            break;
        case String:
            jsonArr.put(arr.getString(i));
            break;
        case Number:
            Double number = arr.getDouble(i);
            if ((number == Math.floor(number)) && !Double.isInfinite(number)) {
                jsonArr.put(number.longValue());
            } else {
                jsonArr.put(number.doubleValue());
            }//from   ww w. j a v a  2  s  .  c  o m

            break;
        case Boolean:
            jsonArr.put(arr.getBoolean(i));
            break;
        case Null:
            jsonArr.put(null);
            break;
        }
    }

    return jsonArr;
}

From source file:com.transistorsoft.rnbackgroundgeolocation.RNBackgroundGeolocationModule.java

private static JSONArray arrayToJson(ReadableArray readableArray) throws JSONException {
    JSONArray jsonArray = new JSONArray();
    for (int i = 0; i < readableArray.size(); i++) {
        ReadableType valueType = readableArray.getType(i);
        switch (valueType) {
        case Null:
            jsonArray.put(JSONObject.NULL);
            break;
        case Boolean:
            jsonArray.put(readableArray.getBoolean(i));
            break;
        case Number:
            jsonArray.put(readableArray.getInt(i));
            break;
        case String:
            jsonArray.put(readableArray.getString(i));
            break;
        case Map:
            jsonArray.put(mapToJson(readableArray.getMap(i)));
            break;
        case Array:
            jsonArray.put(arrayToJson(readableArray.getArray(i)));
            break;
        }/* w ww . ja  v a 2 s. c  om*/
    }
    return jsonArray;
}

From source file:it.near.sdk.reactnative.rnnearitsdk.RNNearItUtils.java

License:Mozilla Public License

public static JSONArray toJSONArray(ReadableArray readableArray) throws JSONException {
    JSONArray jsonArray = new JSONArray();

    for (int i = 0; i < readableArray.size(); i++) {
        ReadableType type = readableArray.getType(i);

        switch (type) {
        case Null:
            jsonArray.put(i, null);//from w  ww  .  j  av a2s . c o  m
            break;
        case Boolean:
            jsonArray.put(i, readableArray.getBoolean(i));
            break;
        case Number:
            jsonArray.put(i, readableArray.getDouble(i));
            break;
        case String:
            jsonArray.put(i, readableArray.getString(i));
            break;
        case Map:
            jsonArray.put(i, toJSONObject(readableArray.getMap(i)));
            break;
        case Array:
            jsonArray.put(i, toJSONArray(readableArray.getArray(i)));
            break;
        }
    }

    return jsonArray;
}