From d1ef5e7e3247166ee82f7f3809dd316e2ff04a66 Mon Sep 17 00:00:00 2001 From: virvar Date: Wed, 18 May 2016 17:40:26 +0300 Subject: [PATCH] Setup sms-listener Former-commit-id: 1f5dad71e81ec910b3370374544864e554fd6cf1 --- .re-natal | 3 ++- android/app/build.gradle | 1 + .../app/src/main/java/com/syngim/MainActivity.java | 4 +++- android/settings.gradle | 4 +++- package.json | 1 + src/syng_im/chat/sign_up.cljs | 6 ++++++ src/syng_im/utils/sms_listener.cljs | 14 ++++++++++++++ 7 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 src/syng_im/utils/sms_listener.cljs diff --git a/.re-natal b/.re-natal index 54a57bc450..a5cde841e7 100644 --- a/.re-natal +++ b/.re-natal @@ -14,7 +14,8 @@ "react-native-vector-icons/Ionicons", "react-native-circle-checkbox", "react-native-randombytes", - "dismissKeyboard" + "dismissKeyboard", + "react-native-android-sms-listener" ], "imageDirs": [ "images" diff --git a/android/app/build.gradle b/android/app/build.gradle index c291fec7de..82a4b2fa40 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -128,6 +128,7 @@ dependencies { compile "com.facebook.react:react-native:+" // From node_modules compile project(':react-native-contacts') compile project(':react-native-i18n') + compile project(':ReactNativeAndroidSmsListener') // compile(name:'geth', ext:'aar') compile(group: 'status-im', name: 'android-geth', version: '1.4.0-201604110816-a97a114', ext: 'aar') diff --git a/android/app/src/main/java/com/syngim/MainActivity.java b/android/app/src/main/java/com/syngim/MainActivity.java index b080070f49..9c24036bfd 100644 --- a/android/app/src/main/java/com/syngim/MainActivity.java +++ b/android/app/src/main/java/com/syngim/MainActivity.java @@ -10,6 +10,7 @@ import android.os.Bundle; import android.os.Environment; import com.github.ethereum.go_ethereum.cmd.Geth; import com.bitgo.randombytes.RandomBytesPackage; +import com.centaurwarchief.smslistener.SmsListener; import java.util.Arrays; import java.util.List; @@ -78,7 +79,8 @@ public class MainActivity extends ReactActivity { new VectorIconsPackage(), new ReactNativeContacts(), new ReactNativeI18n(), - new RandomBytesPackage() + new RandomBytesPackage(), + new SmsListener(this) ); } } diff --git a/android/settings.gradle b/android/settings.gradle index 784925e19a..7eb87a3ce1 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -13,4 +13,6 @@ project(':react-native-vector-icons').projectDir = new File(rootProject.projectD include ':realm' project(':realm').projectDir = new File(rootProject.projectDir, '../node_modules/realm/android') include ':randombytes' -project(':randombytes').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-randombytes/app') \ No newline at end of file +project(':randombytes').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-randombytes/app') +include ':ReactNativeAndroidSmsListener' +project(':ReactNativeAndroidSmsListener').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-android-sms-listener/android') diff --git a/package.json b/package.json index 48ab8e052a..caf351c949 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "react": "^0.14.5", "react-native": "^0.24.1", "react-native-action-button": "^1.1.4", + "react-native-android-sms-listener": "^0.1.3", "react-native-circle-checkbox": "^0.1.3", "react-native-contacts": "^0.2.4", "react-native-i18n": "0.0.8", diff --git a/src/syng_im/chat/sign_up.cljs b/src/syng_im/chat/sign_up.cljs index a00f1d3154..9ff0c3cb34 100644 --- a/src/syng_im/chat/sign_up.cljs +++ b/src/syng_im/chat/sign_up.cljs @@ -6,6 +6,8 @@ [syng-im.models.chats :as c] [syng-im.utils.utils :refer [log on-error http-post toast]] [syng-im.utils.random :as random] + [syng-im.utils.sms-listener :refer [add-sms-listener + remove-sms-listener]] [syng-im.utils.phone-number :refer [format-phone-number]] [syng-im.constants :refer [text-content-type content-type-command @@ -73,6 +75,10 @@ :from "console" :to "me"}]))) +(defn start-listen-confirmation-code-sms [] + ;; TODO UNDONE listen sms + ) + ;; -- Saving password ---------------------------------------- (defn save-password [password] ;; TODO validate and save password diff --git a/src/syng_im/utils/sms_listener.cljs b/src/syng_im/utils/sms_listener.cljs new file mode 100644 index 0000000000..625e1ca8b6 --- /dev/null +++ b/src/syng_im/utils/sms_listener.cljs @@ -0,0 +1,14 @@ +(ns syng-im.utils.sms-listener) + +(def sms-listener (js/require "react-native-android-sms-listener")) + +;; Only android is supported! + +(defn add-sms-listener + "Message format: {originatingAddress: string, body: + string}. Returns cancelable subscription." + [listen-fn] + (.addListener sms-listener listen-fn)) + +(defn remove-sms-listener [subscription] + (.remove subscription))