add android versoin

This commit is contained in:
Huang Yu 2016-01-13 15:53:44 -08:00
parent 4fed3623a0
commit aea35e8fa1
6 changed files with 105 additions and 0 deletions

17
app/build.gradle Normal file
View File

@ -0,0 +1,17 @@
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
}
dependencies {
compile 'com.facebook.react:react-native:0.13.+'
}

View File

@ -0,0 +1,3 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bitgo.randombytes">
</manifest>

View File

@ -0,0 +1,31 @@
package com.bitgo.randombytes;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import java.security.SecureRandom;
import android.util.Base64;
class RandomBytesModule extends ReactContextBaseJavaModule {
public RandomBytesModule(ReactApplicationContext reactContext) {
super(reactContext);
}
@Override
public String getName() {
return "RNRandomBytes";
}
@ReactMethod
public void randomBytes(int size, Callback success) {
SecureRandom sr = new SecureRandom();
byte[] output = new byte[size];
sr.nextBytes(output);
String string = Base64.encodeToString(output, Base64.DEFAULT);
success.invoke(null, string);
}
}

View File

@ -0,0 +1,34 @@
package com.bitgo.randombytes;
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.JavaScriptModule;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class RandomBytesPackage implements ReactPackage {
@Override
public List<NativeModule> createNativeModules(
ReactApplicationContext reactContext) {
List<NativeModule> modules = new ArrayList<>();
modules.add(new RandomBytesModule(reactContext));
return modules;
}
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
return Collections.emptyList();
}
@Override
public List<Class<? extends JavaScriptModule>> createJSModules() {
return Collections.emptyList();
}
}

18
build.gradle Normal file
View File

@ -0,0 +1,18 @@
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenLocal()
jcenter()
}
}

2
settings.gradle Normal file
View File

@ -0,0 +1,2 @@
rootProject.name = 'randombytes'
include ':app'