From 165c6008ea0ef622fe4e94f89a0f81428435e2b4 Mon Sep 17 00:00:00 2001 From: WojtekSzafraniec Date: Thu, 30 Nov 2017 21:42:30 +0100 Subject: [PATCH 1/2] Get context after realoding device --- .../java/com/rnopentok/RNOpenTokSessionManager.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/android/src/main/java/com/rnopentok/RNOpenTokSessionManager.java b/android/src/main/java/com/rnopentok/RNOpenTokSessionManager.java index 5876d98..16b4e90 100644 --- a/android/src/main/java/com/rnopentok/RNOpenTokSessionManager.java +++ b/android/src/main/java/com/rnopentok/RNOpenTokSessionManager.java @@ -43,10 +43,20 @@ static RNOpenTokSessionManager initSessionManager(ReactApplicationContext contex e.printStackTrace(); } instance = new RNOpenTokSessionManager(context, apiKey); + } else if ( context != null && instance.getContext() != context) { + instance.setContext(context); } return instance; } + public ReactApplicationContext getContext() { + return this.mContext; + } + + public void setContext(ReactApplicationContext context) { + this.mContext = context; + } + static RNOpenTokSessionManager getSessionManager() { return RNOpenTokSessionManager.initSessionManager(null); } From 49289c2ce04d4b37e848736decff20f0f9865689 Mon Sep 17 00:00:00 2001 From: WojtekSzafraniec Date: Fri, 19 Jan 2018 14:18:17 +0100 Subject: [PATCH 2/2] WIP --- android/build.gradle | 2 +- .../java/com/rnopentok/RNOpenTokModule.java | 4 ++++ .../rnopentok/RNOpenTokSessionManager.java | 7 ++++++ example/App.js | 23 +++++++++++-------- example/android/app/build.gradle | 2 +- .../android/app/src/main/AndroidManifest.xml | 2 +- example/android/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 3 ++- src/index.js | 1 + 9 files changed, 31 insertions(+), 15 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 1ae98b6..a6dc7ae 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -13,7 +13,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 23 - buildToolsVersion "23.0.1" + buildToolsVersion '25.0.0' defaultConfig { minSdkVersion 16 diff --git a/android/src/main/java/com/rnopentok/RNOpenTokModule.java b/android/src/main/java/com/rnopentok/RNOpenTokModule.java index 157c6da..b19d91b 100644 --- a/android/src/main/java/com/rnopentok/RNOpenTokModule.java +++ b/android/src/main/java/com/rnopentok/RNOpenTokModule.java @@ -1,5 +1,7 @@ package com.rnopentok; +import android.util.Log; + import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; @@ -14,6 +16,7 @@ public RNOpenTokModule(ReactApplicationContext context) { super(context); RNOpenTokSessionManager.initSessionManager(context); + RNOpenTokSessionManager.getSessionManager().disconnectAllSessions(); reactContext = context; } @@ -27,6 +30,7 @@ public void connect(String sessionId, String token, Promise promise) { Session session = RNOpenTokSessionManager.getSessionManager().connectToSession(sessionId, token); session.setSessionListener(RNOpenTokSessionManager.getSessionManager()); session.setSignalListener(RNOpenTokSessionManager.getSessionManager()); + Log.d("blabla", String.valueOf(session)); promise.resolve(Boolean.valueOf(true)); } diff --git a/android/src/main/java/com/rnopentok/RNOpenTokSessionManager.java b/android/src/main/java/com/rnopentok/RNOpenTokSessionManager.java index 16b4e90..0a08fc0 100644 --- a/android/src/main/java/com/rnopentok/RNOpenTokSessionManager.java +++ b/android/src/main/java/com/rnopentok/RNOpenTokSessionManager.java @@ -2,6 +2,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; +import android.util.Log; import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.WritableMap; @@ -50,6 +51,7 @@ static RNOpenTokSessionManager initSessionManager(ReactApplicationContext contex } public ReactApplicationContext getContext() { + Log.d("blabla", String.valueOf(this.mContext)); return this.mContext; } @@ -62,6 +64,11 @@ static RNOpenTokSessionManager getSessionManager() { } public Session connectToSession(String sessionId, String token) { +// this.disconnectSession(sessionId); +// if (this.mSessions.get(sessionId) != null) { +// this.mSessions.get(sessionId).disconnect(); +// this.mSessions.remove(sessionId); +// } Session session = new Session(this.mContext, this.mApiKey, sessionId); session.connect(token); this.mSessions.put(sessionId, session); diff --git a/example/App.js b/example/App.js index 0fa1faa..11c937f 100644 --- a/example/App.js +++ b/example/App.js @@ -7,9 +7,10 @@ import OpenTok, { Publisher } from "react-native-opentok"; // eslint-disable-lin import type { Ref } from 'react'; -const sessionId = 'YOUR_SESSION_ID'; -const token = 'YOUR_TOKEN'; - +const sessionId = + '1_MX40NTk1NTk5Mn5-MTUxMjA2NTAxODU3N34yeHJ6K0JaZ3gxYmRwbWs3WFpLUEp0akt-fg'; +const token = + 'T1==cGFydG5lcl9pZD00NTk1NTk5MiZzZGtfdmVyc2lvbj1kZWJ1Z2dlciZzaWc9Zjg2ZjAyZGMxMmM3NTIyMmM2YTViN2RjMTA0MWMyNzk4ZTk5NjhjYzpzZXNzaW9uX2lkPTFfTVg0ME5UazFOVGs1TW41LU1UVXhNakEyTlRBeE9EVTNOMzR5ZUhKNkswSmFaM2d4WW1Sd2JXczNXRnBMVUVwMGFrdC1mZyZjcmVhdGVfdGltZT0xNTEyMDY1MDE4JnJvbGU9cHVibGlzaGVyJm5vbmNlPTE1MTIwNjUwMTguNjAxMTEzNTc1MDExNyZleHBpcmVfdGltZT0xNTE0NjU3MDE4'; export default class App extends Component<{}> { /* $FlowFixMe we ignore the fact that componentWillMount shouldn't be async. Just for example purposes */ async componentWillMount() { @@ -17,6 +18,10 @@ export default class App extends Component<{}> { OpenTok.on(OpenTok.events.ON_SIGNAL_RECEIVED, e => console.log(e)); } + // async componentWillUnmount() { + // await OpenTok.disconnect(sessionId); + // } + ref: Ref; render() { @@ -24,27 +29,25 @@ export default class App extends Component<{}> {