瀏覽代碼

增加老师端直播间计时规则逻辑

Pq 1 年之前
父節點
當前提交
7af7bf7734

+ 4 - 2
tclive/src/main/AndroidManifest.xml

@@ -17,14 +17,16 @@
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:launchMode="singleTask"
             android:screenOrientation="portrait"
-            android:windowSoftInputMode="adjustNothing" />
+            android:exported="false"
+            android:windowSoftInputMode="adjustResize" />
 
         <activity
             android:name=".ui.TCStudentLiveRoomActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:launchMode="singleTask"
             android:screenOrientation="portrait"
-            android:windowSoftInputMode="adjustPan">
+            android:exported="false"
+            android:windowSoftInputMode="adjustResize">
             <intent-filter>
                 <action android:name="com.daya.studaya_android.ui.live.tt.TTLiveRoomActivity" />
                 <category android:name="android.intent.category.DEFAULT" />

+ 2 - 2
tclive/src/main/java/com/daya/tclive/api/TeacherAPIService.java

@@ -27,8 +27,8 @@ public interface TeacherAPIService {
     @GET(teacher + "imLiveBroadcastRoom/queryRoom")
     Observable<BaseResponse<LiveRoomInfoBean>> getLiveRoomInfo(@Query("roomUid") String roomUid);
 
-    @GET(teacher + "teacherCourseSchedule/liveCourseScheduleTime")
-    Observable<BaseResponse<LiveCourseTimeInfo>> getLiveCourseInfo(@Query("courseScheduleId") String courseScheduleId);
+    @GET(teacher + "courseSchedule/liveCourseScheduleTime")
+    Observable<BaseResponse<LiveCourseTimeInfo>> getRoomCountTimeInfo(@Query("roomUid") String roomUid);
 
     /**
      * 同步服务端连麦模式 是否连麦 0:允许连麦 1禁止连麦模式

+ 1 - 1
tclive/src/main/java/com/daya/tclive/contract/TCLiveRoomContract.java

@@ -90,7 +90,7 @@ public interface TCLiveRoomContract {
 
         void onUserAudioAvailable(String userId, boolean available);
 
-        void getLiveCourseInfoSuccess(LiveCourseTimeInfo data);
+        void getRoomCountTimeInfoSuccess(LiveCourseTimeInfo data);
 
         void onLiveForceKick(TCLiveForceKickMessage messageContent);
 

+ 3 - 4
tclive/src/main/java/com/daya/tclive/presenter/TCLivePresenter.java

@@ -73,7 +73,6 @@ import io.reactivex.rxjava3.schedulers.Schedulers;
 import okhttp3.RequestBody;
 
 import static com.tencent.imsdk.v2.V2TIMManager.V2TIM_STATUS_LOGINED;
-import static com.tencent.imsdk.v2.V2TIMManager.V2TIM_STATUS_LOGINING;
 
 /**
  * Author by pq, Date on 2023/3/2.
@@ -235,13 +234,13 @@ public class TCLivePresenter extends BasePresenter<TCLiveRoomContract.TCLiveRoom
     }
 
 
-    public void getLiveCourseInfo(String courseId) {
-        addSubscribe(create(TeacherAPIService.class).getLiveCourseInfo(courseId), new BaseObserver<LiveCourseTimeInfo>(getView()) {
+    public void getRoomCountTimeInfo(String roomUid) {
+        addSubscribe(create(TeacherAPIService.class).getRoomCountTimeInfo(roomUid), new BaseObserver<LiveCourseTimeInfo>(getView()) {
             @Override
             protected void onSuccess(LiveCourseTimeInfo data) {
                 Log.i("pq", "getLiveCourseInfo success" + data);
                 if (getView() != null) {
-                    getView().getLiveCourseInfoSuccess(data);
+                    getView().getRoomCountTimeInfoSuccess(data);
                 }
             }
 

+ 18 - 20
tclive/src/main/java/com/daya/tclive/ui/TCTeacherLiveRoomActivity.java

@@ -87,6 +87,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.viewbinding.ViewBinding;
 import io.reactivex.rxjava3.disposables.Disposable;
+
 import com.daya.tclive.constants.TTLiveConfig;
 import com.tencent.trtc.TRTCStatistics;
 
@@ -94,7 +95,7 @@ import com.tencent.trtc.TRTCStatistics;
  * Author by pq, Date on 2023/3/2.
  */
 @Route(path = ARouterConstace.ACTIVITY_TC_LIVE_ROOM_TEACHER)
-public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacherLiveRoomLayoutBinding,TCLivePresenter> implements TCLiveRoomContract.TCLiveRoomView, SoftKeyboardUtil.OnSoftInputChangedListener, LiveRoomMicMemberHelper.OnEventListener, View.OnClickListener {
+public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacherLiveRoomLayoutBinding, TCLivePresenter> implements TCLiveRoomContract.TCLiveRoomView, SoftKeyboardUtil.OnSoftInputChangedListener, LiveRoomMicMemberHelper.OnEventListener, View.OnClickListener {
     TXCloudVideoView mVideoView;
     FrameLayout mFlCreateOptions;
     ConstraintLayout mCsMainLayout;
@@ -151,8 +152,8 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
     private long serviceTimeStamp = -1;//服务器时间节点
     private int currentCountType = LiveCourseCountTimeHelper.COUNT_TYPE_COURSE;
     private long autoCloseNetworkRoomTime = 0;//直播课到时间强制退出时间
-    private String liveCourseId = "";
     private String subjectId;
+    boolean isNeedCountTime = false;
 
     private Handler mHandler = new Handler(Looper.myLooper()) {
         @Override
@@ -392,9 +393,9 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
         mVideoView = viewBinding.liveVideoView;
         mFlCreateOptions = viewBinding.viewCreateOptions.flRoot;
         mCsMainLayout = viewBinding.viewMainLayout.csRoot;
-        recyclerMsg =viewBinding.viewMainLayout.recyclerMsg;
-        mFlJoinBarrage =viewBinding.viewMainLayout.flJoinBarrage;
-        mTvJoinBarrage =viewBinding.viewMainLayout.tvJoinBarrage;
+        recyclerMsg = viewBinding.viewMainLayout.recyclerMsg;
+        mFlJoinBarrage = viewBinding.viewMainLayout.flJoinBarrage;
+        mTvJoinBarrage = viewBinding.viewMainLayout.tvJoinBarrage;
         mFlSnapUpBarrage = viewBinding.viewMainLayout.flSnapUpBarrage;
         mTvSnapUpBarrage = viewBinding.viewMainLayout.tvSnapUpBarrage;
         mTvOnMicNumTip = viewBinding.viewMainLayout.tvOnMicNumTip;
@@ -432,9 +433,6 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
     public void initData() {
         super.initData();
         mRoomId = getIntent().getStringExtra(ROOMID_KEY);
-        if (getIntent().hasExtra(COURSE_ID_KEY)) {
-            liveCourseId = getIntent().getStringExtra(COURSE_ID_KEY);
-        }
         if (getIntent().hasExtra(SUBJECT_ID_KEY)) {
             subjectId = getIntent().getStringExtra(SUBJECT_ID_KEY);
         }
@@ -448,9 +446,6 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
             finish();
             return;
         }
-        if (isLiveCourse()) {
-            iconFinishLive.setImageResource(R.drawable.icon_live_course_pause);
-        }
         mUserId = UserHelper.getImUserId();
         mRoomMicMemberHelper = new LiveRoomMicMemberHelper();
         mRoomMicMemberHelper.setOnEventListener(this);
@@ -498,7 +493,7 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
 
     private void initLiveConfig() {
         Log.i("pq", "initPublishConfig");
-        presenter.initPublishConfig(this,mRoomId);
+        presenter.initPublishConfig(this, mRoomId);
         prepareInitRoom();
     }
 
@@ -569,7 +564,7 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
         mTvNumPeople.setText(String.format("%s人", LiveMemberHelper.getMemberCountText(peopleCount)));
     }
 
-    private void initClickListener(){
+    private void initClickListener() {
         viewBinding.viewCreateOptions.ivReverseCamera.setOnClickListener(this);
         viewBinding.viewCreateOptions.tvStartLive.setOnClickListener(this);
         viewBinding.viewCreateOptions.tvClose.setOnClickListener(this);
@@ -603,9 +598,7 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
                 //点开启直播之前再次验证一下房间信息
                 currentLiveMode = TTLiveConfig.LIVE_MODE_LIVE_START;
                 presenter.getRoomInfo(mRoomId);
-                if (!TextUtils.isEmpty(liveCourseId)) {
-                    presenter.getLiveCourseInfo(liveCourseId);
-                }
+                presenter.getRoomCountTimeInfo(mRoomId);
             }
         }
 
@@ -1512,17 +1505,22 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
     }
 
     @Override
-    public void getLiveCourseInfoSuccess(LiveCourseTimeInfo data) {
+    public void getRoomCountTimeInfoSuccess(LiveCourseTimeInfo data) {
         if (!checkActivityExist()) {
             return;
         }
         if (data != null && data.getCourseScheduleTimes() != null && data.getCourseScheduleTimes().size() > 0) {
+            isNeedCountTime = true;
+            subjectId = data.getSubjectId();
+            iconFinishLive.setImageResource(R.drawable.icon_live_course_pause);
             LiveCourseCountTimeHelper.getInstance().setTimeInfoList(data.getCourseScheduleTimes());
             long finishLimitTime = data.getAutoCloseNetworkRoomTime() * 60L * 1000;
             LiveCourseCountTimeHelper.getInstance().setAutoCloseNetworkRoomTime(finishLimitTime);
             this.serviceTimeStamp = data.getTimestamp();
             startCountTime();
         } else {
+            isNeedCountTime = false;
+            iconFinishLive.setImageResource(R.drawable.icon_live_room_close_menu);
             llCountTimeTip.setVisibility(View.GONE);
         }
     }
@@ -1554,8 +1552,8 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
 
     @Override
     public void onLiveCourseTimeChange() {
-        if (presenter != null && !TextUtils.isEmpty(liveCourseId)) {
-            presenter.getLiveCourseInfo(liveCourseId);
+        if (presenter != null && !TextUtils.isEmpty(mRoomId)) {
+            presenter.getRoomCountTimeInfo(mRoomId);
         }
     }
 
@@ -1668,7 +1666,7 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
 
 
     private boolean isLiveCourse() {
-        return !TextUtils.isEmpty(liveCourseId);
+        return isNeedCountTime;
     }
 
     @Override