类com.facebook.react.bridge.WritableMap源码实例Demo

下面列出了怎么用com.facebook.react.bridge.WritableMap的API类实例代码及写法,或者点击链接到github查看源代码。

public void returnToApp(View view) {
    long seek = videoView.getCurrentPosition();
    Intent intent = getPackageManager().getLaunchIntentForPackage(reactContext.getPackageName());
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);
    videoView.setKeepScreenOn(false);
    stopSelf();
    WritableMap args = new Arguments().createMap();
    args.putInt("index", index);
    args.putInt("seek", (int) seek);
    args.putString("type", "close");
    args.putString("url", playingVideo.getString("url"));

    sendEvent(reactContext, "onClose", args);
    onDestroy();
}
 
/**
 * Sets a block of code to be executed right after the SDK's UI is dismissed.
 * This block is executed on the UI thread. Could be used for performing any
 * UI changes after the SDK's UI is dismissed.
 *
 * @param handler - A callback to get executed after
 *                              dismissing the SDK.
 */
@ReactMethod
public void setOnSDKDismissedHandler(final Callback handler) {
    MainThreadHandler.runOnMainThread(new Runnable() {
        @Override
        public void run() {
            try {
                BugReporting.setOnDismissCallback(new OnSdkDismissCallback() {
                    @Override
                    public void call(DismissType dismissType, ReportType reportType) {
                        WritableMap params = Arguments.createMap();
                        params.putString("dismissType", dismissType.toString());
                        params.putString("reportType", reportType.toString());
                        InstabugUtil.sendEvent(getReactApplicationContext(), Constants.IBG_POST_INVOCATION_HANDLER, params);
                    }
                });
            } catch (java.lang.Exception exception) {
                exception.printStackTrace();
            }
        }
    });
}
 
源代码3 项目: react-native-GPay   文件: ImageLoaderModule.java
@ReactMethod
public void queryCache(final ReadableArray uris, final Promise promise) {
  // perform cache interrogation in async task as disk cache checks are expensive
  new GuardedAsyncTask<Void, Void>(getReactApplicationContext()) {
    @Override
    protected void doInBackgroundGuarded(Void... params) {
      WritableMap result = Arguments.createMap();
      ImagePipeline imagePipeline = Fresco.getImagePipeline();
      for (int i = 0; i < uris.size(); i++) {
        String uriString = uris.getString(i);
        final Uri uri = Uri.parse(uriString);
        if (imagePipeline.isInBitmapMemoryCache(uri)) {
          result.putString(uriString, "memory");
        } else if (imagePipeline.isInDiskCacheSync(uri)) {
          result.putString(uriString, "disk");
        }
      }
      promise.resolve(result);
    }
  }.executeOnExecutor(GuardedAsyncTask.THREAD_POOL_EXECUTOR);
}
 
@Override
public void onReceive(Context context, Intent intent) {
	if (getReactApplicationContext().hasActiveCatalystInstance()) {
		String serviceId = intent.getStringExtra("serviceId");
		String endpointId = intent.getStringExtra("endpointId");
		int payloadType = intent.getIntExtra("payloadType", -1);
		String payloadId = intent.getStringExtra("payloadId");

		WritableMap out = Arguments.createMap();
		out.putString("serviceId", serviceId);
		out.putString("endpointId", endpointId);
		out.putInt("payloadType", payloadType);
		out.putString("payloadId", payloadId);

		if (payloadType == Payload.Type.FILE) {
			long payloadSize = intent.getLongExtra("payloadSize", -1);
			out.putDouble("payloadSize", payloadSize);
		}

		sendEvent(getReactApplicationContext(), "receive_payload", out);
	}
}
 
源代码5 项目: react-native-GPay   文件: WebSocketModule.java
@ReactMethod
public void ping(int id) {
  WebSocket client = mWebSocketConnections.get(id);
  if (client == null) {
    // This is a programmer error -- display development warning
    WritableMap params = Arguments.createMap();
    params.putInt("id", id);
    params.putString("message", "client is null");
    sendEvent("websocketFailed", params);
    params = Arguments.createMap();
    params.putInt("id", id);
    params.putInt("code", 0);
    params.putString("reason", "client is null");
    sendEvent("websocketClosed", params);
    mWebSocketConnections.remove(id);
    mContentHandlers.remove(id);
    return;
  }
  try {
    client.send(ByteString.EMPTY);
  } catch (Exception e) {
    notifyWebSocketFailed(id, e.getMessage());
  }
}
 
@ReactMethod
public void lockToLandscapeLeft() {
    final Activity activity = getCurrentActivity();
    if (activity == null) return;
    activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    isLocked = true;

    // force send an UI orientation event
    lastOrientationValue = "LANDSCAPE-LEFT";
    WritableMap params = Arguments.createMap();
    params.putString("orientation", lastOrientationValue);
    if (ctx.hasActiveCatalystInstance()) {
        ctx
        .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
        .emit("orientationDidChange", params);
    }

    // send a locked event
    WritableMap lockParams = Arguments.createMap();
    lockParams.putString("orientation", lastOrientationValue);
    if (ctx.hasActiveCatalystInstance()) {
        ctx
        .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
        .emit("lockDidChange", lockParams);
    }
}
 
源代码7 项目: opentok-react-native   文件: OTSessionManager.java
@Override
public void onVideoDisabled(SubscriberKit subscriber, String reason) {

    String streamId = Utils.getStreamIdBySubscriber(subscriber);
    if (streamId.length() > 0) {
        ConcurrentHashMap<String, Stream> streams = sharedState.getSubscriberStreams();
        Stream mStream = streams.get(streamId);
        WritableMap subscriberInfo = Arguments.createMap();
        if (mStream != null) {
            subscriberInfo.putMap("stream", EventUtils.prepareJSStreamMap(mStream, subscriber.getSession()));
        }
        subscriberInfo.putString("reason", reason);
        sendEventMap(this.getReactApplicationContext(), subscriberPreface + "onVideoDisabled", subscriberInfo);
    }
    printLogs("onVideoDisabled " + reason);
}
 
@ReactMethod
public void lockToPortraitUpsideDown() {
    final Activity activity = getCurrentActivity();
    if (activity == null) return;
    activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
    isLocked = true;

    // force send an UI orientation event
    lastOrientationValue = "PORTRAIT-UPSIDEDOWN";
    WritableMap params = Arguments.createMap();
    params.putString("orientation", lastOrientationValue);
    if (ctx.hasActiveCatalystInstance()) {
        ctx
        .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
        .emit("orientationDidChange", params);
    }

    // send a locked event
    WritableMap lockParams = Arguments.createMap();
    lockParams.putString("orientation", lastOrientationValue);
    if (ctx.hasActiveCatalystInstance()) {
        ctx
        .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
        .emit("lockDidChange", lockParams);
    }
}
 
源代码9 项目: google-signin   文件: RNGoogleSigninModule.java
private void handleException(RNGoogleSigninModule moduleInstance, Exception cause,
                             WritableMap userProperties, @Nullable WritableMap settings) {
    boolean isRecoverable = cause instanceof UserRecoverableAuthException;
    if (isRecoverable) {
        boolean shouldRecover = settings != null
                && settings.hasKey(SHOULD_RECOVER)
                && settings.getBoolean(SHOULD_RECOVER);
        if (shouldRecover) {
            attemptRecovery(moduleInstance, cause, userProperties);
        } else {
            moduleInstance.promiseWrapper.reject(ERROR_USER_RECOVERABLE_AUTH, cause);
        }
    } else {
        moduleInstance.promiseWrapper.reject(MODULE_NAME, cause);
    }
}
 
源代码10 项目: opentok-react-native   文件: OTSessionManager.java
@Override
public void onStreamVideoDimensionsChanged(Session session, Stream stream, int width, int height) {
    ConcurrentHashMap<String, Stream> mSubscriberStreams = sharedState.getSubscriberStreams();
    Stream mStream = mSubscriberStreams.get(stream.getStreamId());
    WritableMap oldVideoDimensions = Arguments.createMap();
    if ( mStream != null ){
        oldVideoDimensions.putInt("height", mStream.getVideoHeight());
        oldVideoDimensions.putInt("width", mStream.getVideoWidth());
    }
    WritableMap newVideoDimensions = Arguments.createMap();
    newVideoDimensions.putInt("height", height);
    newVideoDimensions.putInt("width", width);
    WritableMap eventData = EventUtils.prepareStreamPropertyChangedEventData("videoDimensions", oldVideoDimensions, newVideoDimensions, stream, session);
    sendEventMap(this.getReactApplicationContext(), session.getSessionId() + ":" + sessionPreface + "onStreamPropertyChanged", eventData);
    printLogs("onStreamVideoDimensionsChanged");

}
 
@Override
public void onReceive(Context context, Intent intent) {
	if (getReactApplicationContext().hasActiveCatalystInstance()) {
		String endpointId = intent.getStringExtra("endpointId");
		String endpointName = intent.getStringExtra("endpointName");
		String serviceId = intent.getStringExtra("serviceId");
		String authenticationToken = intent.getStringExtra("authenticationToken");
		Boolean incomingConnection = intent.getBooleanExtra("incomingConnection", false);

		WritableMap out = Arguments.createMap();
		out.putString("endpointId", endpointId);
		out.putString("endpointName", endpointName);
		out.putString("serviceId", serviceId);
		out.putString("authenticationToken", authenticationToken);
		out.putBoolean("incomingConnection", incomingConnection);

		sendEvent(getReactApplicationContext(), "connection_initiated_to_endpoint", out);
	}
}
 
源代码12 项目: react-native-GPay   文件: ImageLoadEvent.java
@Override
public void dispatch(RCTEventEmitter rctEventEmitter) {
  WritableMap eventData = null;

  if (mImageUri != null || mEventType == ON_LOAD) {
    eventData = Arguments.createMap();

    if (mImageUri != null) {
      eventData.putString("uri", mImageUri);
    }

    if (mEventType == ON_LOAD) {
      WritableMap source = Arguments.createMap();
      source.putDouble("width", mWidth);
      source.putDouble("height", mHeight);
      if (mImageUri != null) {
        source.putString("url", mImageUri);
      }
      eventData.putMap("source", source);
    }
  }

  rctEventEmitter.receiveEvent(getViewTag(), getEventName(), eventData);
}
 
@Test
public void givenCallback$getAllUserAttributes_whenQuery_thenShouldCallNativeApiAndInvokeCallback() {
    // given
    PowerMockito.mockStatic(Instabug.class);
    PowerMockito.mockStatic(Arguments.class);
    Callback callback = mock(Callback.class);
    // when
    HashMap<String, String> userAttributes = new HashMap<>();
    userAttributes.put("email", "[email protected]");
    PowerMockito.when(Arguments.createMap()).thenReturn(new JavaOnlyMap());
    PowerMockito.when(Instabug.getAllUserAttributes()).thenReturn(userAttributes);
    rnModule.getAllUserAttributes(callback);
    // then
    PowerMockito.verifyStatic(VerificationModeFactory.times(1));
    Instabug.getAllUserAttributes();
    WritableMap expectedMap = new JavaOnlyMap();
    expectedMap.putString("email", "[email protected]");
    verify(callback).invoke(expectedMap);
}
 
源代码14 项目: react-native-fcm   文件: FIRMessagingModule.java
private WritableMap parseIntent(Intent intent){
    WritableMap params;
    Bundle extras = intent.getExtras();
    if (extras != null) {
        try {
            params = Arguments.fromBundle(extras);
        } catch (Exception e){
            Log.e(TAG, e.getMessage());
            params = Arguments.createMap();
        }
    } else {
        params = Arguments.createMap();
    }
    WritableMap fcm = Arguments.createMap();
    fcm.putString("action", intent.getAction());
    params.putMap("fcm", fcm);

    params.putInt("opened_from_tray", 1);
    return params;
}
 
源代码15 项目: react-native-fbads   文件: NativeAdView.java
/**
 * Called by the view manager when adsManager prop is set. Sends serialised
 * version of a native ad back to Javascript.
 *
 * @param nativeAd
 */
public void setNativeAd(NativeAd nativeAd) {
  if (mNativeAd != null) {
    mNativeAd.unregisterView();
  }

  mNativeAd = nativeAd;

  if (nativeAd == null) {
    mEventEmitter.receiveEvent(getId(), "onAdLoaded", null);
    return;
  }

  WritableMap event = Arguments.createMap();
  event.putString("headline", nativeAd.getAdHeadline());
  event.putString("socialContext", nativeAd.getAdSocialContext());
  event.putString("bodyText", nativeAd.getAdBodyText());
  event.putString("callToActionText", nativeAd.getAdCallToAction());
  event.putString("sponsoredTranslation", nativeAd.getSponsoredTranslation());
  event.putString("advertiserName", nativeAd.getAdvertiserName());
  event.putString("promotedTranslation", nativeAd.getPromotedTranslation());
  event.putString("translation", nativeAd.getAdTranslation());
  event.putString("linkDescription", nativeAd.getAdLinkDescription());

  mEventEmitter.receiveEvent(getId(), "onAdLoaded", event);
}
 
private WritableMap getAudioDeviceStatusMap() {
    WritableMap data = Arguments.createMap();
    String audioDevicesJson = "[";
    for (AudioDevice s: audioDevices) {
        audioDevicesJson += "\"" + s.name() + "\",";
    }

    // --- strip the last `,`
    if (audioDevicesJson.length() > 1) {
        audioDevicesJson = audioDevicesJson.substring(0, audioDevicesJson.length() - 1);
    }
    audioDevicesJson += "]";

    data.putString("availableAudioDeviceList", audioDevicesJson);
    data.putString("selectedAudioDevice", (selectedAudioDevice == null) ? "" : selectedAudioDevice.name());

    return data;
}
 
public static final WritableMap tokenResponseToMap(TokenResponse response, AuthorizationResponse authResponse) {
    WritableMap map = Arguments.createMap();

    map.putString("accessToken", response.accessToken);
    map.putMap("authorizeAdditionalParameters", MapUtil.createAdditionalParametersMap(authResponse.additionalParameters));
    map.putMap("tokenAdditionalParameters", MapUtil.createAdditionalParametersMap(response.additionalParameters));
    map.putString("idToken", response.idToken);
    map.putString("refreshToken", response.refreshToken);
    map.putString("tokenType", response.tokenType);
    map.putArray("scopes", createScopeArray(authResponse.scope));

    if (response.accessTokenExpirationTime != null) {
        map.putString("accessTokenExpirationDate", DateUtil.formatTimestamp(response.accessTokenExpirationTime));
    }


    return map;
}
 
源代码18 项目: imsdk-android   文件: QimRNBModule.java
/**
 * 获取指定联系人nick
 *
 * @param xmppId
 * @param callback
 */
@ReactMethod
public void getContactsNick(String xmppId, final Callback callback) {
    ConnectionUtil.getInstance().getUserCard(xmppId, new IMLogicManager.NickCallBack() {
        @Override
        public void onNickCallBack(Nick nick) {
            WritableNativeMap item = new WritableNativeMap();
            String name = nick.getName();
            String pinyin = nick.getXmppId();
            if (!TextUtils.isEmpty(name)) {
                pinyin = HanziToPinyin.zh2Abb(name);
            }

            item.putString("Name", TextUtils.isEmpty(name) ? nick.getXmppId() : name);
            item.putString("HeaderUri", TextUtils.isEmpty(nick.getHeaderSrc()) ? "" : nick.getHeaderSrc());
            item.putString("SearchIndex", pinyin);
            item.putString("XmppId", nick.getXmppId());
            item.putString("Remark", nick.getMark());
            item.putString("Mood",nick.getMood());
            WritableMap map = new WritableNativeMap();
            map.putMap("nick", item);
            callback.invoke(map);
        }
    }, true, false);
}
 
public static WritableMap Member(Member member) {
    WritableMap map = Arguments.createMap();

    map.putMap("userInfo", UserInfo(member.getUserInfo()));
    if (member.getLastConsumedMessageIndex() == null) {
        map.putNull("lastConsumedMessageIndex");
    }
    else {
        map.putInt("lastConsumedMessageIndex", member.getLastConsumedMessageIndex().intValue());
    }
    if (member.getLastConsumptionTimestamp() == null) {
        map.putNull("lastConsumptionTimestamp");
    }
    else {
        map.putString("lastConsumptionTimestamp", member.getLastConsumptionTimestamp());
    }

    return map;
}
 
源代码20 项目: react-native-ble-manager   文件: BleManager.java
@ReactMethod
public void getConnectedPeripherals(ReadableArray serviceUUIDs, Callback callback) {
	Log.d(LOG_TAG, "Get connected peripherals");
	WritableArray map = Arguments.createArray();

	if (getBluetoothAdapter() == null) {
		Log.d(LOG_TAG, "No bluetooth support");
		callback.invoke("No bluetooth support");
		return;
	}

	List<BluetoothDevice> periperals = getBluetoothManager().getConnectedDevices(GATT);
	for (BluetoothDevice entry : periperals) {
		Peripheral peripheral = savePeripheral(entry);
		WritableMap jsonBundle = peripheral.asWritableMap();
		map.pushMap(jsonBundle);
	}
	callback.invoke(null, map);
}
 
private WritableMap convertLocationToJSON(Location l) {
    WritableMap params = new WritableNativeMap();
    params.putDouble("latitude", l.getLatitude());
    params.putDouble("longitude", l.getLongitude());
    params.putDouble("accuracy", l.getAccuracy());
    params.putDouble("altitude", l.getAltitude());
    params.putDouble("bearing", l.getBearing());
    params.putString("provider", l.getProvider());
    params.putDouble("speed", l.getSpeed());
    params.putString("timestamp", Long.toString(l.getTime()));
    boolean isMock;
    if (android.os.Build.VERSION.SDK_INT >= 18) {
        isMock = l.isFromMockProvider();
    } else {
        isMock = !Settings.Secure.getString(getReactApplicationContext().getContentResolver(), Settings.Secure.ALLOW_MOCK_LOCATION).equals("0");
    }
    params.putBoolean("mocked", isMock);
    return params;
}
 
@ReactMethod
public void hideNavigationBar(Promise promise) {
    try {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                if (getCurrentActivity() != null) {
                    View decorView = getCurrentActivity().getWindow().getDecorView();
                    decorView.setSystemUiVisibility(UI_FLAG_HIDE_NAV_BAR);
                }
            }
        });
    } catch (IllegalViewOperationException e) {
        WritableMap map = Arguments.createMap();
        map.putBoolean("success", false);
        promise.reject("error", e);
    }
}
 
源代码23 项目: imsdk-android   文件: QtalkPlugin.java
/**
 * 获取指定联系人nick
 *
 * @param xmppId
 * @param callback
 */
@ReactMethod
public void getContactsNick(String xmppId, final Callback callback) {
    ConnectionUtil.getInstance().getUserCard(xmppId, new IMLogicManager.NickCallBack() {
        @Override
        public void onNickCallBack(Nick nick) {
            WritableNativeMap item = new WritableNativeMap();
            String name = nick.getName();
            String pinyin = nick.getXmppId();
            if (!TextUtils.isEmpty(name)) {
                pinyin = HanziToPinyin.zh2Abb(name);
            }

            item.putString("Name", TextUtils.isEmpty(name) ? nick.getXmppId() : name);
            item.putString("HeaderUri", TextUtils.isEmpty(nick.getHeaderSrc()) ? "" : nick.getHeaderSrc());
            item.putString("SearchIndex", pinyin);
            item.putString("XmppId", nick.getXmppId());
            item.putString("Remark", nick.getMark());
            WritableMap map = new WritableNativeMap();
            map.putMap("nick", item);
            callback.invoke(map);
        }
    }, true, false);
}
 
public static final WritableMap tokenResponseToMap(TokenResponse response) {
    WritableMap map = Arguments.createMap();

    map.putString("accessToken", response.accessToken);
    map.putMap("additionalParameters", MapUtil.createAdditionalParametersMap(response.additionalParameters));
    map.putString("idToken", response.idToken);
    map.putString("refreshToken", response.refreshToken);
    map.putString("tokenType", response.tokenType);

    if (response.accessTokenExpirationTime != null) {
        map.putString("accessTokenExpirationDate", DateUtil.formatTimestamp(response.accessTokenExpirationTime));
    }

    return map;
}
 
public static WritableMap TwilioIPMessagingClient(TwilioIPMessagingClient client) {
    WritableMap map = Arguments.createMap();

    map.putMap("userInfo", UserInfo(client.getMyUserInfo()));
    map.putBoolean("isReachabilityEnabled", client.isReachabilityEnabled());

    return map;
}
 
@Override
public void onError(ErrorInfo errorInfo) {
    WritableMap map = Arguments.createMap();
    map.putString("error",errorInfo.getErrorText());
    map.putString("userInfo", errorInfo.toString());

    sendEvent("ipMessagingClient:errorReceived", map);
}
 
源代码27 项目: react-native-flurry-sdk   文件: FlurryModule.java
@ReactMethod
public void getVersionsPromise(Promise promise) {
    try {
        WritableMap map = Arguments.createMap();
        map.putInt("agentVersion", FlurryAgent.getAgentVersion());
        map.putString("releaseVersion", FlurryAgent.getReleaseVersion());
        map.putString("sessionId", FlurryAgent.getSessionId());
        promise.resolve(map);
    } catch (IllegalViewOperationException e) {
        promise.reject("Flurry.getVersionsPromise", e);
    }
}
 
源代码28 项目: react-native-lock   文件: InitOptionsTest.java
@Test
public void testAll() throws Exception {
    WritableMap options = new SimpleMap();
    options.putString("clientId", "client-id-value");
    options.putString("domain", "domain-value");
    options.putString("configurationDomain", "configuration-domain-value");
    options.putBoolean("useBrowser", true);

    InitOptions initOptions = new InitOptions(options);
    assertThat(initOptions.getClientId(), is(equalTo("client-id-value")));
    assertThat(initOptions.getConfigurationDomain(), is(equalTo("configuration-domain-value")));
    assertThat(initOptions.getDomain(), is(equalTo("domain-value")));
    assertThat(initOptions.useBrowser(), is(true));
}
 
@Override
public void onAppEvent(String name, String info) {
    WritableMap event = Arguments.createMap();
    event.putString("name", name);
    event.putString("info", info);
    sendEvent(RNPublisherBannerViewManager.EVENT_APP_EVENT, event);
}
 
源代码30 项目: react-native-fitness   文件: Manager.java
private void processStep(DataSet dataSet, WritableArray map) {

        WritableMap stepMap = Arguments.createMap();

        for (DataPoint dp : dataSet.getDataPoints()) {
            for(Field field : dp.getDataType().getFields()) {
                stepMap.putString("startDate", dateFormat.format(dp.getStartTime(TimeUnit.MILLISECONDS)));
                stepMap.putString("endDate", dateFormat.format(dp.getEndTime(TimeUnit.MILLISECONDS)));
                stepMap.putDouble("quantity", dp.getValue(field).asInt());
                map.pushMap(stepMap);
            }
        }
    }
 
 同包方法