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 5876d98..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; @@ -43,15 +44,31 @@ 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() { + Log.d("blabla", String.valueOf(this.mContext)); + return this.mContext; + } + + public void setContext(ReactApplicationContext context) { + this.mContext = context; + } + static RNOpenTokSessionManager getSessionManager() { return RNOpenTokSessionManager.initSessionManager(null); } 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<{}> {