/** * 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++) { 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); } return result; }
@ReactMethod public void showBottomSheetWithOptions(ReadableMap options, final Callback onSelect) { ReadableArray optionArray = options.getArray("options"); final Integer cancelButtonIndex = options.getInt("cancelButtonIndex"); final BottomSheet.Builder builder = new BottomSheet.Builder(this.getCurrentActivity()); // create options Integer size = optionArray.size(); for (int i = 0; i < size; i++) { builder.sheet(i, optionArray.getString(i)); } builder.listener(new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (which == cancelButtonIndex) { dialog.dismiss(); } else { onSelect.invoke(which); } } }); UiThreadUtil.runOnUiThread(new Runnable() { @Override public void run() { builder.build().show(); } }); }
break; case "positiveColor": builder.positiveColor(options.getInt("positiveColor")); break; case "negativeText": break; case "negativeColor": builder.negativeColor(options.getInt("negativeColor")); break; case "neutralText": break; case "neutralColor": builder.neutralColor(options.getInt("neutralColor")); break; case "titleColor": builder.titleColor(options.getInt("titleColor")); break; case "widgetColor": builder.widgetColor(options.getInt("widgetColor")); break; case "linkColor": builder.linkColor(options.getInt("linkColor")); break; case "contentColor": builder.contentColor(options.getInt("contentColor")); break; case "items":
int selectedIndex = options.hasKey("selectedIndex") ? options.getInt("selectedIndex") : -1; mBuilder.itemsCallbackSingleChoice(selectedIndex, new MaterialDialog.ListCallbackSingleChoice() { @Override int minLength = input.hasKey("minLength") ? input.getInt("minLength") : 0; int maxLength = input.hasKey("maxLength") ? input.getInt("maxLength") : -1; numberOfItems = options.getInt("maxNumberOfItems"); }else{ numberOfItems = -1;