List of usage examples for com.facebook.react.bridge ReadableArray size
int size();
From source file:co.rewen.statex.StateX.java
License:Open Source License
public static ArrayList<String> toStringArray(ReadableArray array) { ArrayList<String> strings = new ArrayList<>(); for (int i = 0; i < array.size(); i++) { strings.add(array.getString(i)); }//from w w w. j a v a 2 s . c om return strings; }
From source file:co.rewen.statex.StateXModule.java
License:Open Source License
/** * Given an array of keys, this returns a map of (key, value) pairs for the keys found, and * (key, null) for the keys that haven't been found. *//*from w w w . ja v a2 s . c om*/ @ReactMethod public void multiGet(final ReadableArray keys, final Callback callback) { if (keys == null) { callback.invoke(AsyncStorageErrorUtil.getInvalidKeyError(null), null); return; } new GuardedAsyncTask<Void, Void>(getReactApplicationContext()) { @Override protected void doInBackgroundGuarded(Void... params) { if (!ensureDatabase()) { callback.invoke(AsyncStorageErrorUtil.getDBError(null), null); return; } String[] columns = { KEY_COLUMN, VALUE_COLUMN }; HashSet<String> keysRemaining = SetBuilder.newHashSet(); WritableArray data = Arguments.createArray(); for (int keyStart = 0; keyStart < keys.size(); keyStart += MAX_SQL_KEYS) { int keyCount = Math.min(keys.size() - keyStart, MAX_SQL_KEYS); Cursor cursor = mStateXDatabaseSupplier.get().query(TABLE_STATE, columns, AsyncLocalStorageUtil.buildKeySelection(keyCount), AsyncLocalStorageUtil.buildKeySelectionArgs(keys, keyStart, keyCount), null, null, null); keysRemaining.clear(); try { if (cursor.getCount() != keys.size()) { // some keys have not been found - insert them with null into the final array for (int keyIndex = keyStart; keyIndex < keyStart + keyCount; keyIndex++) { keysRemaining.add(keys.getString(keyIndex)); } } if (cursor.moveToFirst()) { do { WritableArray row = Arguments.createArray(); row.pushString(cursor.getString(0)); row.pushString(cursor.getString(1)); data.pushArray(row); keysRemaining.remove(cursor.getString(0)); } while (cursor.moveToNext()); } } catch (Exception e) { FLog.w(ReactConstants.TAG, e.getMessage(), e); callback.invoke(AsyncStorageErrorUtil.getError(null, e.getMessage()), null); return; } finally { cursor.close(); } for (String key : keysRemaining) { WritableArray row = Arguments.createArray(); row.pushString(key); row.pushNull(); data.pushArray(row); } keysRemaining.clear(); } callback.invoke(null, data); } }.execute(); }
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. *///w ww . j a v a 2s . c o m @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
/** * Removes all rows of the keys given.//w ww . j a v a 2 s .c o m */ @ReactMethod public void multiRemove(final ReadableArray keys, final Callback callback) { if (keys.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; } WritableMap error = null; try { mStateXDatabaseSupplier.get().beginTransaction(); for (int keyStart = 0; keyStart < keys.size(); keyStart += MAX_SQL_KEYS) { int keyCount = Math.min(keys.size() - keyStart, MAX_SQL_KEYS); mStateXDatabaseSupplier.get().delete(TABLE_STATE, AsyncLocalStorageUtil.buildKeySelection(keyCount), AsyncLocalStorageUtil.buildKeySelectionArgs(keys, keyStart, keyCount)); } 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(StateX.toStringArray(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 w w w.j av a 2 s .c om*/ */ @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 w ww .j a v a 2 s .c om*/ * @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. *//*ww w . ja va 2s. co m*/ 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.auth0.lock.react.bridge.ShowOptions.java
License:Open Source License
public ShowOptions(@Nullable ReadableMap options) { if (options == null) { return;/*w w w . j a v a 2 s.co m*/ } if (options.hasKey(CLOSABLE_KEY)) { closable = options.getBoolean(CLOSABLE_KEY); Log.d(TAG, CLOSABLE_KEY + closable); } if (options.hasKey(DISABLE_SIGNUP)) { disableSignUp = options.getBoolean(DISABLE_SIGNUP); Log.d(TAG, DISABLE_SIGNUP + disableSignUp); } if (options.hasKey(DISABLE_RESET_PASSWORD)) { disableResetPassword = options.getBoolean(DISABLE_RESET_PASSWORD); Log.d(TAG, DISABLE_RESET_PASSWORD + disableResetPassword); } if (options.hasKey(USE_MAGIC_LINK_KEY)) { useMagicLink = options.getBoolean(USE_MAGIC_LINK_KEY); Log.d(TAG, USE_MAGIC_LINK_KEY + useMagicLink); } if (options.hasKey(AUTH_PARAMS_KEY)) { ReadableMap reactMap = options.getMap(AUTH_PARAMS_KEY); authParams = OptionsHelper.convertReadableMapToMap(reactMap); Log.d(TAG, AUTH_PARAMS_KEY + authParams); } if (options.hasKey(CONNECTIONS_KEY)) { ReadableArray connections = options.getArray(CONNECTIONS_KEY); List<String> list = new ArrayList<>(connections.size()); for (int i = 0; i < connections.size(); i++) { String connectionName = connections.getString(i); switch (connectionName) { case LockReactModule.CONNECTION_EMAIL: connectionType = LockReactModule.CONNECTION_EMAIL; break; case LockReactModule.CONNECTION_SMS: connectionType = LockReactModule.CONNECTION_SMS; break; } list.add(connectionName); } this.connections = new String[list.size()]; this.connections = list.toArray(this.connections); Log.d(TAG, CONNECTIONS_KEY + list); } }
From source file:com.boundlessgeo.spatialconnect.jsbridge.RNSpatialConnect.java
License:Apache License
@ReactMethod public void addRasterLayers(final ReadableArray storeIdArray) { UIManagerModule uiManager = this.reactContext.getNativeModule(UIManagerModule.class); uiManager.addUIBlock(new UIBlock() { public void execute(NativeViewHierarchyManager nvhm) { List<String> storeIds = new ArrayList<>(storeIdArray.size()); for (int index = 0; index < storeIdArray.size(); index++) { storeIds.add(storeIdArray.getString(index)); }//from w ww . j av a2 s . com List<SCDataStore> stores = SpatialConnect.getInstance().getDataService().getActiveStores(); for (SCDataStore store : stores) { List<TileOverlay> tiles = tileoverlays.get(store.getStoreId()); if (storeIds.contains(store.getStoreId())) { if (tiles == null) { if (store instanceof GeoPackageStore && ((GeoPackageStore) store).getTileSources().size() > 0) { SCRasterStore rs = new GpkgRasterSource((GeoPackageStore) store); List<TileOverlay> newTiles = new ArrayList<TileOverlay>(); for (String tableName : rs.rasterLayers()) { TileOverlay t = rs.overlayFromLayer(tableName, mGoogleMap); newTiles.add(t); } tileoverlays.put(store.getStoreId(), newTiles); } } } else { if (tiles != null) { for (TileOverlay tile : tiles) { tile.remove(); } tileoverlays.remove(store.getStoreId()); } } } } }); }
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 2s.co m*/ } return jsonArray; }