|
@@ -52,7 +52,7 @@ import androidx.lifecycle.ViewModelProviders;
|
|
|
/**
|
|
|
* Author by pq, Date on 2023/4/20.
|
|
|
*/
|
|
|
-public class VideoFragment extends BaseMVPFragment<FgVideoLayoutBinding,MainVideoFragmentPresenter> implements View.OnClickListener {
|
|
|
+public class VideoFragment extends BaseMVPFragment<FgVideoLayoutBinding, MainVideoFragmentPresenter> implements View.OnClickListener {
|
|
|
public static final String TAG = "VideoFragment";
|
|
|
RelativeLayout classShareRootView;
|
|
|
DisplayNullView displayNull;
|
|
@@ -125,19 +125,19 @@ public class VideoFragment extends BaseMVPFragment<FgVideoLayoutBinding,MainVide
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- private void initViews(){
|
|
|
- classShareRootView =mViewBinding.classShareRootView;
|
|
|
- displayNull =mViewBinding.classShareScreenNull;
|
|
|
- shareVideoView =mViewBinding.classShareVideoview;
|
|
|
- ll_operate =mViewBinding.llOperate;
|
|
|
- tvSpeech =mViewBinding.tvSpeech;
|
|
|
- iv_raise_hands =mViewBinding.ivRaiseHands;
|
|
|
- tvShareName =mViewBinding.tvShareName;
|
|
|
- viewMainClickHelp =mViewBinding.viewMainClickHelp;
|
|
|
- ivCameraStatusTip =mViewBinding.ivCameraTip;
|
|
|
- tvDisplayTip =mViewBinding.tvDisplayTip;
|
|
|
- iv_signal =mViewBinding.ivSignal;
|
|
|
- llNameTip =mViewBinding.llNameTip;
|
|
|
+ private void initViews() {
|
|
|
+ classShareRootView = mViewBinding.classShareRootView;
|
|
|
+ displayNull = mViewBinding.classShareScreenNull;
|
|
|
+ shareVideoView = mViewBinding.classShareVideoview;
|
|
|
+ ll_operate = mViewBinding.llOperate;
|
|
|
+ tvSpeech = mViewBinding.tvSpeech;
|
|
|
+ iv_raise_hands = mViewBinding.ivRaiseHands;
|
|
|
+ tvShareName = mViewBinding.tvShareName;
|
|
|
+ viewMainClickHelp = mViewBinding.viewMainClickHelp;
|
|
|
+ ivCameraStatusTip = mViewBinding.ivCameraTip;
|
|
|
+ tvDisplayTip = mViewBinding.tvDisplayTip;
|
|
|
+ iv_signal = mViewBinding.ivSignal;
|
|
|
+ llNameTip = mViewBinding.llNameTip;
|
|
|
}
|
|
|
|
|
|
private void setStudentOnStage(boolean isOnstage) {
|
|
@@ -407,7 +407,7 @@ public class VideoFragment extends BaseMVPFragment<FgVideoLayoutBinding,MainVide
|
|
|
item.width = width;
|
|
|
item.height = width;
|
|
|
item.left = marginLeft;
|
|
|
- item.right =marginLeft;
|
|
|
+ item.right = marginLeft;
|
|
|
item.type = OperateItem.Type.CHECKBOX;
|
|
|
item.text = operate.text;
|
|
|
rightItems.add(item);
|
|
@@ -425,7 +425,7 @@ public class VideoFragment extends BaseMVPFragment<FgVideoLayoutBinding,MainVide
|
|
|
teachingToolsView.setTextColor(R.color.color_383a3d);
|
|
|
}
|
|
|
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
|
|
- layoutParams.setMargins(operateItem.left, 0, operateItem.right, 0);
|
|
|
+ layoutParams.setMargins(operateItem.left, 0, operateItem.right, 0);
|
|
|
// if (i != rightItems.size() - 1) {
|
|
|
// } else {
|
|
|
// layoutParams.setMargins(0, 0, 0, 0);
|
|
@@ -477,9 +477,8 @@ public class VideoFragment extends BaseMVPFragment<FgVideoLayoutBinding,MainVide
|
|
|
if (!TextUtils.isEmpty(tUserId)) {
|
|
|
userIds.add(tUserId);
|
|
|
}
|
|
|
-// shareVideoView.removeVideoView();
|
|
|
-// shareVideoView.onPause();
|
|
|
ScreenDisplay.Display type = screenDisplay.getType();
|
|
|
+ showCameraTip(screenDisplay.getUserId());
|
|
|
switchTipVisibility(type == ScreenDisplay.Display.LECTURER || type == ScreenDisplay.Display.ASSISTANT || type == ScreenDisplay.Display.STUDENT);
|
|
|
if (type == ScreenDisplay.Display.LECTURER || type == ScreenDisplay.Display.ASSISTANT) {
|
|
|
String userId = screenDisplay.getUserId();
|
|
@@ -505,14 +504,7 @@ public class VideoFragment extends BaseMVPFragment<FgVideoLayoutBinding,MainVide
|
|
|
updateLocalPreview(shareVideoView);
|
|
|
}
|
|
|
}
|
|
|
- //显示老师自己的时候 判断是否需要显示摄像头提示
|
|
|
- TeachingToolsView cbCamera = getToolsView(BtnOperate.CAMERA.getValue());
|
|
|
- boolean checked = cbCamera.isChecked();
|
|
|
- LOG.i("cameraView isChecked:"+checked);
|
|
|
- ivCameraStatusTip.setVisibility(checked ? View.VISIBLE : View.GONE);
|
|
|
-
|
|
|
displayNull.setVisibility(View.GONE);
|
|
|
-
|
|
|
} else if (type == ScreenDisplay.Display.STUDENT) {
|
|
|
String userId = screenDisplay.getUserId();
|
|
|
controlCameraBt(true);
|
|
@@ -536,7 +528,6 @@ public class VideoFragment extends BaseMVPFragment<FgVideoLayoutBinding,MainVide
|
|
|
//根据userId,切换到对应的视频
|
|
|
shareVideoView.setVisibility(View.VISIBLE);
|
|
|
displayNull.setVisibility(View.GONE);
|
|
|
- ivCameraStatusTip.setVisibility(View.GONE);
|
|
|
startRemote(userId, shareVideoView);
|
|
|
} else if (type == null || type == ScreenDisplay.Display.NONE) {
|
|
|
if (Role.LECTURER == userInfoValue.getRole()) {
|
|
@@ -601,7 +592,10 @@ public class VideoFragment extends BaseMVPFragment<FgVideoLayoutBinding,MainVide
|
|
|
return;
|
|
|
}
|
|
|
} else {
|
|
|
-
|
|
|
+ if (deviceChange.deviceType == DeviceType.Camera) {
|
|
|
+ showCameraTip(deviceChange.userId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -643,10 +637,45 @@ public class VideoFragment extends BaseMVPFragment<FgVideoLayoutBinding,MainVide
|
|
|
return value != null && value;
|
|
|
}
|
|
|
|
|
|
+ private void showCameraTip(String targetUserId) {
|
|
|
+ loadCameraCloseTip(targetUserId);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void loadCameraCloseTip(String targetUserId) {
|
|
|
+ ScreenDisplay screenDisplay = classViewModel.getDisplay().getValue();
|
|
|
+ if (screenDisplay == null) {
|
|
|
+ ivCameraStatusTip.setVisibility(View.GONE);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (!TextUtils.equals(targetUserId, screenDisplay.getUserId())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ ScreenDisplay.Display type = screenDisplay.getType();
|
|
|
+ if (type != ScreenDisplay.Display.LECTURER && type != ScreenDisplay.Display.STUDENT) {
|
|
|
+ ivCameraStatusTip.setVisibility(View.GONE);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ ClassMember classMember = screenDisplay.getClassMember();
|
|
|
+ if (classMember == null) {
|
|
|
+ ivCameraStatusTip.setVisibility(View.GONE);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (classMember.isCamera()) {
|
|
|
+ ivCameraStatusTip.setVisibility(View.GONE);
|
|
|
+ } else {
|
|
|
+ ivCameraStatusTip.loadAvatar(classMember.getHeadUrl());
|
|
|
+ ivCameraStatusTip.setVisibility(View.VISIBLE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private boolean isOnMainDisplay(String userId) {
|
|
|
ScreenDisplay value = classViewModel.getDisplay().getValue();
|
|
|
if (value != null && TextUtils.equals(value.getUserId(), userId)) {
|
|
|
- if(value.getType() == ScreenDisplay.Display.STUDENT || value.getType() == ScreenDisplay.Display.LECTURER){
|
|
|
+ if (value.getType() == ScreenDisplay.Display.STUDENT || value.getType() == ScreenDisplay.Display.LECTURER) {
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
@@ -707,8 +736,8 @@ public class VideoFragment extends BaseMVPFragment<FgVideoLayoutBinding,MainVide
|
|
|
|
|
|
private void changeCameraState(boolean isEnable) {
|
|
|
presenter.changeCameraEnable(!isEnable);//设置mute video流
|
|
|
- if(isOnMainDisplay(userInfoValue.getUserId())){
|
|
|
- ivCameraStatusTip.setVisibility(isEnable ? View.GONE : View.VISIBLE);
|
|
|
+ if (isOnMainDisplay(userInfoValue.getUserId())) {
|
|
|
+ showCameraTip(userInfoValue.getUserId());
|
|
|
TeachingToolsView cbCamera = getToolsView(BtnOperate.CAMERA.getValue());
|
|
|
if (cbCamera != null) {
|
|
|
cbCamera.setChecked(!isEnable);
|
|
@@ -718,7 +747,7 @@ public class VideoFragment extends BaseMVPFragment<FgVideoLayoutBinding,MainVide
|
|
|
|
|
|
private void changeMicPhoneState(boolean isEnable) {
|
|
|
presenter.changeMicPhone(!isEnable);
|
|
|
- if(isOnMainDisplay(userInfoValue.getUserId())){
|
|
|
+ if (isOnMainDisplay(userInfoValue.getUserId())) {
|
|
|
TeachingToolsView cbMic = getToolsView(BtnOperate.MIC.getValue());
|
|
|
if (cbMic != null) {
|
|
|
changeMicStatus(cbMic, !isEnable);
|
|
@@ -904,7 +933,7 @@ public class VideoFragment extends BaseMVPFragment<FgVideoLayoutBinding,MainVide
|
|
|
if (banedCameraBox == null) {
|
|
|
return;
|
|
|
}
|
|
|
- LOG.i(TAG,"setViewStatus:"+userInfo.toString());
|
|
|
+ LOG.i(TAG, "setViewStatus:" + userInfo.toString());
|
|
|
if (hasVideoPermssion) {
|
|
|
// 因为按钮 false 是否代表不禁止, true 待变禁止, 所以和 用户信息携带的状态值相反
|
|
|
if (banedCameraBox.isChecked() == userInfo.isCamera()) {
|