Browse Source

修复bug

Pq 3 years ago
parent
commit
df61ca89e7

+ 1 - 1
student/src/main/java/com/cooleshow/student/presenter/live/LiveRoomPresenter.java

@@ -452,7 +452,7 @@ public class LiveRoomPresenter extends BasePresenter<LiveRoomContract.view> impl
         LiveEventHelper.getInstance().joinRoom(roomId,RCRTCLiveRole.AUDIENCE,new ClickCallback<Boolean>() {
             @Override
             public void onResult(Boolean result, String msg) {
-                Log.i("pq", "joinRoom onResult:" + result);
+                Log.i("pq", "joinRoom onResult:" + result+"->"+msg);
                 if (result) {
                     setCurrentRoom(currentRoomInfo, isCreate);
                     refreshMusicView(true);

+ 28 - 1
student/src/main/java/com/cooleshow/student/ui/live/LiveRoomActivity.java

@@ -1,5 +1,6 @@
 package com.cooleshow.student.ui.live;
 
+import android.Manifest;
 import android.animation.ObjectAnimator;
 import android.content.ComponentName;
 import android.content.Context;
@@ -36,12 +37,14 @@ import com.cooleshow.base.data.net.ApiException;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.AppUtils;
+import com.cooleshow.base.utils.PermissionUtils;
 import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.base.utils.SoftKeyboardUtil;
 import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.UiUtils;
 import com.cooleshow.base.utils.Utils;
 import com.cooleshow.base.widgets.InputBar;
+import com.cooleshow.base.widgets.dialog.CommonConfirmDialog;
 import com.cooleshow.student.bean.FriendInfoBean;
 import com.cooleshow.student.ui.live.floatPop.FloatWindowHelper;
 import com.cooleshow.student.ui.live.floatPop.FloatingWindowService;
@@ -104,6 +107,7 @@ import cn.rongcloud.rtc.base.RCRTCMediaType;
 import cn.rongcloud.rtc.base.RCRTCResourceState;
 import cn.rongcloud.rtc.core.RendererCommon;
 import de.hdodenhof.circleimageview.CircleImageView;
+import io.reactivex.rxjava3.disposables.Disposable;
 import io.rong.imkit.IMCenter;
 import io.rong.imlib.IRongCoreCallback;
 import io.rong.imlib.IRongCoreEnum;
@@ -114,6 +118,7 @@ import io.rong.imlib.model.UserInfo;
 import io.rong.message.TextMessage;
 
 import com.cooleshow.student.widgets.helper.VideoViewManager;
+import com.tbruyelle.rxpermissions3.RxPermissions;
 
 /**
  * Author by pq, Date on 2022/3/29.
@@ -334,7 +339,29 @@ public class LiveRoomActivity extends BaseMVPActivity<ActivityLiveroomLayoutBind
                 }
             }
         });
-        prepareInitRoom();
+        checkNeedPermission();
+    }
+
+    private void checkNeedPermission() {
+        Disposable disposable = new RxPermissions(LiveRoomActivity.this)
+                .request(Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE
+                        , Manifest.permission.CAMERA)
+                .subscribe(permission -> {
+                    if (permission) {
+                        prepareInitRoom();
+                    } else {
+                        CommonConfirmDialog confirmDialog = new CommonConfirmDialog(LiveRoomActivity.this);
+                        confirmDialog.show();
+                        confirmDialog.setContent("直播需要麦克风、摄像头、储存权限,去设置?");
+                        confirmDialog.setConfirmText("去设置");
+                        confirmDialog.setOnConfirmClickListener(new View.OnClickListener() {
+                            @Override
+                            public void onClick(View v) {
+                                PermissionUtils.toSelfSetting(LiveRoomActivity.this);
+                            }
+                        });
+                    }
+                });
     }
 
     private void prepareInitRoom() {