diff --git a/.gitignore b/.gitignore index 2fd9b94..ead445e 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,4 @@ react-native-dialogs.iml .idea .gradle local.properties +android/*.iml diff --git a/README.md b/README.md index f0a35fc..df231a8 100644 --- a/README.md +++ b/README.md @@ -40,15 +40,18 @@ Next, you need to change the `MainActivity` of your app to register `ReactNative ```java import com.aakashns.reactnativedialogs.ReactNativeDialogsPackage; -public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler { //... +public class MainActivity extends ReactActivity { + //... - mReactInstanceManager = ReactInstanceManager.builder() - //... - .addPackage(new MainReactPackage()) - .addPackage(new ReactNativeDialogsPackage(this)) // <- ADD THIS LINE! - //... - .build(); + @Override + protected List getPackages() { + return Arrays.asList( + new MainReactPackage(), + new ReactNativeDialogsPackage() // add this manager + ); + } +} ``` See [this changelog](https://github.com/aakashns/react-native-dialogs-example/commit/52cac27756963bcd2f4fdcd039e1a78028bb0abd) for reference. diff --git a/android/build.gradle b/android/build.gradle index 4f90cb3..f336891 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,11 +1,10 @@ buildscript { repositories { jcenter() - maven { url "https://jitpack.io" } } dependencies { - classpath 'com.android.tools.build:gradle:1.1.3' + classpath 'com.android.tools.build:gradle:1.3.1' } } @@ -25,14 +24,12 @@ android { repositories { maven { url "https://jitpack.io" } + jcenter() } dependencies { - compile 'com.android.support:appcompat-v7:23.1' - compile 'com.facebook.react:react-native:0.14.+' - compile fileTree(dir: 'libs', include: ['*.jar']) + compile 'com.facebook.react:react-native:0.20.+' + compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' - compile('com.github.afollestad.material-dialogs:core:0.8.5.0@aar') { - transitive = true - } + compile 'com.github.afollestad.material-dialogs:commons:8f8ab21' // version 0.8.5.0 } diff --git a/android/src/main/java/com/aakashns/reactnativedialogs/ReactNativeDialogsPackage.java b/android/src/main/java/com/aakashns/reactnativedialogs/ReactNativeDialogsPackage.java index 42c64fe..dbfabb0 100644 --- a/android/src/main/java/com/aakashns/reactnativedialogs/ReactNativeDialogsPackage.java +++ b/android/src/main/java/com/aakashns/reactnativedialogs/ReactNativeDialogsPackage.java @@ -10,30 +10,28 @@ import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.uimanager.ViewManager; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.List; public class ReactNativeDialogsPackage implements ReactPackage { - Activity mActivity; - public ReactNativeDialogsPackage(Activity activity) { - mActivity = activity; + public ReactNativeDialogsPackage() { + } @Override - public List createNativeModules( - ReactApplicationContext reactContext) { - List modules = new ArrayList<>(); - modules.add(new DialogAndroid(reactContext, mActivity)); - return modules; + public List createNativeModules(ReactApplicationContext reactContext) { + return Arrays.asList(new DialogAndroid(reactContext)); } @Override public List> createJSModules() { - return new ArrayList<>(); + return Collections.emptyList(); } @Override public List createViewManagers(ReactApplicationContext reactContext) { - return new ArrayList<>(); + return Collections.emptyList(); } } diff --git a/android/src/main/java/com/aakashns/reactnativedialogs/modules/DialogAndroid.java b/android/src/main/java/com/aakashns/reactnativedialogs/modules/DialogAndroid.java index 3b07e05..ca6a381 100644 --- a/android/src/main/java/com/aakashns/reactnativedialogs/modules/DialogAndroid.java +++ b/android/src/main/java/com/aakashns/reactnativedialogs/modules/DialogAndroid.java @@ -1,6 +1,5 @@ package com.aakashns.reactnativedialogs.modules; -import android.app.Activity; import android.content.DialogInterface; import android.view.View; @@ -13,6 +12,7 @@ import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.ReadableMapKeySetIterator; +import com.facebook.react.bridge.UiThreadUtil; import java.lang.reflect.InvocationTargetException; @@ -23,13 +23,9 @@ public class DialogAndroid extends ReactContextBaseJavaModule { return "DialogAndroid"; } - Activity mActivity; - public DialogAndroid( - ReactApplicationContext reactContext, - Activity activity) { + public DialogAndroid(ReactApplicationContext reactContext) { super(reactContext); - mActivity = activity; } /* Apply the options to the provided builder */ @@ -118,7 +114,7 @@ public class DialogAndroid extends ReactContextBaseJavaModule { @ReactMethod public void show(ReadableMap options, final Callback callback) { - mBuilder = new MaterialDialog.Builder(mActivity); + mBuilder = new MaterialDialog.Builder(getCurrentActivity()); try { applyOptions(mBuilder, options); } catch (Exception e) { @@ -284,10 +280,10 @@ public class DialogAndroid extends ReactContextBaseJavaModule { } }); } - mActivity.runOnUiThread(new Runnable() { + UiThreadUtil.runOnUiThread(new Runnable() { public void run() { - if(mDialog != null) - mDialog.dismiss(); + if (mDialog != null) + mDialog.dismiss(); mDialog = mBuilder.build(); mDialog.show(); }