@ReactMethod
public void getAvailableLocales(Promise promise) {
if(notReady(promise)) return;
try {
WritableArray localeList = Arguments.createArray();
Locale[] localesArray = Locale.getAvailableLocales();
for(Locale locale: localesArray) {
int isAvailable = tts.isLanguageAvailable(locale);
if(isAvailable == TextToSpeech.LANG_COUNTRY_AVAILABLE) {
WritableMap newLocale = returnMapForLocale(locale);
localeList.pushMap(newLocale);
}
}
promise.resolve(localeList);
} catch(Exception e) {
promise.reject("error", "Unable to retrieve locales for getAvailableLocales()", e);
}
}
java类com.facebook.react.bridge.ReactMethod的实例源码
RNAndroidTextToSpeechModule.java 文件源码
项目:react-native-android-text-to-speech
阅读 32
收藏 0
点赞 0
评论 0
WebRTCModule.java 文件源码
项目:react-native-webrtc
阅读 40
收藏 0
点赞 0
评论 0
@ReactMethod
public void mediaStreamTrackStop(final String id) {
// Is this functionality equivalent to `mediaStreamTrackRelease()` ?
// if so, we should merge this two and remove track from stream as well.
MediaStreamTrack track = mMediaStreamTracks.get(id);
if (track == null) {
Log.d(TAG, "mediaStreamTrackStop() track is null");
return;
}
track.setEnabled(false);
if (track.kind().equals("video")) {
removeVideoCapturer(id);
}
mMediaStreamTracks.remove(id);
// What exactly does `detached` mean in doc?
// see: https://www.w3.org/TR/mediacapture-streams/#track-detached
}
WebRTCModule.java 文件源码
项目:react-native-webrtc
阅读 36
收藏 0
点赞 0
评论 0
@ReactMethod
public void mediaStreamTrackRelease(final String streamId, final String _trackId) {
MediaStream stream = mMediaStreams.get(streamId);
if (stream == null) {
Log.d(TAG, "mediaStreamTrackRelease() stream is null");
return;
}
MediaStreamTrack track = mMediaStreamTracks.get(_trackId);
if (track == null) {
Log.d(TAG, "mediaStreamTrackRelease() track is null");
return;
}
track.setEnabled(false); // should we do this?
mMediaStreamTracks.remove(_trackId);
if (track.kind().equals("audio")) {
stream.removeTrack((AudioTrack)track);
} else if (track.kind().equals("video")) {
stream.removeTrack((VideoTrack)track);
removeVideoCapturer(_trackId);
}
imagePorcessingHandler.removeCallbacksAndMessages(null);
imageProcessingThread.quit();
}
RNDatecsPrinterModule.java 文件源码
项目:react-native-datecs-printer
阅读 37
收藏 0
点赞 0
评论 0
/**
* Get list of paired devices
*
* @param promise
*/
@ReactMethod
public void getPairedDevices(Promise promise){
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
// it might need to be an react.bridge.WritableArray
ArrayList list = new ArrayList();
for(BluetoothDevice device : pairedDevices){
list.add(device);
}
if(list.size() > 0){
promise.resolve(list);
}else{
promise.reject("Nenhum dispositivo pareado.");
}
}
TestNative.java 文件源码
项目:react-native-ethereum
阅读 30
收藏 0
点赞 0
评论 0
@ReactMethod
public void test(String message, Callback cb) {
try {
android.util.Log.d("before", "yay");
NodeHolder nh = NodeHolder.getInstance();
Node node = nh.getNode();
Context ctx = new Context();
if (node != null) {
NodeInfo info = node.getNodeInfo();
EthereumClient ethereumClient = node.getEthereumClient();
Account newAcc = nh.getAcc();
BigInt balanceAt = ethereumClient.getBalanceAt(ctx, new Address("0x22B84d5FFeA8b801C0422AFe752377A64Aa738c2"), -1);
cb.invoke(balanceAt.toString() + " ether found address:" + newAcc.getAddress().getHex());
return;
}
cb.invoke("node was null");
} catch (Exception e) {
android.util.Log.d("", e.getMessage());
e.printStackTrace();
}
}
SyncAdapterModule.java 文件源码
项目:react-native-sync-adapter
阅读 28
收藏 0
点赞 0
评论 0
@ReactMethod
public void syncImmediately(int syncInterval, int syncFlexTime) {
boolean allowForeground = Boolean.valueOf(getReactApplicationContext().getString(R.string.rnsb_allow_foreground));
if (!allowForeground && HeadlessService.isAppOnForeground(getReactApplicationContext())) {
if (getCurrentActivity() != null) {
Toast.makeText(
getCurrentActivity(),
"This sync task has not been configured to run on the foreground!",
Toast.LENGTH_SHORT)
.show();
}
return;
}
SyncAdapter.syncImmediately(getReactApplicationContext(), syncInterval, syncFlexTime);
}
LocationModule.java 文件源码
项目:RNLearn_Project1
阅读 24
收藏 0
点赞 0
评论 0
/**
* Get the current position. This can return almost immediately if the location is cached or
* request an update, which might take a while.
*
* @param options map containing optional arguments: timeout (millis), maximumAge (millis) and
* highAccuracy (boolean)
*/
@ReactMethod
public void getCurrentPosition(
ReadableMap options,
final Callback success,
Callback error) {
LocationOptions locationOptions = LocationOptions.fromReactMap(options);
try {
LocationManager locationManager =
(LocationManager) getReactApplicationContext().getSystemService(Context.LOCATION_SERVICE);
String provider = getValidProvider(locationManager, locationOptions.highAccuracy);
if (provider == null) {
error.invoke(PositionError.buildError(
PositionError.PERMISSION_DENIED,
"No location provider available."));
return;
}
Location location = locationManager.getLastKnownLocation(provider);
if (location != null &&
SystemClock.currentTimeMillis() - location.getTime() < locationOptions.maximumAge) {
success.invoke(locationToMap(location));
return;
}
new SingleUpdateRequest(locationManager, provider, locationOptions.timeout, success, error)
.invoke();
} catch (SecurityException e) {
throwLocationPermissionMissing(e);
}
}
RNApptentiveModule.java 文件源码
项目:react-native-apptentive-module
阅读 40
收藏 0
点赞 0
评论 0
@ReactMethod
public void register(final String appKey, final String signature, final Promise promise)
{
if (_initialised)
{
promise.reject(APPTENTIVE, "Apptentive is already initialised");
return;
}
if (appKey == null || appKey.isEmpty())
{
promise.reject(APPTENTIVE, "Your appKey is empty");
return;
}
if (signature == null || signature.isEmpty())
{
promise.reject(APPTENTIVE, "Your signature is empty");
return;
}
Handler handler = new Handler(_application.getMainLooper());
Runnable runnable = new Runnable()
{
@Override
public void run()
{
Apptentive.register(_application, appKey, signature);
promise.resolve(true);
_initialised = true;
}
};
handler.post(runnable);
}
RCTTwilioChatPaginator.java 文件源码
项目:react-native-twilio-chat
阅读 32
收藏 0
点赞 0
评论 0
@ReactMethod
public void requestNextPageChannelDescriptors(String sid, final Promise promise) {
final RCTTwilioChatPaginator tmp = RCTTwilioChatPaginator.getInstance();
Paginator<ChannelDescriptor> _paginator = (Paginator<ChannelDescriptor>)tmp.paginators.get(sid);
_paginator.requestNextPage(new CallbackListener<Paginator<ChannelDescriptor>>() {
@Override
public void onError(ErrorInfo errorInfo) {
super.onError(errorInfo);
promise.reject("request-next-page", "Error occurred while attempting to request the next page. Error Message: " + errorInfo.getErrorText());
}
@Override
public void onSuccess(Paginator<ChannelDescriptor> paginator) {
String uuid = RCTTwilioChatPaginator.setPaginator(paginator);
promise.resolve(RCTConvert.Paginator(paginator, uuid, "ChannelDescriptor"));
}
});
}
SunmiInnerPrinterModule.java 文件源码
项目:react-native-sunmi-inner-printer
阅读 24
收藏 0
点赞 0
评论 0
/**
* 退出缓冲模式
*
* @param commit: 是否打印出缓冲区内容
*/
@ReactMethod
public void exitPrinterBuffer(boolean commit) {
final IWoyouService ss = woyouService;
Log.i(TAG, "come: " + commit + " ss:" + ss);
final boolean com = commit;
ThreadPoolManager.getInstance().executeTask(new Runnable() {
@Override
public void run() {
try {
ss.exitPrinterBuffer(com);
} catch (Exception e) {
e.printStackTrace();
Log.i(TAG, "ERROR: " + e.getMessage());
}
}
});
}
RNDatecsPrinterModule.java 文件源码
项目:react-native-datecs-printer
阅读 32
收藏 0
点赞 0
评论 0
/**
* Feed paper to the printer (roll out blank paper)
*
* @param linesQuantity
* @param promise
*/
@ReactMethod
public void feedPaper(int linesQuantity, Promise promise) {
if (linesQuantity < 0 || linesQuantity > 255) {
promise.reject("AMOUNT_LINES_0_255");
return;
}
try {
mPrinter.feedPaper(linesQuantity);
mPrinter.flush();
promise.resolve("PAPER_FED");
} catch (Exception e) {
promise.reject("Erro: " + e.getMessage());
}
}
RNGethModule.java 文件源码
项目:react-native-geth
阅读 37
收藏 0
点赞 0
评论 0
/**
* Create and send transaction.
*
* @param passphrase Passphrase
* @param nonce Account nonce (use -1 to use last known nonce)
* @param toAddress Address destination
* @param amount Amount
* @param gasLimit Gas limit
* @param gasPrice Gas price
* @param data
* @param promise Promise
* @return Return String transaction
*/
@ReactMethod
public void createAndSendTransaction(String passphrase, double nonce, String toAddress,
double amount, double gasLimit, double gasPrice,
String data, Promise promise) {
try {
Account acc = GethHolder.getAccount();
Address fromAddress = acc.getAddress();
BigInt chain = new BigInt(GethHolder.getNodeConfig().getEthereumNetworkID());
Context ctx = new Context();
if (nonce == -1) {
nonce = GethHolder.getNode().getEthereumClient().getPendingNonceAt(ctx, fromAddress);
}
Transaction tx = new Transaction(
(long) nonce,
new Address(toAddress),
new BigInt((long) amount),
new BigInt((long) gasLimit),
new BigInt((long) gasPrice),
data.getBytes("UTF8"));
// Sign a transaction with a single authorization
Transaction signed = GethHolder.getKeyStore().signTxPassphrase(acc, passphrase, tx, chain);
// Send it out to the network.
GethHolder.getNode().getEthereumClient().sendTransaction(ctx, signed);
promise.resolve(tx.toString());
} catch (Exception e) {
promise.reject(NEW_TRANSACTION_ERROR, e);
}
}
BiometricModule.java 文件源码
项目:FingerPrint-Authentication-With-React-Native-Android
阅读 31
收藏 0
点赞 0
评论 0
@ReactMethod
public void retrieveCredentials(Callback errorCallbackCred, Callback successCallbackCred) {
//Read encrypted JSON from file system
String encryptedJSONFromFile = readFromFile();
//decrypt data from file system
String decryptedJSON = decryptText(encryptedJSONFromFile);
if (null != decryptedJSON) {
try {
JSONObject decryptedJSONObject = new JSONObject(decryptedJSON);
successCallbackCred.invoke(decryptedJSONObject.toString());
} catch (JSONException e) {
e.printStackTrace();
errorCallbackCred.invoke("Failed to retrieve Credentials");
}
} else {
errorCallbackCred.invoke("Failed to retrieve Credentials");
}
}
FingerprintModule.java 文件源码
项目:react-native-touch-id-android
阅读 33
收藏 0
点赞 0
评论 0
@ReactMethod
public void isSensorAvailable(final Promise promise) {
response = Arguments.createMap();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ActivityCompat.checkSelfPermission(mReactContext, Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) {
sendResponse("failed", "You haven't allow this app to use your fingerprint sensor", promise);
return;
}
if (mReactContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FINGERPRINT) ||
((FingerprintManager) mReactContext.getSystemService(Context.FINGERPRINT_SERVICE)).isHardwareDetected()) {
if (((FingerprintManager) mReactContext.getSystemService(Context.FINGERPRINT_SERVICE)).hasEnrolledFingerprints()) {
sendResponse("ok", null, promise);
} else {
sendResponse("failed", "You have fingerprint sensor, but you should set it enabled in your settings to use with this app", promise);
}
} else {
sendResponse("failed", "You don\'t have appropriate hardware", promise);
}
} else {
sendResponse("failed", "You don\'t have appropriate hardware", promise);
}
}
CameraRollManager.java 文件源码
项目:RNLearn_Project1
阅读 39
收藏 0
点赞 0
评论 0
/**
* Get photos from {@link MediaStore.Images}, most recent first.
*
* @param params a map containing the following keys:
* <ul>
* <li>first (mandatory): a number representing the number of photos to fetch</li>
* <li>
* after (optional): a cursor that matches page_info[end_cursor] returned by a
* previous call to {@link #getPhotos}
* </li>
* <li>groupName (optional): an album name</li>
* <li>
* mimeType (optional): restrict returned images to a specific mimetype (e.g.
* image/jpeg)
* </li>
* </ul>
* @param promise the Promise to be resolved when the photos are loaded; for a format of the
* parameters passed to this callback, see {@code getPhotosReturnChecker} in CameraRoll.js
*/
@ReactMethod
public void getPhotos(final ReadableMap params, final Promise promise) {
int first = params.getInt("first");
String after = params.hasKey("after") ? params.getString("after") : null;
String groupName = params.hasKey("groupName") ? params.getString("groupName") : null;
ReadableArray mimeTypes = params.hasKey("mimeTypes")
? params.getArray("mimeTypes")
: null;
if (params.hasKey("groupTypes")) {
throw new JSApplicationIllegalArgumentException("groupTypes is not supported on Android");
}
new GetPhotosTask(
getReactApplicationContext(),
first,
after,
groupName,
mimeTypes,
promise)
.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
SystemSetting.java 文件源码
项目:react-native-system-setting
阅读 36
收藏 0
点赞 0
评论 0
@ReactMethod
public void getAppBrightness(Promise promise) {
final Activity curActivity = getCurrentActivity();
if(curActivity == null) {
return;
}
try {
float result = curActivity.getWindow().getAttributes().screenBrightness;
if(result < 0){
int val = Settings.System.getInt(getReactApplicationContext().getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
promise.resolve(val * 1.0f / 255);
}else{
promise.resolve(result);
}
} catch (Exception e) {
e.printStackTrace();
promise.reject("-1", "get app's brightness fail", e);
}
}
RNReactNativeAndoridShadowModule.java 文件源码
项目:react-native-andorid-shadow
阅读 29
收藏 0
点赞 0
评论 0
@ReactMethod
public void applyShadowForView(final Integer tag, final ReadableMap param) {
Log.d(TAG,"AndroidShadowManager applyShadowForView! tag: " + tag);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
return;
}
UIManagerModule uiManager = reactContext.getNativeModule(UIManagerModule.class);
uiManager.addUIBlock(new UIBlock() {
@Override
public void execute(NativeViewHierarchyManager nvhm) {
ReactViewGroup targetView = (ReactViewGroup) nvhm.resolveView(tag);
Log.d(TAG,"AndroidShadowManager view w = " + targetView.getWidth() + " h = " + targetView.getHeight());
// targetView.setBackgroundColor(Color.CYAN);
targetView.getViewTreeObserver().addOnGlobalLayoutListener(new OutlineAdjuster(targetView,param));
}
});
}
Module.java 文件源码
项目:react-native-pgp
阅读 27
收藏 0
点赞 0
评论 0
@ReactMethod
public void signData(final String privKeyData, final String password, final String data, Promise promise) {
try {
// region Decode Private Key
PGPSecretKey secKey = PGPUtils.getSecretKey(privKeyData);
PGPPrivateKey privKey = PGPUtils.decryptArmoredPrivateKey(secKey, password);
// endregion
// region Sign Data
String signature = PGPUtils.signArmoredAscii(privKey, data, signatureAlgo);
WritableMap resultMap = Arguments.createMap();
resultMap.putString("asciiArmoredSignature", signature);
resultMap.putString("hashingAlgo", PGPUtils.hashAlgoToString(signatureAlgo));
resultMap.putString("fingerPrint", Utils.bytesToHex(secKey.getPublicKey().getFingerprint()));
promise.resolve(resultMap);
// endregion
} catch (Exception e) {
promise.reject(e);
}
}
SunmiInnerPrinterModule.java 文件源码
项目:react-native-sunmi-inner-printer
阅读 25
收藏 0
点赞 0
评论 0
/**
* 进入缓冲模式,所有打印调用将缓存,调用commitPrinterBuffe()后打印
*
* @param clean: 是否清除缓冲区内容
*/
@ReactMethod
public void enterPrinterBuffer(boolean clean) {
final IWoyouService ss = woyouService;
Log.i(TAG, "come: " + clean + " ss:" + ss);
final boolean c = clean;
ThreadPoolManager.getInstance().executeTask(new Runnable() {
@Override
public void run() {
try {
ss.enterPrinterBuffer(c);
} catch (Exception e) {
e.printStackTrace();
Log.i(TAG, "ERROR: " + e.getMessage());
}
}
});
}
RNSpeechToText.java 文件源码
项目:react-native-stt
阅读 27
收藏 0
点赞 0
评论 0
@ReactMethod
public void createSpeechRecognizer(final Promise promise) {
if (reactContext == null)
throw new IllegalArgumentException("ReactApplicationContext must be defined!");
if (mSpeechRecognizer != null) {
mSpeechRecognizer.destroy();
mSpeechRecognizer = null;
}
if (SpeechRecognizer.isRecognitionAvailable(reactContext)) {
mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(reactContext);
mSpeechRecognizer.setRecognitionListener(new SpeechRecognitionListener(
this.reactContext.getJSModule(RCTNativeAppEventEmitter.class)
));
promise.resolve(null);
} else{
promise.reject("error", "SpeechRecognizer not available");
}
}
RNAndroidTextToSpeechModule.java 文件源码
项目:react-native-android-text-to-speech
阅读 24
收藏 0
点赞 0
评论 0
@ReactMethod
public void setDefaultSpeechRate(float speechRate, Promise promise) {
if(notReady(promise)) return;
int result = tts.setSpeechRate(speechRate);
if(result == TextToSpeech.SUCCESS) {
WritableMap map = Arguments.createMap();
map.putString("status", "Success");
map.putDouble("speechRate", (double)speechRate);
promise.resolve(map);
} else {
promise.reject("error", "Unable to set speech rate");
}
}
NativeAnimatedModule.java 文件源码
项目:RNLearn_Project1
阅读 39
收藏 0
点赞 0
评论 0
@ReactMethod
public void extractAnimatedNodeOffset(final int tag) {
mOperations.add(new UIThreadOperation() {
@Override
public void execute(NativeAnimatedNodesManager animatedNodesManager) {
animatedNodesManager.extractAnimatedNodeOffset(tag);
}
});
}
ReactNativeAndroidAudioConverterModule.java 文件源码
项目:ReactNativeAndroidAudioConverter
阅读 30
收藏 0
点赞 0
评论 0
/**
* Function to convert a given audio file to MP3 format
*
* @param fileName - input file name
* @param errorCallback - function called if the file could not be converted
* @param successCallback - function called if the conversion was successful
*/
@ReactMethod
public void convertAudioFile(String fileName,
final Callback errorCallback,
final Callback successCallback) {
File flacFile = new File(Environment.getExternalStorageDirectory(), fileName);
Log.d("Output file location", Environment.getExternalStorageDirectory().toString() + fileName);
IConvertCallback callback = new IConvertCallback() {
@Override
public void onSuccess(File convertedFile) {
// So fast? Love it!
Log.d("rnaac notice", "convert success");
successCallback.invoke("convert success");
}
@Override
public void onFailure(Exception error) {
// Oops! Something went wrong
errorCallback.invoke("convert failure: " + error.toString());
Log.d("rnaac notice", error.toString());
error.printStackTrace();
}
};
AndroidAudioConverter.with(this.getReactApplicationContext())
// Your current audio file
.setFile(flacFile)
// Your desired audio format
.setFormat(AudioFormat.MP3)
// An callback to know when conversion is finished
.setCallback(callback)
// Start conversion
.convert();
}
WebRTCModule.java 文件源码
项目:react-native-webrtc
阅读 39
收藏 0
点赞 0
评论 0
@ReactMethod
public void mediaStreamTrackSwitchCamera(final String id) {
MediaStreamTrack track = mMediaStreamTracks.get(id);
if (track != null) {
VideoCapturer videoCapturer = mVideoCapturers.get(id);
if (videoCapturer != null) {
CameraVideoCapturer cameraVideoCapturer
= (CameraVideoCapturer) videoCapturer;
cameraVideoCapturer.switchCamera(null);
}
}
}
SmsModule.java 文件源码
项目:react-native-get-sms-android
阅读 29
收藏 0
点赞 0
评论 0
@ReactMethod
public void delete(Integer id, final Callback errorCallback, final Callback successCallback) {
try {
int res = context.getContentResolver().delete(Uri.parse("content://sms/" + id), null, null);
if (res > 0) {
successCallback.invoke("OK");
} else {
errorCallback.invoke("SMS not found");
}
return;
} catch (Exception e) {
errorCallback.invoke(e.getMessage());
return;
}
}
CommAdminBleRNI.java 文件源码
项目:react-native-ble-quick-sdk
阅读 27
收藏 0
点赞 0
评论 0
@ReactMethod
public void native_connect(String peripheralUUID, Callback successCallback, Callback failCallback) {
//NSLog(@"native_connect entered");
Log.d(LOG_TAG,"native_connect entered");
//[mBleAdmin connect:peripheralUUID successCallback: successCallback failCallback: failCallback];
mBleAdmin.connect(peripheralUUID, successCallback, failCallback);
}
NativeAnimatedModule.java 文件源码
项目:RNLearn_Project1
阅读 41
收藏 0
点赞 0
评论 0
@ReactMethod
public void setAnimatedNodeOffset(final int tag, final double value) {
mOperations.add(new UIThreadOperation() {
@Override
public void execute(NativeAnimatedNodesManager animatedNodesManager) {
animatedNodesManager.setAnimatedNodeOffset(tag, value);
}
});
}
WebRTCModule.java 文件源码
项目:react-native-webrtc
阅读 43
收藏 0
点赞 0
评论 0
@ReactMethod
public void createDataChannel(final int peerConnectionId, String label, ReadableMap config) {
// Forward to PeerConnectionObserver which deals with DataChannels
// because DataChannel is owned by PeerConnection.
PeerConnectionObserver pco
= mPeerConnectionObservers.get(peerConnectionId);
if (pco == null || pco.getPeerConnection() == null) {
Log.d(TAG, "createDataChannel() peerConnection is null");
} else {
pco.createDataChannel(label, config);
}
}
OrientationModule.java 文件源码
项目:react-native-orientation-locker
阅读 31
收藏 0
点赞 0
评论 0
@ReactMethod
public void lockToLandscapeLeft() {
final Activity activity = getCurrentActivity();
if (activity == null) return;
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
this.isLocked = true;
}
RCTAudio.java 文件源码
项目:react-native-audio
阅读 22
收藏 0
点赞 0
评论 0
@ReactMethod
public void stop(final Integer key) {
MediaPlayer player = this.playerPool.get(key);
if (player != null && player.isPlaying()) {
player.stop();
}
}