下面列出了com.facebook.react.bridge.ReadableArray#getString ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void receiveCommand(final ReactAztecText parent, int commandType, @Nullable ReadableArray args) {
Assertions.assertNotNull(parent);
if (commandType == COMMAND_NOTIFY_APPLY_FORMAT) {
final String format = args.getString(0);
Log.d(TAG, String.format("Apply format: %s", format));
parent.applyFormat(format);
return;
} else if (commandType == mFocusTextInputCommandCode) {
parent.requestFocusFromJS();
return;
} else if (commandType == mBlurTextInputCommandCode) {
parent.clearFocusFromJS();
return;
}
super.receiveCommand(parent, commandType, args);
}
public static Object[] toArray(ReadableArray readableArray) {
Object[] array = new Object[readableArray.size()];
for (int i = 0; i < readableArray.size(); i++) {
ReadableType type = readableArray.getType(i);
switch (type) {
case Null:
array[i] = null;
break;
case Boolean:
array[i] = readableArray.getBoolean(i);
break;
case Number:
array[i] = readableArray.getDouble(i);
break;
case String:
array[i] = readableArray.getString(i);
break;
case Map:
array[i] = MapUtil.toMap(readableArray.getMap(i));
break;
case Array:
array[i] = ArrayUtil.toArray(readableArray.getArray(i));
break;
}
}
return array;
}
/**
* Returns the value at {@code index} if it exists, coercing it if
* necessary.
*/
static String getString(ReadableArray array, int index, String defaultValue) {
if (array == null){
return defaultValue;
}
try {
ReadableType type = array.getType(index);
switch (type) {
case Number:
double value = array.getDouble(index);
if (value == (long) value) {
return String.valueOf((long) value);
} else {
return String.valueOf(value);
}
case Boolean:
return String.valueOf(array.getBoolean(index));
case String:
return array.getString(index);
case Null:
return null;
default:
return defaultValue;
}
} catch(NoSuchKeyException ex){
return defaultValue;
}
}
@NonNull
static Scope[] createScopesArray(ReadableArray scopes) {
int size = scopes.size();
Scope[] _scopes = new Scope[size];
for (int i = 0; i < size; i++) {
String scopeName = scopes.getString(i);
_scopes[i] = new Scope(scopeName);
}
return _scopes;
}
/**
* Extracts the headers from the Array. If the format is invalid, this method will return null.
*/
private @Nullable Headers extractHeaders(
@Nullable ReadableArray headersArray,
@Nullable ReadableMap requestData) {
if (headersArray == null) {
return null;
}
Headers.Builder headersBuilder = new Headers.Builder();
for (int headersIdx = 0, size = headersArray.size(); headersIdx < size; headersIdx++) {
ReadableArray header = headersArray.getArray(headersIdx);
if (header == null || header.size() != 2) {
return null;
}
String headerName = header.getString(0);
String headerValue = header.getString(1);
if (headerName == null || headerValue == null) {
return null;
}
headersBuilder.add(headerName, headerValue);
}
if (headersBuilder.get(USER_AGENT_HEADER_NAME) == null && mDefaultUserAgent != null) {
headersBuilder.add(USER_AGENT_HEADER_NAME, mDefaultUserAgent);
}
// Sanitize content encoding header, supported only when request specify payload as string
boolean isGzipSupported = requestData != null && requestData.hasKey(REQUEST_BODY_KEY_STRING);
if (!isGzipSupported) {
headersBuilder.removeAll(CONTENT_ENCODING_HEADER_NAME);
}
return headersBuilder.build();
}
static Object get(ReadableArray array,int index,Object defaultValue){
if (array == null){
return defaultValue;
}
try {
Object value = null;
ReadableType type = array.getType(index);
switch(type){
case Boolean:
value = array.getBoolean(index);
break;
case Number:
value = array.getDouble(index);
break;
case String:
value = array.getString(index);
break;
case Map:
value = array.getMap(index);
break;
case Array:
value = array.getArray(index);
break;
case Null:
break;
}
return value;
} catch (NoSuchKeyException ex){
return defaultValue;
}
}
/**
* Returns the value at {@code index} if it exists, coercing it if
* necessary.
*/
static String getString(ReadableArray array, int index, String defaultValue) {
if (array == null){
return defaultValue;
}
try {
ReadableType type = array.getType(index);
switch (type) {
case Number:
double value = array.getDouble(index);
if (value == (long) value) {
return String.valueOf((long) value);
} else {
return String.valueOf(value);
}
case Boolean:
return String.valueOf(array.getBoolean(index));
case String:
return array.getString(index);
case Null:
return null;
default:
return defaultValue;
}
} catch(NoSuchKeyException ex){
return defaultValue;
}
}
public void clearDeliveredNotifications(ReadableArray identifiers) {
NotificationManager notificationManager = notificationManager();
for (int index = 0; index < identifiers.size(); index++) {
String id = identifiers.getString(index);
Log.i(LOG_TAG, "Removing notification with id " + id);
notificationManager.cancel(Integer.parseInt(id));
}
}
public static Object[] toArray(ReadableArray readableArray) {
Object[] array = new Object[readableArray.size()];
for (int i = 0; i < readableArray.size(); i++) {
ReadableType type = readableArray.getType(i);
switch (type) {
case Null:
array[i] = null;
break;
case Boolean:
array[i] = readableArray.getBoolean(i);
break;
case Number:
array[i] = readableArray.getDouble(i);
break;
case String:
array[i] = readableArray.getString(i);
break;
case Map:
array[i] = MapUtil.toMap(readableArray.getMap(i));
break;
case Array:
array[i] = ArrayUtil.toArray(readableArray.getArray(i));
break;
}
}
return array;
}
static Object get(ReadableArray array,int index,Object defaultValue){
if (array == null){
return defaultValue;
}
try {
Object value = null;
ReadableType type = array.getType(index);
switch(type){
case Boolean:
value = array.getBoolean(index);
break;
case Number:
value = array.getDouble(index);
break;
case String:
value = array.getString(index);
break;
case Map:
value = array.getMap(index);
break;
case Array:
value = array.getArray(index);
break;
case Null:
break;
}
return value;
} catch (NoSuchKeyException ex){
return defaultValue;
}
}
@ReactMethod
public void showActionSheetWithOptions(ReadableMap params, Callback callback) {
final Activity currentActivity = getCurrentActivity();
if (currentActivity == null || !(currentActivity instanceof ReactFragmentActivity)) {
this.callback.invoke(RESULT_ERROR);
return;
}
this.activity = (ReactFragmentActivity) currentActivity;
this.callback = callback;
int cancelButtonIndex = params.getInt("cancelButtonIndex");
ReadableArray options = params.getArray("options");
List<String> list = new ArrayList<>(options.size());
String cancelButtonName = options.getString(cancelButtonIndex);
for (int i = 0; i < options.size(); ++i) {
String value = options.getString(i);
if (!value.equals(cancelButtonName)) {
list.add(value);
}
}
String[] args = new String[list.size()];
ActionSheet.createBuilder(context, activity.getSupportFragmentManager())
.setCancelButtonTitle(cancelButtonName)
.setOtherButtonTitles(list.toArray(args))
.setCancelableOnTouchOutside(false)
.setListener(this).show();
}
@ReactProp(name = "tabNames")
public void setTabNames(TabbedViewPager viewPager, ReadableArray readableArray) {
String[] names = new String[readableArray.size()];
for (int i = 0; i < readableArray.size(); i++) {
names[i] = readableArray.getString(i);
}
viewPager.setTabNames(names);
}
public static ArrayList convertReadableArrayToArray(ReadableArray reactArray) {
ArrayList<Object> array = new ArrayList<>();
for (int i=0, size = reactArray.size(); i<size; ++i) {
Object object = null;
switch (reactArray.getType(i)) {
case Array:
object = convertReadableArrayToArray(reactArray.getArray(i));
break;
case Boolean:
object = reactArray.getBoolean(i);
break;
case Map:
object = convertReadableMapToMap(reactArray.getMap(i));
break;
case Null:
object = null;
break;
case Number:
try {
object = reactArray.getDouble(i);
} catch (java.lang.ClassCastException e) {
object = reactArray.getInt(i);
}
break;
case String:
object = reactArray.getString(i);
break;
default:
Log.e(TAG, "Unknown type: " + reactArray.getType(i) + " for index: " + i);
}
array.add(object);
}
return array;
}
public static String[] convertToStringArray(ReadableArray readableArray) {
String[] array = new String[readableArray.size()];
for (int i = 0; i < readableArray.size(); i++) {
if (!ReadableType.String.equals(readableArray.getType(i))) {
throw new IllegalArgumentException("Expecting array of strings");
}
array[i] = readableArray.getString(i);
}
return array;
}
@Override
public void draw(Canvas canvas, Paint paint, float opacity) {
if (mFrame == null) {
return;
}
opacity *= mOpacity;
if (opacity <= MIN_OPACITY_FOR_DRAW) {
return;
}
if (!mFrame.hasKey(PROP_LINES)) {
return;
}
ReadableArray linesProp = mFrame.getArray(PROP_LINES);
if (linesProp == null || linesProp.size() == 0) {
return;
}
// only set up the canvas if we have something to draw
saveAndSetupCanvas(canvas);
String[] lines = new String[linesProp.size()];
for (int i = 0; i < lines.length; i++) {
lines[i] = linesProp.getString(i);
}
String text = TextUtils.join("\n", lines);
if (setupStrokePaint(paint, opacity)) {
applyTextPropertiesToPaint(paint);
if (mPath == null) {
canvas.drawText(text, 0, -paint.ascent(), paint);
} else {
canvas.drawTextOnPath(text, mPath, 0, 0, paint);
}
}
if (setupFillPaint(paint, opacity)) {
applyTextPropertiesToPaint(paint);
if (mPath == null) {
canvas.drawText(text, 0, -paint.ascent(), paint);
} else {
canvas.drawTextOnPath(text, mPath, 0, 0, paint);
}
}
if (mShadowOpacity > 0) {
paint.setShadowLayer(mShadowRadius, mShadowOffsetX, mShadowOffsetY, mShadowColor);
}
restoreCanvas(canvas);
markUpdateSeen();
}
public WritableArray query(final String sql, final ReadableArray values) {
WritableArray data = Arguments.createArray();
// FLog.w(ReactConstants.TAG, "values.size()=%s", Integer.toString(values.size()));
String[] args = new String[values.size()];
// FLog.w(ReactConstants.TAG, "sqlitemanager.query.args.length=%d", args.length);
for ( int i=0; i < values.size(); i++) {
if (values.getType(i) == ReadableType.Number) {
args[i] = Integer.toString(values.getInt(i));
} else {
args[i] = values.getString(i);
}
}
Cursor cursor = db.rawQuery(sql, args);
try {
if (cursor.moveToFirst()) {
do {
WritableMap item = Arguments.createMap();
for (int i=0; i < cursor.getColumnCount(); i++) {
switch( cursor.getType(i) ) {
case Cursor.FIELD_TYPE_INTEGER:
item.putInt(cursor.getColumnName(i), cursor.getInt(i));
break;
default:
item.putString(cursor.getColumnName(i), cursor.getString(i));
break;
}
}
data.pushMap(item);
} while (cursor.moveToNext());
}
} catch (Exception e) {
throw e;
} finally {
cursor.close();
}
return data;
}
@ReactProp(name = "customLayoutItems")
public void setCustomItems(ChatInputView chatInputView, ReadableMap map) {
ReadableArray left = map.hasKey("left") ? map.getArray("left") : null;
ReadableArray right = map.hasKey("right") ? map.getArray("right") : null;
ReadableArray bottom = map.hasKey("bottom") ? map.getArray("bottom") : null;
String[] bottomTags = new String[0];
if (bottom != null && bottom.size()>1) {
bottomTags = new String[bottom.size()];
for (int i = 0; i < bottom.size(); i++) {
bottomTags[i] = bottom.getString(i);
}
mInitialChatInputHeight = 100;
}else {
mInitialChatInputHeight = 56;
}
String[] leftTags = new String[0];
if (left != null) {
leftTags = new String[left.size()];
for (int i = 0; i < left.size(); i++) {
leftTags[i] = left.getString(i);
}
}
String[] rightTags = new String[0];
if (right != null) {
rightTags = new String[right.size()];
for (int i = 0; i < right.size(); i++) {
rightTags[i] = right.getString(i);
}
}
mChatInput.getMenuManager()
.setMenu(Menu.newBuilder()
.customize(true)
.setLeft(leftTags)
.setRight(rightTags)
.setBottom(bottomTags)
.build());
}
public ShowOptions(@Nullable ReadableMap options) {
if (options == null) {
return;
}
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);
}
}
@ReactMethod
public void promptWithArgs(ReadableMap options, final Callback callback) {
final FragmentManagerHelper fragmentManagerHelper = getFragmentManagerHelper();
if (fragmentManagerHelper == null) {
FLog.w(RNPromptModule.class, "Tried to show an alert while not attached to an Activity");
return;
}
final Bundle args = new Bundle();
if (options.hasKey(KEY_TITLE)) {
args.putString(RNPromptFragment.ARG_TITLE, options.getString(KEY_TITLE));
}
if (options.hasKey(KEY_MESSAGE)) {
String message = options.getString(KEY_MESSAGE);
if (!message.isEmpty()) {
args.putString(RNPromptFragment.ARG_MESSAGE, options.getString(KEY_MESSAGE));
}
}
if (options.hasKey(KEY_BUTTON_POSITIVE)) {
args.putString(RNPromptFragment.ARG_BUTTON_POSITIVE, options.getString(KEY_BUTTON_POSITIVE));
}
if (options.hasKey(KEY_BUTTON_NEGATIVE)) {
args.putString(RNPromptFragment.ARG_BUTTON_NEGATIVE, options.getString(KEY_BUTTON_NEGATIVE));
}
if (options.hasKey(KEY_BUTTON_NEUTRAL)) {
args.putString(RNPromptFragment.ARG_BUTTON_NEUTRAL, options.getString(KEY_BUTTON_NEUTRAL));
}
if (options.hasKey(KEY_ITEMS)) {
ReadableArray items = options.getArray(KEY_ITEMS);
CharSequence[] itemsArray = new CharSequence[items.size()];
for (int i = 0; i < items.size(); i++) {
itemsArray[i] = items.getString(i);
}
args.putCharSequenceArray(RNPromptFragment.ARG_ITEMS, itemsArray);
}
if (options.hasKey(KEY_CANCELABLE)) {
args.putBoolean(KEY_CANCELABLE, options.getBoolean(KEY_CANCELABLE));
}
if (options.hasKey(KEY_TYPE)) {
args.putString(KEY_TYPE, options.getString(KEY_TYPE));
}
if (options.hasKey(KEY_STYLE)) {
args.putString(KEY_STYLE, options.getString(KEY_STYLE));
}
if (options.hasKey(KEY_DEFAULT_VALUE)) {
args.putString(KEY_DEFAULT_VALUE, options.getString(KEY_DEFAULT_VALUE));
}
if (options.hasKey(KEY_PLACEHOLDER)) {
args.putString(KEY_PLACEHOLDER, options.getString(KEY_PLACEHOLDER));
}
fragmentManagerHelper.showNewAlert(mIsInForeground, args, callback);
}
@Override
public void receiveCommand(CustomTwilioVideoView view, int commandId, @Nullable ReadableArray args) {
switch (commandId) {
case CONNECT_TO_ROOM:
String roomName = args.getString(0);
String accessToken = args.getString(1);
boolean enableAudio = args.getBoolean(2);
boolean enableVideo = args.getBoolean(3);
boolean enableRemoteAudio = args.getBoolean(4);
view.connectToRoomWrapper(roomName, accessToken, enableAudio, enableVideo, enableRemoteAudio);
break;
case DISCONNECT:
view.disconnect();
break;
case SWITCH_CAMERA:
view.switchCamera();
break;
case TOGGLE_VIDEO:
Boolean videoEnabled = args.getBoolean(0);
view.toggleVideo(videoEnabled);
break;
case TOGGLE_SOUND:
Boolean audioEnabled = args.getBoolean(0);
view.toggleAudio(audioEnabled);
break;
case GET_STATS:
view.getStats();
break;
case DISABLE_OPENSL_ES:
view.disableOpenSLES();
break;
case TOGGLE_SOUND_SETUP:
Boolean speaker = args.getBoolean(0);
view.toggleSoundSetup(speaker);
break;
case TOGGLE_REMOTE_SOUND:
Boolean remoteAudioEnabled = args.getBoolean(0);
view.toggleRemoteAudio(remoteAudioEnabled);
break;
case RELEASE_RESOURCE:
view.releaseResource();
break;
case TOGGLE_BLUETOOTH_HEADSET:
Boolean headsetEnabled = args.getBoolean(0);
view.toggleBluetoothHeadset(headsetEnabled);
break;
case SEND_STRING:
view.sendString(args.getString(0));
break;
}
}