Skip to content

Commit

Permalink
Improve the Android API
Browse files Browse the repository at this point in the history
  • Loading branch information
JoshLipan committed Nov 9, 2018
1 parent d2b191b commit 83a317d
Show file tree
Hide file tree
Showing 13 changed files with 226 additions and 93 deletions.
4 changes: 1 addition & 3 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,5 @@ repositories {
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.facebook.react:react-native:+'
compile files('libs/agora-rtc-sdk.jar')
compile files('libs/jmrtc-sdk-android-1.0.2.jar')
compile files('libs/jmessage-sdk-android-2.7.0.jar')
compile 'org.greenrobot:eventbus:3.1.1'
}
Binary file removed android/libs/jmessage-sdk-android-2.7.0.jar
Binary file not shown.
Binary file added android/libs/jmessage-sdk-android-2.7.1.jar
Binary file not shown.
Binary file modified android/libs/jmrtc-sdk-android-1.0.2.jar
100755 → 100644
Binary file not shown.
2 changes: 1 addition & 1 deletion android/src/io/jmrtc/android/Constant.java
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ public class Constant {
public static final String MEDIA_TYPE = "mediaType";
public static final String INVITER = "inviter";
public static final String INVITING_MEMBERS = "invitingMembers";
public static final String JOINED_MEMBERS = "joined_Members";
public static final String JOINED_MEMBERS = "joinedMembers";
public static final String START_TIME = "startTime";
public static final String INVITED_USERS = "invitedUsers";
public static final String FROM_USER = "fromUser";
Expand Down
169 changes: 95 additions & 74 deletions android/src/io/jmrtc/android/JMRTCModule.java

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions android/src/io/jmrtc/android/JMRTCReactPackage.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,15 @@
import java.util.Collections;
import java.util.List;

import io.jmrtc.android.utils.Logger;

public class JMRTCReactPackage implements ReactPackage {

private boolean mShutdownToast;

public JMRTCReactPackage(boolean shutdownToast) {
public JMRTCReactPackage(boolean shutdownToast, boolean shutdownLog) {
Logger.SHUTDOWNTOAST = shutdownToast;
Logger.SHUTDOWNLOG = shutdownLog;
mShutdownToast = shutdownToast;
}

Expand All @@ -33,6 +37,6 @@ public List<Class<? extends JavaScriptModule>> createJSModules() {
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
List<ViewManager> viewManagers = new ArrayList<>();
viewManagers.add(new RNJMRTCViewManager());
return viewManagers;
return viewManagers;
}
}
44 changes: 38 additions & 6 deletions android/src/io/jmrtc/android/RNJMRTCViewManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,32 +8,64 @@
import com.facebook.react.uimanager.ViewGroupManager;
import com.facebook.react.uimanager.annotations.ReactProp;

import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;

import io.jmrtc.android.event.AddSurfaceViewEvent;
import io.jmrtc.android.event.RemoveSurfaceViewEvent;

public class RNJMRTCViewManager extends ViewGroupManager<FrameLayout> {

private static final String TAG = RNJMRTCViewManager.class.getSimpleName();

private String username;

private FrameLayout frameLayout;

@Override
public String getName() {
return "RNJMRTCViewManager";
return "RTCJMRTCView";
}

@Override
protected FrameLayout createViewInstance(ThemedReactContext reactContext) {
return new FrameLayout(reactContext);
if (!EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().register(this);
}
frameLayout = new FrameLayout(reactContext, null);
return frameLayout;
}

@ReactProp(name = "username")
public void setUsername(final FrameLayout view, String username) {
Log.i(TAG,"username:"+username);
SurfaceView surfaceView = JMRTCModule.surfaceViewCache.get(username);
if(surfaceView != null){
view.addView(surfaceView);
Log.i(TAG, "username:" + username);
this.username = username;


}

@Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(AddSurfaceViewEvent event) {
if (username.equals(event.getUsername())) {
SurfaceView surfaceView = JMRTCModule.surfaceViewCache.get(username);
if (surfaceView != null) {
frameLayout.addView(surfaceView);
}
}
}

@Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(RemoveSurfaceViewEvent event) {
if (username.equals(event.getUsername())) {
if (frameLayout.getChildCount() > 0)
frameLayout.removeAllViews();
}
}

@Override
public void onDropViewInstance(FrameLayout view) {
super.onDropViewInstance(view);
EventBus.getDefault().unregister(this);
}
}
19 changes: 19 additions & 0 deletions android/src/io/jmrtc/android/event/AddSurfaceViewEvent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package io.jmrtc.android.event;

public class AddSurfaceViewEvent {

private String username ;

public AddSurfaceViewEvent(String username) {
this.username = username;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

}
19 changes: 19 additions & 0 deletions android/src/io/jmrtc/android/event/RemoveSurfaceViewEvent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package io.jmrtc.android.event;


public class RemoveSurfaceViewEvent {

private String username ;

public RemoveSurfaceViewEvent(String username) {
this.username = username;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}
}
5 changes: 1 addition & 4 deletions android/src/io/jmrtc/android/utils/AndroidUtils.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
package io.jmrtc.android.utils;

/**
* Created by josh on 2018/9/14.
*/

import android.app.Activity;
import android.content.Context;
Expand Down Expand Up @@ -37,7 +34,7 @@ public static void requestPermission(Activity activity, String[] permissions) th
Method requestPermissionsMethod = activityClass.getMethod("requestPermissions", String[].class, int.class);
requestPermissionsMethod.invoke(activity, permissions, 0);
} else {
Toast.makeText(activity, "缺少必要权限,请检查Manifest文件,并在设置中打开对应权限", Toast.LENGTH_LONG).show();
Log.w(TAG, "缺少必要权限,请检查Manifest文件,并在设置中打开对应权限");
}
}
}
Expand Down
36 changes: 36 additions & 0 deletions android/src/io/jmrtc/android/utils/Logger.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package io.jmrtc.android.utils;


import android.content.Context;
import android.util.Log;
import android.widget.Toast;

public class Logger {

public static boolean SHUTDOWNLOG;
public static boolean SHUTDOWNTOAST;

public static void i(String tag, String msg) {
if (!SHUTDOWNLOG) {
Log.i(tag, msg);
}
}

public static void d(String tag, String msg) {
if (!SHUTDOWNLOG) {
Log.d(tag, msg);
}
}

public static void w(String tag, String msg) {
if (!SHUTDOWNLOG) {
Log.w(tag, msg);
}
}

public static void toast(Context context, String msg) {
if (!SHUTDOWNTOAST) {
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
}
}
13 changes: 10 additions & 3 deletions android/src/io/jmrtc/android/utils/ResultUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@
import com.facebook.react.bridge.ReadableMapKeySetIterator;
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.bridge.WritableMap;
import com.google.gson.jpush.JsonElement;
import com.google.gson.jpush.JsonObject;
import com.google.gson.jpush.JsonParser;


import org.json.JSONException;
import org.json.JSONObject;
Expand All @@ -23,6 +21,9 @@

import cn.jiguang.jmrtc.api.JMRtcSession;
import cn.jiguang.jmrtc.api.JMSignalingMessage;
import cn.jmessage.support.google.gson.JsonElement;
import cn.jmessage.support.google.gson.JsonObject;
import cn.jmessage.support.google.gson.JsonParser;
import cn.jpush.im.android.api.JMessageClient;
import cn.jpush.im.android.api.callback.RequestCallback;
import cn.jpush.im.android.api.content.CustomContent;
Expand Down Expand Up @@ -98,6 +99,12 @@ public void gotResult(int i, String s, List<UserInfo> userInfos) {
}
}
});

try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
return result ;
}

Expand Down

0 comments on commit 83a317d

Please sign in to comment.