123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- package com.dayayuemeng.classroom.helper;
- import android.Manifest;
- import android.app.Activity;
- import android.text.TextUtils;
- import android.view.View;
- import android.widget.TextView;
- import com.alibaba.android.arouter.launcher.ARouter;
- import com.cooleshow.base.common.BaseApplication;
- import com.cooleshow.base.router.RouterPath;
- import com.cooleshow.base.utils.PermissionUtils;
- import com.cooleshow.base.utils.ToastUtil;
- import com.cooleshow.base.utils.UiUtils;
- import com.cooleshow.base.utils.helper.PermissionTipHelper;
- import com.cooleshow.base.widgets.DialogUtil;
- import com.cooleshow.base.widgets.dialog.CommonConfirmDialog;
- import com.cooleshow.usercenter.helper.UserHelper;
- import com.dayayuemeng.classroom.api.ResultCallback;
- import com.dayayuemeng.classroom.bean.LoginResult;
- import com.dayayuemeng.classroom.constants.ARouterSealClass;
- import com.dayayuemeng.classroom.repository.UserRepository;
- import com.tbruyelle.rxpermissions3.RxPermissions;
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.fragment.app.FragmentActivity;
- import io.reactivex.rxjava3.disposables.Disposable;
- /**
- * Author by pq, Date on 2023/8/18.
- */
- public class OpenClassRoomHelper {
- public static final String SNARE_DRUM = "小军鼓";
- public static final String FLUTE = "长笛";
- // 两次点击按钮之间的点击间隔不能少于1000毫秒
- private static final int MIN_CLICK_DELAY_TIME = 1000;
- private static long lastClickTime;
- public static boolean isFastClick() {
- boolean flag = false;
- long curClickTime = System.currentTimeMillis();
- if ((curClickTime - lastClickTime) < MIN_CLICK_DELAY_TIME) {
- flag = true;
- }
- lastClickTime = curClickTime;
- return flag;
- }
- public static void start(FragmentActivity activity, String sealClassId, String subjectName) {
- if (isFastClick()) {
- return;
- }
- checkPermission(activity, sealClassId, subjectName);
- }
- private static void checkPermission(FragmentActivity activity, String sealClassId, String subjectName) {
- String[] permissions = new String[]{Manifest.permission.MODIFY_AUDIO_SETTINGS,
- Manifest.permission.RECORD_AUDIO,
- Manifest.permission.CAMERA,
- Manifest.permission.WRITE_EXTERNAL_STORAGE};
- PermissionTipHelper.getInstance().showTipDialog(activity, permissions);
- Disposable subscribe = new RxPermissions(activity)
- .request(permissions)
- .subscribe(isAllowPermission -> {
- PermissionTipHelper.getInstance().dismissDialog();
- if (isAllowPermission) {
- prepareOpenCourseRoom(activity, sealClassId, subjectName);
- } else {
- showTipDialog(activity);
- }
- });
- }
- private static void prepareOpenCourseRoom(Activity activity, String sealClassId, String subjectName) {
- UserRepository userRepository = new UserRepository(activity);
- String userName = UserHelper.getUserName();
- userRepository.login(sealClassId, false, userName, new ResultCallback<LoginResult>() {
- @Override
- public void onSuccess(LoginResult loginResult) {
- String path = ARouterSealClass.ACTIVITY_CLASS_ROOM;
- if (!BaseApplication.Companion.isTeacherClient()) {
- path = ARouterSealClass.ACTIVITY_CLASS_ROOM_STU;
- }
- ARouter.getInstance().build(path)
- .withSerializable("extra_login_result", loginResult)
- .navigation();
- }
- @Override
- public void onFail(int errorCode, String errorStr) {
- if (activity != null) {
- activity.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- if (!TextUtils.isEmpty(errorStr)) {
- ToastUtil.getInstance().show(activity, errorStr);
- } else {
- ToastUtil.getInstance().show(activity, "加入课堂失败,请重试;错误码:" + errorCode);
- }
- }
- });
- }
- }
- });
- }
- private static void showTipDialog(FragmentActivity activity) {
- // CommonConfirmDialog confirmDialog = new CommonConfirmDialog(activity);
- // confirmDialog.show();
- // confirmDialog.setContent("加入课堂需要开启音视频相关权限");
- // confirmDialog.setConfirmText("去设置");
- // confirmDialog.setOnConfirmClickListener(new View.OnClickListener() {
- // @Override
- // public void onClick(View v) {
- // PermissionUtils.toSelfSetting(activity);
- // }
- // });
- UiUtils.showPermissionTipDialog(activity.getSupportFragmentManager(), activity, "提示", "请开启相机、麦克风访问和存储等相关权限");
- }
- }
|