Skip to content

Commit

Permalink
Merge pull request #243 from opentok/0.9.7
Browse files Browse the repository at this point in the history
v0.9.7
  • Loading branch information
Manik Sachdeva authored Mar 5, 2019
2 parents b7647fd + 3bba40a commit 2e092d6
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 32 deletions.
24 changes: 13 additions & 11 deletions android/src/main/java/com/opentokreactnative/OTPublisherLayout.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,20 @@ public OTPublisherLayout(ThemedReactContext reactContext) {
public void createPublisherView(String publisherId) {

ConcurrentHashMap<String, Publisher> mPublishers = sharedState.getPublishers();
Publisher mPublisher = mPublishers.get(publisherId);
mPublisher.setStyle(BaseVideoRenderer.STYLE_VIDEO_SCALE,
BaseVideoRenderer.STYLE_VIDEO_FILL);
FrameLayout mPublisherViewContainer = new FrameLayout(getContext());
if (mPublisher.getView() instanceof GLSurfaceView) {
((GLSurfaceView) mPublisher.getView()).setZOrderOnTop(true);
Publisher mPublisher = mPublishers.get(publisherId);
if (mPublisher != null) {
mPublisher.setStyle(BaseVideoRenderer.STYLE_VIDEO_SCALE,
BaseVideoRenderer.STYLE_VIDEO_FILL);
FrameLayout mPublisherViewContainer = new FrameLayout(getContext());
if (mPublisher.getView() instanceof GLSurfaceView) {
((GLSurfaceView) mPublisher.getView()).setZOrderOnTop(true);
}
ConcurrentHashMap<String, FrameLayout> mPublisherViewContainers = sharedState.getPublisherViewContainers();
mPublisherViewContainers.put(publisherId, mPublisherViewContainer);
addView(mPublisherViewContainer, 0);
mPublisherViewContainer.addView(mPublisher.getView());
requestLayout();
}
ConcurrentHashMap<String, FrameLayout> mPublisherViewContainers = sharedState.getPublisherViewContainers();
mPublisherViewContainers.put(publisherId, mPublisherViewContainer);
addView(mPublisherViewContainers.get(publisherId), 0);
mPublisherViewContainers.get(publisherId).addView(mPublisher.getView());
requestLayout();

}

Expand Down
49 changes: 36 additions & 13 deletions android/src/main/java/com/opentokreactnative/OTSessionManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,9 @@ public void connect(String token, Callback callback) {

connectCallback = callback;
Session mSession = sharedState.getSession();
mSession.connect(token);
if (mSession != null) {
mSession.connect(token);
}
}

@ReactMethod
Expand Down Expand Up @@ -175,8 +177,12 @@ public void subscribeToStream(String streamId, ReadableMap properties, Callback
mSubscriber.setSubscribeToAudio(properties.getBoolean("subscribeToAudio"));
mSubscriber.setSubscribeToVideo(properties.getBoolean("subscribeToVideo"));
mSubscribers.put(streamId, mSubscriber);
mSession.subscribe(mSubscriber);
callback.invoke();
if (mSession != null) {
mSession.subscribe(mSubscriber);
callback.invoke(null, streamId);
} else {
callback.invoke("Error subscribring. The native session instance could not be found.");
}

}

Expand All @@ -198,7 +204,9 @@ public void run() {
mSubscriberViewContainer.removeAllViews();
}
mSubscriberViewContainers.remove(mStreamId);
mSubscriber.destroy();
if (mSubscriber != null) {
mSubscriber.destroy();
}
mSubscribers.remove(mStreamId);
mSubscriberStreams.remove(mStreamId);
mCallback.invoke();
Expand All @@ -223,15 +231,19 @@ public void publishAudio(String publisherId, Boolean publishAudio) {

ConcurrentHashMap<String, Publisher> mPublishers = sharedState.getPublishers();
Publisher mPublisher = mPublishers.get(publisherId);
mPublisher.setPublishAudio(publishAudio);
if (mPublisher != null) {
mPublisher.setPublishAudio(publishAudio);
}
}

@ReactMethod
public void publishVideo(String publisherId, Boolean publishVideo) {

ConcurrentHashMap<String, Publisher> mPublishers = sharedState.getPublishers();
Publisher mPublisher = mPublishers.get(publisherId);
mPublisher.setPublishVideo(publishVideo);
if (mPublisher != null) {
mPublisher.setPublishVideo(publishVideo);
}
}

@ReactMethod
Expand Down Expand Up @@ -259,8 +271,9 @@ public void changeCameraPosition(String publisherId, String cameraPosition) {

ConcurrentHashMap<String, Publisher> mPublishers = sharedState.getPublishers();
Publisher mPublisher = mPublishers.get(publisherId);
mPublisher.cycleCamera();
Log.i(TAG, "Changing camera to " + cameraPosition);
if (mPublisher != null) {
mPublisher.cycleCamera();
}
}

@ReactMethod
Expand Down Expand Up @@ -299,8 +312,13 @@ public void removeJSComponentEvents(ReadableArray events) {
public void sendSignal(ReadableMap signal, Callback callback) {

Session mSession = sharedState.getSession();
mSession.sendSignal(signal.getString("type"), signal.getString("data"));
callback.invoke();
if (mSession != null){
mSession.sendSignal(signal.getString("type"), signal.getString("data"));
callback.invoke();
} else {
callback.invoke("There was an error sending the signal. The native session instance could not be found.");
}

}

@ReactMethod
Expand All @@ -327,6 +345,8 @@ public void run() {
if (mPublisher != null) {
mPublisher.destroy();
}
mPublishers.remove(publisherId);
callback.invoke();
}
});
}
Expand All @@ -335,9 +355,12 @@ public void run() {
public void getSessionInfo(Callback callback) {

Session mSession = sharedState.getSession();
WritableMap sessionInfo = EventUtils.prepareJSSessionMap(mSession);
sessionInfo.putString("sessionId", mSession.getSessionId());
sessionInfo.putInt("connectionStatus", getConnectionStatus());
WritableMap sessionInfo = null;
if (mSession != null){
sessionInfo = EventUtils.prepareJSSessionMap(mSession);
sessionInfo.putString("sessionId", mSession.getSessionId());
sessionInfo.putInt("connectionStatus", getConnectionStatus());
}
callback.invoke(sessionInfo);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,17 @@ public OTSubscriberLayout(ThemedReactContext reactContext) {
public void createSubscriberView(String streamId) {

ConcurrentHashMap<String, Subscriber> mSubscribers = sharedState.getSubscribers();
mSubscribers.get(streamId).setStyle(BaseVideoRenderer.STYLE_VIDEO_SCALE,
BaseVideoRenderer.STYLE_VIDEO_FILL);
Subscriber mSubscriber = mSubscribers.get(streamId);
FrameLayout mSubscriberViewContainer = new FrameLayout(getContext());
ConcurrentHashMap<String, FrameLayout> mSubscriberViewContainers = sharedState.getSubscriberViewContainers();
mSubscriberViewContainers.put(streamId, mSubscriberViewContainer);
addView(mSubscriberViewContainers.get(streamId), 0);
mSubscriberViewContainers.get(streamId).addView(mSubscribers.get(streamId).getView());
requestLayout();

if (mSubscriber != null) {
mSubscriber.setStyle(BaseVideoRenderer.STYLE_VIDEO_SCALE,
BaseVideoRenderer.STYLE_VIDEO_FILL);
ConcurrentHashMap<String, FrameLayout> mSubscriberViewContainers = sharedState.getSubscriberViewContainers();
mSubscriberViewContainers.put(streamId, mSubscriberViewContainer);
addView(mSubscriberViewContainer, 0);
mSubscriberViewContainer.addView(mSubscriber.getView());
requestLayout();
}
}

}

0 comments on commit 2e092d6

Please sign in to comment.