Browse Source

增加网络教室白板模式弹幕消息的控制逻辑

Pq 1 year ago
parent
commit
8e903f3760

+ 1 - 0
classRoom/src/main/java/com/dayayuemeng/classroom/ui/TeacherNetClassRoomActivity.java

@@ -1053,6 +1053,7 @@ public class TeacherNetClassRoomActivity extends BaseMVPActivity<AcNetClassRoomT
         FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
         transaction.setCustomAnimations(R.anim.slid_left_in, R.anim.slid_left_out);
         if (NewTeachingToolsFragment.Operate.SHARE_WHITE_BOARD == operate) {
+            classViewModel.getBarrageMessageEvent().postValue(false);
             isNeedCheckPackUpWhiteBoardMode = true;
             BaseWhiteFragment whiteBoardFragment;
             whiteBoardFragment = (BaseWhiteFragment) getSupportFragmentManager().findFragmentByTag("whiteBoardFragment");

+ 20 - 7
classRoom/src/main/java/com/dayayuemeng/classroom/ui/fragment/NewTopOperateControlFragment.java

@@ -47,7 +47,7 @@ import androidx.lifecycle.ViewModelProviders;
  * Author by pq, Date on 2023/4/24.
  * fg_top_operate_control
  */
-public class NewTopOperateControlFragment extends BaseMVPFragment<FgTopOperateControlBinding,TopOperateControlPresenter> implements HeadsetPlugReceiver.OnHeadsetPlugListener, TopOperateControlView.View, View.OnClickListener {
+public class NewTopOperateControlFragment extends BaseMVPFragment<FgTopOperateControlBinding, TopOperateControlPresenter> implements HeadsetPlugReceiver.OnHeadsetPlugListener, TopOperateControlView.View, View.OnClickListener {
     public static final String TAG = "NewTopFragment";
     //    // 按钮的资源布局
     private int[] leftbBtnBgResIds = new int[]{
@@ -152,6 +152,17 @@ public class NewTopOperateControlFragment extends BaseMVPFragment<FgTopOperateCo
             }
         });
 
+        classViewModel.getBarrageMessageEvent().observe(this, new Observer<Boolean>() {
+            @Override
+            public void onChanged(Boolean aBoolean) {
+                if (aBoolean != null && aBoolean) {
+                    switchBarrageMessageIcon(true);
+                } else {
+                    switchBarrageMessageIcon(false);
+                }
+            }
+        });
+
         if (!BaseApplication.Companion.isTeacherClient()) {
             classViewModel.getDisplay().observe(this, new Observer<ScreenDisplay>() {
                 @Override
@@ -296,13 +307,14 @@ public class NewTopOperateControlFragment extends BaseMVPFragment<FgTopOperateCo
                 break;
             case CHAT_BARRAGE:
                 if (ClassRoomConstants.isShowBarrageMessage) {
-                    ClassRoomConstants.isShowBarrageMessage = false;
                     classViewModel.getBarrageMessageEvent().postValue(false);
-                    switchBarrageMessageIcon(false);
                 } else {
-                    ClassRoomConstants.isShowBarrageMessage = true;
+                    boolean whiteBoardMode = classViewModel.isWhiteBoardMode();
+                    if (whiteBoardMode) {
+                        classViewModel.getToastEvent().postValue("白板模式下不可开启弹幕");
+                        return;
+                    }
                     classViewModel.getBarrageMessageEvent().postValue(true);
-                    switchBarrageMessageIcon(true);
                 }
                 break;
         }
@@ -343,6 +355,7 @@ public class NewTopOperateControlFragment extends BaseMVPFragment<FgTopOperateCo
     }
 
     private void switchBarrageMessageIcon(boolean isShow) {
+        ClassRoomConstants.isShowBarrageMessage = isShow;
         View view = rightViews.get(RightOperate.CHAT_BARRAGE.getValue());
         if (view != null) {
             ImageView imageView = view.findViewById(R.id.iv_icon);
@@ -358,9 +371,9 @@ public class NewTopOperateControlFragment extends BaseMVPFragment<FgTopOperateCo
 
 
     private void showExitDialog() {
-        ExitConfirmDialog exitConfirmDialog =new ExitConfirmDialog(getContext());
+        ExitConfirmDialog exitConfirmDialog = new ExitConfirmDialog(getContext());
         exitConfirmDialog.show();
-        exitConfirmDialog.setTitleAndContent("提示","是否退出课堂?");
+        exitConfirmDialog.setTitleAndContent("提示", "是否退出课堂?");
         exitConfirmDialog.setOnConfirmClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {

+ 20 - 12
classRoom/src/main/java/com/dayayuemeng/classroom/viewmodel/ClassViewModel.java

@@ -36,6 +36,7 @@ import com.dayayuemeng.classroom.model.ScreenDisplay;
 import com.dayayuemeng.classroom.model.VideoClassMemberData;
 import com.dayayuemeng.classroom.repository.ClassRepository;
 import com.google.gson.Gson;
+
 import java.io.File;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -640,7 +641,6 @@ public class ClassViewModel extends ViewModel {
     }
 
 
-
     /**
      * 用户被踢
      *
@@ -1119,7 +1119,7 @@ public class ClassViewModel extends ViewModel {
         classRepository.deviceSyncHandUpOn(roomId, userId, handUpOn, new ResultCallback<Boolean>() {
             @Override
             public void onSuccess(Boolean result) {
-                getToastEvent().setValue(handUpOn ? "您已成功举手" :"您已取消举手");
+                getToastEvent().setValue(handUpOn ? "您已成功举手" : "您已取消举手");
                 stateLiveData.success();
             }
 
@@ -1200,8 +1200,8 @@ public class ClassViewModel extends ViewModel {
      * @param microphone
      * @return
      */
-    public LiveData<RequestState> batchControlMicrophone(String roomId, boolean microphone,boolean cancelFlag) {
-        return batchControlMicrophone(roomId, null, microphone,cancelFlag);
+    public LiveData<RequestState> batchControlMicrophone(String roomId, boolean microphone, boolean cancelFlag) {
+        return batchControlMicrophone(roomId, null, microphone, cancelFlag);
     }
 
     /**
@@ -1238,10 +1238,10 @@ public class ClassViewModel extends ViewModel {
      * @return
      */
     public LiveData<RequestState> batchControlMicrophone(String roomId, String userId,
-                                                         boolean microphone,boolean cancelFlag) {
+                                                         boolean microphone, boolean cancelFlag) {
         final StateLiveData stateLiveData = new StateLiveData();
         stateLiveData.loading();
-        classRepository.batchControlMicrophone(roomId, userId, microphone,cancelFlag, new ResultCallback<Boolean>() {
+        classRepository.batchControlMicrophone(roomId, userId, microphone, cancelFlag, new ResultCallback<Boolean>() {
             @Override
             public void onSuccess(Boolean result) {
                 stateLiveData.success();
@@ -1263,10 +1263,10 @@ public class ClassViewModel extends ViewModel {
      * @param
      * @return
      */
-    public LiveData<RequestState> batchControlMuteCancelFlag(String roomId,boolean cancelFlag) {
+    public LiveData<RequestState> batchControlMuteCancelFlag(String roomId, boolean cancelFlag) {
         final StateLiveData stateLiveData = new StateLiveData();
         stateLiveData.loading();
-        classRepository.batchControlMuteCancelFlag(roomId,cancelFlag, new ResultCallback<Boolean>() {
+        classRepository.batchControlMuteCancelFlag(roomId, cancelFlag, new ResultCallback<Boolean>() {
             @Override
             public void onSuccess(Boolean result) {
                 stateLiveData.success();
@@ -1764,7 +1764,7 @@ public class ClassViewModel extends ViewModel {
         classRepository.createWhiteBoard(roomId, new ResultCallback<WhiteCreateBean>() {
             @Override
             public void onSuccess(WhiteCreateBean result) {
-                LOG.i("pq","createWhiteBoard onSuccess:"+result);
+                LOG.i("pq", "createWhiteBoard onSuccess:" + result);
                 createWhiteBoard.postValue(result);
             }
 
@@ -1811,7 +1811,7 @@ public class ClassViewModel extends ViewModel {
         LOG.i("白板问题==WhiteBoardInsertImage  = fileUrl==" + fileUrl);
         final StateLiveData stateLiveData = new StateLiveData();
         stateLiveData.loading();
-        UploadHelper uploadHelper = new UploadHelper(null,"");
+        UploadHelper uploadHelper = new UploadHelper(null, "");
         uploadHelper.uploadFile(new File(fileUrl));
         uploadHelper.setUpLoadCallBack(new UploadHelper.UpLoadCallBack() {
             @Override
@@ -2281,7 +2281,7 @@ public class ClassViewModel extends ViewModel {
             if (!isInList) {
                 memberListValue.add(classMember);
                 memberList.postValue(sortClassMember(memberListValue));
-            }else{
+            } else {
                 updateClassMember(classMember);
             }
         } else {
@@ -3028,6 +3028,14 @@ public class ClassViewModel extends ViewModel {
     }
 
     public void getCoursewareList(String searchStr, int page, CoursewareDataResultCallBack<CoursewareListBean> callBack) {
-        classRepository.getCoursewareList(searchStr, page,callBack);
+        classRepository.getCoursewareList(searchStr, page, callBack);
+    }
+
+    public boolean isWhiteBoardMode() {
+        ScreenDisplay screenDisplay = getDisplay().getValue();
+        if (screenDisplay != null && screenDisplay.getType() == ScreenDisplay.Display.WHITEBOARD) {
+            return true;
+        }
+        return false;
     }
 }