|
@@ -0,0 +1,439 @@
|
|
|
+package com.dayayuemeng.classroom.repository;
|
|
|
+
|
|
|
+import android.content.Context;
|
|
|
+import android.text.TextUtils;
|
|
|
+
|
|
|
+
|
|
|
+import com.cooleshow.base.constanst.Constants;
|
|
|
+import com.cooleshow.base.data.net.RetrofitClientNoToken;
|
|
|
+import com.cooleshow.base.data.net.RetrofitFactory;
|
|
|
+import com.cooleshow.base.rx.BaseObserver;
|
|
|
+import com.cooleshow.base.utils.DeviceUtil;
|
|
|
+import com.cooleshow.base.utils.DeviceUtils;
|
|
|
+import com.cooleshow.base.utils.FileUtils;
|
|
|
+import com.dayayuemeng.classroom.api.LiveTeachingApi;
|
|
|
+import com.dayayuemeng.classroom.api.ResultCallback;
|
|
|
+import com.dayayuemeng.classroom.api.WhiteBoardApi;
|
|
|
+import com.dayayuemeng.classroom.api.retrofit.CallBackWrapper;
|
|
|
+import com.dayayuemeng.classroom.api.retrofit.RetrofitClient;
|
|
|
+import com.dayayuemeng.classroom.api.retrofit.RetrofitUtil;
|
|
|
+import com.dayayuemeng.classroom.bean.ClassMember;
|
|
|
+import com.dayayuemeng.classroom.bean.LoginResult;
|
|
|
+import com.dayayuemeng.classroom.bean.WhiteCreateBean;
|
|
|
+
|
|
|
+import java.io.File;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
|
|
+import io.reactivex.rxjava3.schedulers.Schedulers;
|
|
|
+import okhttp3.MultipartBody;
|
|
|
+import okhttp3.RequestBody;
|
|
|
+import okhttp3.ResponseBody;
|
|
|
+import retrofit2.Call;
|
|
|
+import retrofit2.Callback;
|
|
|
+import retrofit2.Response;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 课堂数据仓库
|
|
|
+ */
|
|
|
+public class ClassRepository extends BaseRepository {
|
|
|
+ private static final String PARAM_ROOM_ID = "roomId";
|
|
|
+ private static final String PARAM_USER_ID = "userId";
|
|
|
+ private static final String PARAM_CAMERA_ON = "cameraOn";
|
|
|
+ // 5 原音6 伴奏
|
|
|
+ private static final String PARAM_DEVICE_TYPE = "deviceType";
|
|
|
+ private static final String PARAM_SOUND_VOLUME = "soundVolume";
|
|
|
+ private static final String MUSIC_MODE_ON = "musicModeOn";
|
|
|
+ private static final String PARAM_MIC_ON = "microphoneOn";
|
|
|
+ private static final String CANCEL_MUTE_FLAG = "cancelMuteFlag";
|
|
|
+ private static final String HAND_UP_ON = "handUpOn";
|
|
|
+ private static final String MUSIC_SCORE_ON = "musicScoreOn";
|
|
|
+ private static final String ACCOMPANIMENT_ON = "accompanimentOn";
|
|
|
+ private static final String PARAM_USERS = "users";
|
|
|
+ private static final String PARAM_TICKET = "ticket";
|
|
|
+ private static final String PARAM_ROLE = "role";
|
|
|
+ private static final String PARAM_WHITEBOARD_ID = "whiteboardId";
|
|
|
+ private static final String EXAM_SONG_ID = "musicScoreAccompanimentId";
|
|
|
+ private static final String PARAM_TYPE = "type";
|
|
|
+ private static final String PARAM_URI = "uri";
|
|
|
+ private LiveTeachingApi sealClassService;
|
|
|
+ private LiveTeachingApi liveClassNoToken;
|
|
|
+ private WhiteBoardApi whiteBoardService;
|
|
|
+
|
|
|
+ public ClassRepository(Context context) {
|
|
|
+ super(context);
|
|
|
+ sealClassService = getService(LiveTeachingApi.class);
|
|
|
+ liveClassNoToken = RetrofitClientNoToken.getInstance().getRetrofit().create(LiveTeachingApi.class);
|
|
|
+ whiteBoardService = RetrofitFactory.Companion.getInstance().create(WhiteBoardApi.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void leave(String roomId, String userId, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ bodyMap.put("deviceNum", DeviceUtils.getAndroidID());
|
|
|
+ sealClassService.leave(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void kickOff(String roomId, String userId, final ResultCallback<Boolean> callBack) {
|
|
|
+
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ sealClassService.kickOff(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void queryNoJoinStu(String roomId, final ResultCallback<List<ClassMember>> callBack) {
|
|
|
+ sealClassService.queryNoJoinStu(roomId).enqueue(new CallBackWrapper<List<ClassMember>>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void controlCamera(String roomId, String userId, boolean cameraOn, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ bodyMap.put(PARAM_CAMERA_ON, cameraOn);
|
|
|
+ sealClassService.deviceControl(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void controlVolume(String roomId, String userId, boolean cameraOn, String deviceType, String soundVolume, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ bodyMap.put(PARAM_CAMERA_ON, cameraOn);
|
|
|
+ bodyMap.put(PARAM_DEVICE_TYPE, deviceType);
|
|
|
+ bodyMap.put(PARAM_SOUND_VOLUME, soundVolume);
|
|
|
+ sealClassService.deviceControl(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void sendImPlayMidiMessage(String userId, String roomId, boolean enable, int rate, int customType, int playVolume, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ HashMap<String, Object> contentMap = new HashMap<>();
|
|
|
+ contentMap.put(PARAM_USER_ID, userId);
|
|
|
+ contentMap.put("enable", enable);
|
|
|
+ contentMap.put("rate", rate);
|
|
|
+ contentMap.put("customType", customType);
|
|
|
+ contentMap.put("playVolume", playVolume);
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ bodyMap.put("content", contentMap);
|
|
|
+ sealClassService.sendImPlayMidiMessage(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void controlMicrophone(String roomId, String userId, boolean microphone, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ bodyMap.put(PARAM_MIC_ON, microphone);
|
|
|
+ sealClassService.deviceControl(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void controlHandUpOn(String roomId, String userId, boolean handUpOn, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ bodyMap.put(HAND_UP_ON, handUpOn);
|
|
|
+ sealClassService.deviceControl(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void controlMusicMode(String roomId, String userId, boolean musicModeOn, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ bodyMap.put(MUSIC_MODE_ON, musicModeOn);
|
|
|
+ sealClassService.deviceControl(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void batchControlCamera(String roomId, boolean cameraOn, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_CAMERA_ON, cameraOn);
|
|
|
+ sealClassService.deviceBatchControl(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void batchControlMusicMode(String roomId, boolean microphone, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(MUSIC_MODE_ON, microphone);
|
|
|
+ sealClassService.deviceBatchControl(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void batchControlMicrophone(String roomId, String userId, boolean musicModeOn, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ bodyMap.put(PARAM_MIC_ON, musicModeOn);
|
|
|
+ sealClassService.deviceBatchControl(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void batchControlMicrophone(String roomId, String userId, boolean musicModeOn, boolean cancelFlag, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ bodyMap.put(PARAM_MIC_ON, musicModeOn);
|
|
|
+ bodyMap.put(CANCEL_MUTE_FLAG, cancelFlag);
|
|
|
+ sealClassService.deviceBatchControl(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void batchControlMuteCancelFlag(String roomId, boolean cancelFlag, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(CANCEL_MUTE_FLAG, cancelFlag);
|
|
|
+ sealClassService.deviceBatchControl(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ //伴奏
|
|
|
+ public void batchControlExamSong(String roomId, String userId, String musicScoreOn, String accompanimentOn, String musicScoreAccompanimentId, String soudnValue, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ bodyMap.put(MUSIC_SCORE_ON, musicScoreOn);
|
|
|
+ bodyMap.put(ACCOMPANIMENT_ON, accompanimentOn);
|
|
|
+ bodyMap.put(EXAM_SONG_ID, musicScoreAccompanimentId);
|
|
|
+ bodyMap.put(PARAM_SOUND_VOLUME, soudnValue);
|
|
|
+ sealClassService.deviceBatchControl(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void controlExamSong(String roomId, String userId, String musicScoreOn, String accompanimentOn, String musicScoreAccompanimentId, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ bodyMap.put(MUSIC_SCORE_ON, musicScoreOn);
|
|
|
+ bodyMap.put(ACCOMPANIMENT_ON, accompanimentOn);
|
|
|
+ bodyMap.put(EXAM_SONG_ID, musicScoreAccompanimentId);
|
|
|
+ sealClassService.deviceControl(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void deviceApprove(String roomId, String ticket, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_TICKET, ticket);
|
|
|
+ sealClassService.deviceApprove(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void deviceReject(String roomId, String ticket, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_TICKET, ticket);
|
|
|
+ sealClassService.deviceReject(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void deviceSyncHandUpOn(String roomId, String userId, boolean handUpOn, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(HAND_UP_ON, handUpOn);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ sealClassService.deviceSync(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void deviceSyncMusicMode(String roomId, boolean musicModeOn, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(MUSIC_MODE_ON, musicModeOn);
|
|
|
+ sealClassService.deviceSync(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void deviceSyncCamera(String roomId, boolean cameraOn, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_CAMERA_ON, cameraOn);
|
|
|
+ sealClassService.deviceSync(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void deviceSyncMic(String roomId, boolean microphoneOn, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_MIC_ON, microphoneOn);
|
|
|
+ sealClassService.deviceSync(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void deviceSyncExamSong(String roomId, boolean examSong, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(MUSIC_SCORE_ON, examSong);
|
|
|
+ sealClassService.deviceSync(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void applySpeech(String roomId, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ sealClassService.applySpeech(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void approveSpeech(String roomId, String ticket, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_TICKET, ticket);
|
|
|
+ sealClassService.applyApprove(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void rejectSpeech(String roomId, String ticket, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_TICKET, ticket);
|
|
|
+ sealClassService.applyReject(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void transferRole(String roomId, String userId, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ sealClassService.transferRole(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void upgradeIntive(String roomId, String userId, int role, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ bodyMap.put(PARAM_ROLE, role);
|
|
|
+ sealClassService.upgradeInvite(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void upgradeApprove(String roomId, String ticket, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_TICKET, ticket);
|
|
|
+ sealClassService.upgradeApprove(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void upgradeReject(String roomId, String ticket, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_TICKET, ticket);
|
|
|
+ sealClassService.upgradeReject(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void changeRole(String roomId, String userId, int role, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ bodyMap.put(PARAM_ROLE, role);
|
|
|
+ sealClassService.changeRole(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<Boolean>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建白板
|
|
|
+ *
|
|
|
+ * @param roomId
|
|
|
+ * @param callBack
|
|
|
+ */
|
|
|
+ public void createWhiteBoard(String roomId, ResultCallback<WhiteCreateBean> callBack) {
|
|
|
+ whiteBoardService.hereWhiteCreat("Page1", 0, roomId)
|
|
|
+ .subscribeOn(Schedulers.newThread())
|
|
|
+ .observeOn(AndroidSchedulers.mainThread())
|
|
|
+ .subscribeWith(new BaseObserver<WhiteCreateBean>() {
|
|
|
+ @Override
|
|
|
+ protected void onSuccess(WhiteCreateBean data) {
|
|
|
+ callBack.onSuccess(data);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通知学生下载伴奏
|
|
|
+ *
|
|
|
+ * @param roomId
|
|
|
+ */
|
|
|
+ public void pushDownloadexamSongMsg(String roomId, String musicScoreAccompanimentId, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(EXAM_SONG_ID, musicScoreAccompanimentId);
|
|
|
+ sealClassService.pushDownloadexamSongMsg(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 同步学生下载结果
|
|
|
+ *
|
|
|
+ * @param roomId
|
|
|
+ */
|
|
|
+ public void adjustExamSong(String roomId, String musicScoreAccompanimentId, int status, ResultCallback<Boolean> callBack) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(EXAM_SONG_ID, musicScoreAccompanimentId);
|
|
|
+ bodyMap.put("status", status);
|
|
|
+ sealClassService.adjustExamSong(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<>(callBack));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 课程申诉
|
|
|
+ */
|
|
|
+ public void addComplaints(String courseScheduleId, String url, String content, ResultCallback<Boolean> callBack) {
|
|
|
+ whiteBoardService.addComplaints(courseScheduleId, url, content, "ALL")
|
|
|
+ .subscribeOn(Schedulers.newThread())
|
|
|
+ .observeOn(AndroidSchedulers.mainThread())
|
|
|
+ .subscribeWith(new BaseObserver<String>() {
|
|
|
+ @Override
|
|
|
+ protected void onSuccess(String data) {
|
|
|
+ callBack.onSuccess(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onError(Throwable e) {
|
|
|
+ super.onError(e);
|
|
|
+ callBack.onFail(-1, null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 下载文件
|
|
|
+ */
|
|
|
+ public void downloadFile(String fileUrl, String filePath, String fileName, ResultCallback<Boolean> callback) {
|
|
|
+ liveClassNoToken.downloadFileWithFixedUrl(fileUrl).enqueue(new Callback<ResponseBody>() {
|
|
|
+ @Override
|
|
|
+ public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
|
|
|
+ if (FileUtils.writeFileToSDCard(response.body(), filePath, fileName)) {
|
|
|
+ callback.onSuccess(true);
|
|
|
+ } else {
|
|
|
+ callback.onSuccess(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFailure(Call<ResponseBody> call, Throwable t) {
|
|
|
+ callback.onSuccess(false);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 切换共享画布区显示内容
|
|
|
+ *
|
|
|
+ * @param roomId 房间Id
|
|
|
+ * @param type 显示类型,参考{@link ScreenDisplay.Display}
|
|
|
+ * @param userId 当显示类型为用户时,传入该用户的id
|
|
|
+ * @param uri 当显示类型为白板时,传入白板id
|
|
|
+ * @param callback
|
|
|
+ */
|
|
|
+ public void switchDisplay(String roomId, int type, String userId, String uri, ResultCallback<Boolean> callback) {
|
|
|
+ HashMap<String, Object> bodyMap = new HashMap<>();
|
|
|
+ bodyMap.put(PARAM_ROOM_ID, roomId);
|
|
|
+ bodyMap.put(PARAM_TYPE, type);
|
|
|
+ if (userId != null) {
|
|
|
+ bodyMap.put(PARAM_USER_ID, userId);
|
|
|
+ }
|
|
|
+ if (uri != null) {
|
|
|
+ bodyMap.put(PARAM_URI, uri);
|
|
|
+ }
|
|
|
+ sealClassService.switchDisplay(RetrofitUtil.createJsonRequest(bodyMap)).enqueue(new CallBackWrapper<>(callback));
|
|
|
+ }
|
|
|
+
|
|
|
+ public void getRoomInfo(String roomId, ResultCallback<LoginResult> callBack) {
|
|
|
+ sealClassService.info(roomId).enqueue(new CallBackWrapper<LoginResult>(callBack));
|
|
|
+ }
|
|
|
+}
|