Ver Fonte

Merge remote-tracking branch 'origin/dev' into dev

邓琴文 há 3 anos atrás
pai
commit
a368f31cb7
28 ficheiros alterados com 364 adições e 96 exclusões
  1. 12 0
      BaseLibrary/src/main/java/com/cooleshow/base/utils/UiUtils.java
  2. 32 0
      BaseLibrary/src/main/java/com/cooleshow/base/utils/helper/DialogHelper.java
  3. 35 1
      BaseLibrary/src/main/java/com/cooleshow/base/utils/helper/upload/UploadHelper.java
  4. 89 0
      BaseLibrary/src/main/java/com/cooleshow/base/widgets/UploadProgressLoading.kt
  5. 27 0
      BaseLibrary/src/main/res/layout/upload_progress_dialog.xml
  6. 3 2
      rong_im/common_im_ui/src/main/java/com/common/im/presenter/ChatGroupSettingPresenter.java
  7. 2 1
      rong_im/common_im_ui/src/main/java/com/common/im/presenter/ContactListPresenter.java
  8. 2 1
      rong_im/common_im_ui/src/main/java/com/common/im/presenter/ContactRoomListPresenter.java
  9. 3 2
      rong_im/common_im_ui/src/main/java/com/common/im/presenter/MessagePresenter.java
  10. 2 1
      rong_im/common_im_ui/src/main/java/com/common/im/ui/MessageFragment.java
  11. 2 1
      rong_im/common_im_ui/src/main/java/com/common/im/ui/activity/ChatGroupSettingActivity.java
  12. 3 2
      rong_im/kit/src/main/java/io/rong/imkit/GlideKitImageEngine.java
  13. 2 1
      rong_im/kit/src/main/java/io/rong/imkit/activity/ForwardSelectConversationActivity.java
  14. 3 1
      rong_im/kit/src/main/java/io/rong/imkit/conversationlist/model/GatheredConversation.java
  15. 3 1
      rong_im/kit/src/main/java/io/rong/imkit/conversationlist/provider/BaseConversationProvider.java
  16. 2 1
      rong_im/kit/src/main/java/io/rong/imkit/feature/mention/MentionMemberSelectActivity.java
  17. 2 0
      student/src/main/AndroidManifest.xml
  18. 13 1
      student/src/main/java/com/cooleshow/student/ui/main/CourseTableFragment.kt
  19. 17 3
      student/src/main/java/com/cooleshow/student/ui/main/MainActivity.java
  20. 2 1
      student/src/main/java/com/cooleshow/student/ui/web/HtmlActivity.java
  21. 23 29
      student/src/main/java/com/cooleshow/student/ui/web/WebActivity.java
  22. 2 0
      teacher/src/main/AndroidManifest.xml
  23. 4 0
      teacher/src/main/java/com/cooleshow/teacher/adapter/CourseTableListAdapter.kt
  24. 43 34
      teacher/src/main/java/com/cooleshow/teacher/ui/main/CourseTableFragment.kt
  25. 22 7
      teacher/src/main/java/com/cooleshow/teacher/ui/main/MainActivity.java
  26. 10 4
      teacher/src/main/java/com/cooleshow/teacher/ui/web/HtmlActivity.java
  27. 0 2
      teacher/src/main/java/com/cooleshow/teacher/ui/web/WebActivity.java
  28. 4 0
      usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/VerifyCodeLoginActivity.java

+ 12 - 0
BaseLibrary/src/main/java/com/cooleshow/base/utils/UiUtils.java

@@ -17,6 +17,7 @@ import android.view.ViewGroup;
 
 import com.cooleshow.base.widgets.span.QMUIAlignMiddleImageSpan;
 
+import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -170,4 +171,15 @@ public class UiUtils {
         return split;
     }
 
+
+    /**
+     * 保留2位小数
+     * @param targetValue
+     * @return
+     */
+    public static String convertDouble(double targetValue) {
+        BigDecimal bd = new BigDecimal(targetValue);
+        double result = bd.setScale(2, BigDecimal.ROUND_DOWN).doubleValue(); // 保留两位小数,不四舍五入(可选舍入模式)
+        return String.valueOf(result);
+    }
 }

+ 32 - 0
BaseLibrary/src/main/java/com/cooleshow/base/utils/helper/DialogHelper.java

@@ -0,0 +1,32 @@
+package com.cooleshow.base.utils.helper;
+
+import android.app.Activity;
+import android.widget.TextView;
+
+import com.cooleshow.base.utils.PermissionUtils;
+import com.cooleshow.base.widgets.DialogUtil;
+
+import androidx.fragment.app.FragmentActivity;
+
+/**
+ * Author by pq, Date on 2022/6/28.
+ */
+public class DialogHelper {
+    public static void showTipDialog(FragmentActivity context, String content) {
+        DialogUtil.showInCenter(context.getSupportFragmentManager(), com.cooleshow.base.R.layout.common_popu, (holder, dialog) -> {
+            TextView tvTitle = holder.getView(com.cooleshow.base.R.id.tv_title);
+            TextView tvContent = holder.getView(com.cooleshow.base.R.id.tv_content);
+            TextView btncancel = holder.getView(com.cooleshow.base.R.id.btn_cancel);
+            TextView btnCommit = holder.getView(com.cooleshow.base.R.id.btn_commit);
+            tvTitle.setText("提示");
+            tvContent.setText(content);
+            btncancel.setOnClickListener(view1 -> {
+                dialog.dismiss();
+            });
+            btnCommit.setOnClickListener(view1 -> {
+                PermissionUtils.toSelfSetting(context);
+                dialog.dismiss();
+            });
+        });
+    }
+}

+ 35 - 1
BaseLibrary/src/main/java/com/cooleshow/base/utils/helper/upload/UploadHelper.java

@@ -11,6 +11,8 @@ import com.cooleshow.base.utils.LogUtils;
 import com.cooleshow.base.utils.RequestBodyUtil;
 import com.cooleshow.base.utils.TimeUtils;
 import com.cooleshow.base.utils.Utils;
+import com.cooleshow.base.widgets.ProgressLoading;
+import com.cooleshow.base.widgets.UploadProgressLoading;
 import com.ksyun.ks3.auth.AuthUtils;
 import com.ksyun.ks3.exception.Ks3Error;
 import com.ksyun.ks3.model.PostObjectFormFields;
@@ -63,11 +65,19 @@ public class UploadHelper {
     private Ks3Client mClient;
 
     private String uploadToken = "";
+    private Activity mActivity;
+    private UploadProgressLoading mProgressLoading;
 
     public UploadHelper(Activity activity) {
+        this.mActivity = activity;
+        initUploadProgressDialog();
         initClient();
     }
 
+    private void initUploadProgressDialog() {
+        mProgressLoading = UploadProgressLoading.Companion.create(mActivity);
+    }
+
     private void initClient() {
         Ks3ClientConfiguration configuration = Ks3ClientConfiguration.getDefaultConfiguration();
         configuration.setSSLSocketFactory(SSLSocketFactory.getSocketFactory());
@@ -117,11 +127,23 @@ public class UploadHelper {
         mClient.putObject(putObjectRequest, new PutObjectResponseHandler() {
             @Override
             public void onTaskFailure(int i, Ks3Error ks3Error, Header[] headers, String s, Throwable throwable) {
-                LogUtils.i("pq", "onFailure postObject is " + s);
+                if (throwable != null) {
+                    throwable.printStackTrace();
+                }
+                if (mProgressLoading != null) {
+                    mProgressLoading.hideLoading();
+                }
+                if (upLoadCallBack != null) {
+                    upLoadCallBack.onFailure();
+                }
+                LogUtils.i("pq", "onFailure postObject is " + ks3Error.getErrorMessage());
             }
 
             @Override
             public void onTaskSuccess(int i, Header[] headers) {
+                if (mProgressLoading != null) {
+                    mProgressLoading.hideLoading();
+                }
                 if (null != upLoadCallBack) {
                     upLoadCallBack.onSuccess(buildUploadUrl(key));
                 }
@@ -130,6 +152,9 @@ public class UploadHelper {
 
             @Override
             public void onTaskStart() {
+                if (mProgressLoading != null) {
+                    mProgressLoading.showLoading();
+                }
                 if (upLoadCallBack != null) {
                     upLoadCallBack.onUploadStart();
                 }
@@ -137,6 +162,9 @@ public class UploadHelper {
 
             @Override
             public void onTaskFinish() {
+                if (mProgressLoading != null) {
+                    mProgressLoading.hideLoading();
+                }
                 if (upLoadCallBack != null) {
                     upLoadCallBack.onUploadFinish();
                 }
@@ -144,6 +172,9 @@ public class UploadHelper {
 
             @Override
             public void onTaskCancel() {
+                if (mProgressLoading != null) {
+                    mProgressLoading.hideLoading();
+                }
                 if (upLoadCallBack != null) {
                     upLoadCallBack.onUploadCancel();
                 }
@@ -151,6 +182,9 @@ public class UploadHelper {
 
             @Override
             public void onTaskProgress(double v) {
+                if (mProgressLoading != null) {
+                    mProgressLoading.setProgress(v);
+                }
                 if (upLoadCallBack != null) {
                     upLoadCallBack.onUploadProgress(v);
                 }

+ 89 - 0
BaseLibrary/src/main/java/com/cooleshow/base/widgets/UploadProgressLoading.kt

@@ -0,0 +1,89 @@
+package com.cooleshow.base.widgets
+
+import android.app.Dialog
+import android.content.Context
+import android.graphics.drawable.AnimationDrawable
+import android.view.Gravity
+import android.widget.ImageView
+import android.widget.TextView
+import com.cooleshow.base.R
+import com.cooleshow.base.utils.LogUtils
+import com.cooleshow.base.utils.UiUtils
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.GlobalScope
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+/**
+ * 上传进度条
+ */
+class UploadProgressLoading private constructor(context: Context, theme: Int) :
+    Dialog(context, theme) {
+
+    companion object {
+        private lateinit var mDialog: UploadProgressLoading
+        private var animDrawable: AnimationDrawable? = null
+        private var tvProgress: TextView? = null;
+
+        /*
+            创建加载对话框
+         */
+        fun create(context: Context): UploadProgressLoading {
+            LogUtils.i("pq","thread:"+Thread.currentThread().name);
+            //样式引入
+            mDialog = UploadProgressLoading(context, R.style.LightProgressDialog)
+            //设置布局
+            mDialog.setContentView(R.layout.upload_progress_dialog)
+            mDialog.setCancelable(false)
+            mDialog.setCanceledOnTouchOutside(false)
+            mDialog.window?.attributes?.gravity = Gravity.CENTER
+
+            val lp = mDialog.window?.attributes
+            lp?.dimAmount = 0.2f
+            //设置属性
+            mDialog.window?.attributes = lp
+
+            //获取动画视图
+            val loadingView = mDialog.findViewById<ImageView>(R.id.iv_loading)
+
+            tvProgress = mDialog.findViewById<TextView>(R.id.tv_progress)
+
+            animDrawable = loadingView.background as AnimationDrawable
+
+            return mDialog
+        }
+    }
+
+    fun setProgress(progress: Double) {
+        GlobalScope.launch(Dispatchers.Main) {
+            tvProgress?.let {
+                var result: String = UiUtils.convertDouble(progress);
+                tvProgress?.text = "$result%"
+            }
+        }
+    }
+
+    /*
+        显示加载对话框,动画开始
+     */
+    fun showLoading() {
+        GlobalScope.launch(Dispatchers.Main) {
+            super.show()
+            animDrawable?.start()
+        }
+    }
+
+    /*
+        隐藏加载对话框,动画停止
+     */
+    fun hideLoading() {
+        GlobalScope.launch(Dispatchers.Main) {
+            super.dismiss()
+            animDrawable?.stop()
+        }
+    }
+
+    fun stopAnim() {
+        animDrawable?.stop()
+    }
+}

+ 27 - 0
BaseLibrary/src/main/res/layout/upload_progress_dialog.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/WrapWrap.Vertical"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:background="@drawable/progress_dialog_bg"
+    android:gravity="center_horizontal"
+    android:paddingTop="20dp"
+    android:paddingBottom="20dp">
+
+    <ImageView
+        android:id="@+id/iv_loading"
+        style="@style/WrapWrap"
+        android:layout_gravity="center"
+        android:background="@drawable/progress_dialog_anim" />
+
+    <TextView
+        android:id="@+id/tv_progress"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="10dp"
+        android:gravity="center"
+        android:minWidth="100dp"
+        android:text="0%"
+        android:textColor="@color/white"
+        android:textSize="@dimen/sp_16" />
+</LinearLayout>

+ 3 - 2
rong_im/common_im_ui/src/main/java/com/common/im/presenter/ChatGroupSettingPresenter.java

@@ -10,6 +10,7 @@ import com.common.im.bean.GroupMemberBean;
 import com.common.im.bean.MusicSheetListBean;
 import com.common.im.bean.RongIMGroupInfo;
 import com.common.im.contract.ChatGroupSettingContract;
+import com.cooleshow.base.common.BaseApplication;
 import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
@@ -90,7 +91,7 @@ public class ChatGroupSettingPresenter extends BasePresenter<ChatGroupSettingCon
         } catch (JSONException e) {
             e.printStackTrace();
         }
-        if ("com.cooleshow.student".equals(context.getPackageName())) {
+        if (!BaseApplication.Companion.isTeacherClient()) {
             addSubscribe(create(IMApi.class).queryStuGroupMembers(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<List<GroupMemberBean>>(getView()) {
                 @Override
                 protected void onSuccess(List<GroupMemberBean> data) {
@@ -130,7 +131,7 @@ public class ChatGroupSettingPresenter extends BasePresenter<ChatGroupSettingCon
     //查询群详情
     public void queryGroupDetail(Context context, String groupId) {
         String tempGroupId = groupId.replace("S", "").replace("s", "").replace("I", "").replace("i", "");
-        if ("com.cooleshow.student".equals(context.getPackageName())) {
+        if (!BaseApplication.Companion.isTeacherClient()) {
             addSubscribe(create(IMApi.class).queryStuGroupDetail(tempGroupId), new BaseObserver<RongIMGroupInfo>() {
                 @Override
                 protected void onSuccess(RongIMGroupInfo data) {

+ 2 - 1
rong_im/common_im_ui/src/main/java/com/common/im/presenter/ContactListPresenter.java

@@ -6,6 +6,7 @@ import com.common.im.api.IMApi;
 import com.common.im.bean.ContactListBean;
 import com.common.im.contract.ContactListFragmentContract;
 import com.common.im.contract.MessageFragmentContract;
+import com.cooleshow.base.common.BaseApplication;
 import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
@@ -29,7 +30,7 @@ public class ContactListPresenter extends BasePresenter<ContactListFragmentContr
         } catch (JSONException e) {
             e.printStackTrace();
         }
-        if ("com.cooleshow.student".equals(context.getPackageName())) {
+        if (!BaseApplication.Companion.isTeacherClient()) {
             addSubscribe(create(IMApi.class).queryStuFriendList(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<List<ContactListBean>>(getView()) {
                 @Override
                 protected void onSuccess(List<ContactListBean> data) {

+ 2 - 1
rong_im/common_im_ui/src/main/java/com/common/im/presenter/ContactRoomListPresenter.java

@@ -6,6 +6,7 @@ import com.common.im.api.IMApi;
 import com.common.im.bean.ContactListBean;
 import com.common.im.bean.ContactRoomListBean;
 import com.common.im.contract.ContactRoomListFragmentContract;
+import com.cooleshow.base.common.BaseApplication;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
 import com.cooleshow.base.utils.RequestBodyUtil;
@@ -31,7 +32,7 @@ public class ContactRoomListPresenter extends BasePresenter<ContactRoomListFragm
         } catch (JSONException e) {
             e.printStackTrace();
         }
-        if ("com.cooleshow.student".equals(context.getPackageName())) {
+        if (!BaseApplication.Companion.isTeacherClient()) {
             addSubscribe(create(IMApi.class).queryStuGroupList(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<List<ContactRoomListBean>>(getView()) {
                 @Override
                 protected void onSuccess(List<ContactRoomListBean> data) {

+ 3 - 2
rong_im/common_im_ui/src/main/java/com/common/im/presenter/MessagePresenter.java

@@ -9,6 +9,7 @@ import com.common.im.api.IMApi;
 import com.common.im.contract.MessageFragmentContract;
 import com.common.im.bean.RongIMGroupInfo;
 import com.common.im.bean.RongIMUserInfo;
+import com.cooleshow.base.common.BaseApplication;
 import com.cooleshow.base.presenter.BasePresenter;
 import com.cooleshow.base.rx.BaseObserver;
 
@@ -22,7 +23,7 @@ public class MessagePresenter extends BasePresenter<MessageFragmentContract.Mess
 
     public void queryFriendDetail(Context context,String userId) {
         //根据用户编号获取用户基本信息
-        if ("com.cooleshow.student".equals(context.getPackageName())) {
+        if (!BaseApplication.Companion.isTeacherClient()) {
             addSubscribe(create(IMApi.class).queryStuFriendDetail(userId), new BaseObserver<RongIMUserInfo>(getView()) {
                 @Override
                 protected void onSuccess(RongIMUserInfo data) {
@@ -48,7 +49,7 @@ public class MessagePresenter extends BasePresenter<MessageFragmentContract.Mess
     //查询群详情
     public void queryGroupDetail(Context context, String groupId) {
         String tempGroupId = groupId.replace("S", "").replace("s", "").replace("I", "").replace("i", "");
-        if ("com.cooleshow.student".equals(context.getPackageName())) {
+        if (!BaseApplication.Companion.isTeacherClient()) {
             addSubscribe(create(IMApi.class).queryStuGroupDetail(tempGroupId), new BaseObserver<RongIMGroupInfo>() {
                 @Override
                 protected void onSuccess(RongIMGroupInfo data) {

+ 2 - 1
rong_im/common_im_ui/src/main/java/com/common/im/ui/MessageFragment.java

@@ -18,6 +18,7 @@ import com.common.im_ui.R;
 import com.common.im_ui.databinding.FragmentMessageLayoutBinding;
 import com.common.im.bean.RongIMGroupInfo;
 import com.common.im.bean.RongIMUserInfo;
+import com.cooleshow.base.common.BaseApplication;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.utils.Utils;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
@@ -50,7 +51,7 @@ public class MessageFragment extends BaseMVPFragment<FragmentMessageLayoutBindin
     @Override
     protected void initView(View rootView) {
         Utils.setHeadView(mViewBinding.viewStatusBar, requireContext(), 0);
-        if ("com.cooleshow.student".equals(getContext().getPackageName())) {
+        if (!BaseApplication.Companion.isTeacherClient()) {
             mViewBinding.imCreateGroup.setVisibility(View.GONE);
         }else{
             mViewBinding.imCreateGroup.setVisibility(View.VISIBLE);

+ 2 - 1
rong_im/common_im_ui/src/main/java/com/common/im/ui/activity/ChatGroupSettingActivity.java

@@ -26,6 +26,7 @@ import com.common.im.contract.ChatGroupSettingContract;
 import com.common.im_ui.R;
 import com.common.im.presenter.ChatGroupSettingPresenter;
 import com.common.im_ui.databinding.ActivityChatGroupSettingBinding;
+import com.cooleshow.base.common.BaseApplication;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.GlideUtils;
@@ -203,7 +204,7 @@ public class ChatGroupSettingActivity extends BaseMVPActivity<ActivityChatGroupS
     @Override
     public void onQueryGroupDetail(RongIMGroupInfo data) {
         if (null != data) {
-            if ("com.cooleshow.student".equals(getPackageName())) {
+            if (!BaseApplication.Companion.isTeacherClient()) {
                 GlideUtils.INSTANCE.loadImage(this, data.getImg(), iv_portrait, R.drawable.rc_default_group_portrait_stu);
             } else {
                 if (TextUtils.isEmpty(data.getType()) || (!data.getType().equals("VIP") && !data.getType().equals("COMM"))) {

+ 3 - 2
rong_im/kit/src/main/java/io/rong/imkit/GlideKitImageEngine.java

@@ -14,6 +14,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy;
 import com.bumptech.glide.load.resource.bitmap.CircleCrop;
 import com.bumptech.glide.request.RequestOptions;
 import com.bumptech.glide.request.target.BitmapImageViewTarget;
+import com.cooleshow.base.common.BaseApplication;
 
 import io.rong.imlib.model.Conversation;
 import io.rong.imlib.model.Message;
@@ -100,7 +101,7 @@ public class GlideKitImageEngine implements KitImageEngine {
     @Override
     public void loadConversationListPortrait(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView, Conversation conversation) {
         @DrawableRes int resourceId = R.drawable.rc_default_portrait;
-        if ("com.cooleshow.student".equals(context.getPackageName())) {
+        if (!BaseApplication.Companion.isTeacherClient()) {
             resourceId = R.drawable.rc_default_portrait_stu;
         }
 
@@ -126,7 +127,7 @@ public class GlideKitImageEngine implements KitImageEngine {
     @Override
     public void loadConversationPortrait(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView, Message message) {
         @DrawableRes int resourceId = R.drawable.rc_default_portrait;
-        if ("com.cooleshow.student".equals(context.getPackageName())) {
+        if (!BaseApplication.Companion.isTeacherClient()) {
             resourceId = R.drawable.rc_default_portrait_stu;
         }
         switch (message.getConversationType()) {

+ 2 - 1
rong_im/kit/src/main/java/io/rong/imkit/activity/ForwardSelectConversationActivity.java

@@ -21,6 +21,7 @@ import androidx.lifecycle.Observer;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.load.resource.bitmap.CircleCrop;
 import com.bumptech.glide.request.RequestOptions;
+import com.cooleshow.base.common.BaseApplication;
 
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -290,7 +291,7 @@ public class ForwardSelectConversationActivity extends RongBaseNoActionbarActivi
             Conversation conversation = allMembers.get(position);
             holder.checkbox.setSelected(selectedMember.contains(conversation));
             @DrawableRes int resourceId = R.drawable.rc_default_portrait;
-            if ("com.cooleshow.student".equals(activity.getPackageName())) {
+            if (!BaseApplication.Companion.isTeacherClient()) {
                 resourceId = R.drawable.rc_default_portrait_stu;
             }
             Glide.with(IMCenter.getInstance().getContext()).load(conversation.getPortraitUrl())

+ 3 - 1
rong_im/kit/src/main/java/io/rong/imkit/conversationlist/model/GatheredConversation.java

@@ -8,6 +8,8 @@ import android.text.SpannableStringBuilder;
 import android.text.TextUtils;
 import android.text.style.ForegroundColorSpan;
 
+import com.cooleshow.base.common.BaseApplication;
+
 import java.util.List;
 
 import io.rong.imkit.R;
@@ -144,7 +146,7 @@ public class GatheredConversation extends BaseUiConversation {
         Uri uri = RongConfigCenter.gatheredConversationConfig().getGatherConversationPortrait(type);
 
         if (uri == null) {
-            if ("com.cooleshow.student".equals(context.getPackageName())) {
+            if (!BaseApplication.Companion.isTeacherClient()) {
                 uri = RongUtils.getUriFromDrawableRes(mContext, R.drawable.rc_default_portrait_stu);
             } else {
                 uri = RongUtils.getUriFromDrawableRes(mContext, R.drawable.rc_default_portrait);

+ 3 - 1
rong_im/kit/src/main/java/io/rong/imkit/conversationlist/provider/BaseConversationProvider.java

@@ -10,6 +10,8 @@ import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.cooleshow.base.common.BaseApplication;
+
 import java.util.List;
 
 import io.rong.imkit.R;
@@ -45,7 +47,7 @@ public class BaseConversationProvider implements IViewProvider<BaseUiConversatio
             RongConfigCenter.featureConfig().getKitImageEngine().loadConversationListPortrait(holder.getContext(), uiConversation.mCore.getPortraitUrl(), holder.<ImageView>getView(R.id.rc_conversation_portrait), uiConversation.mCore);
         } else {
             int drawableId = R.drawable.rc_default_portrait;
-            if ("com.cooleshow.student".equals(holder.getContext().getPackageName())) {
+            if (!BaseApplication.Companion.isTeacherClient()) {
                 drawableId = R.drawable.rc_default_portrait_stu;
             }
             if (uiConversation.mCore.getConversationType().equals(Conversation.ConversationType.GROUP)) {

+ 2 - 1
rong_im/kit/src/main/java/io/rong/imkit/feature/mention/MentionMemberSelectActivity.java

@@ -25,6 +25,7 @@ import androidx.annotation.DrawableRes;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.load.resource.bitmap.CircleCrop;
 import com.bumptech.glide.request.RequestOptions;
+import com.cooleshow.base.common.BaseApplication;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -261,7 +262,7 @@ public class MentionMemberSelectActivity extends RongBaseNoActionbarActivity {
             if (userInfo != null) {
                 viewHolder.name.setText(userInfo.getName());
                 @DrawableRes int resourceId = R.drawable.rc_default_portrait;
-                if ("com.cooleshow.student".equals(parent.getContext().getPackageName())) {
+                if (!BaseApplication.Companion.isTeacherClient()) {
                     resourceId = R.drawable.rc_default_portrait_stu;
                 }
                 Glide.with(IMCenter.getInstance().getContext()).load(userInfo.getPortraitUri())

+ 2 - 0
student/src/main/AndroidManifest.xml

@@ -131,11 +131,13 @@
         <activity
             android:name=".ui.course.SparringCourseDetailActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
+            android:windowSoftInputMode="adjustNothing"
             android:screenOrientation="portrait" />
 
         <activity
             android:name=".ui.course.PianoRoomCourseDetailActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
+            android:windowSoftInputMode="adjustNothing"
             android:screenOrientation="portrait" />
 
         <activity

+ 13 - 1
student/src/main/java/com/cooleshow/student/ui/main/CourseTableFragment.kt

@@ -215,6 +215,18 @@ class CourseTableFragment :
 
     override fun onMonthChange(year: Int, month: Int) {
         setMontAndDay(year, month, day)
+        presenter?.let {
+            presenter.getCourseScheduleDateByMonth(getMonth(year, month))
+        }
+    }
+
+    private fun getMonth(year: Int, month: Int): String {
+        var span: String = if (month < 10) {
+            "$year-0$month"
+        } else {
+            "$year-$month";
+        }
+        return span;
     }
 
     override fun onViewChange(isMonthView: Boolean) {
@@ -324,7 +336,7 @@ class CourseTableFragment :
                     ivCancel.setOnClickListener { pvTime.dismiss() }
                 })
                 .setLineSpacingMultiplier(2.5f)
-                .setType(booleanArrayOf(true, true, true, false, false, false)) // 默认全部显示
+                .setType(booleanArrayOf(true, true, false, false, false, false)) // 默认全部显示
                 .isCyclic(true) //是否循环滚动
                 .setOutSideCancelable(true) //点击屏幕,点在控件外部范围时,是否取消显示
                 .setTextColorCenter(resources.getColor(com.cooleshow.base.R.color.color_1a1a1a)) //设置选中项的颜色

+ 17 - 3
student/src/main/java/com/cooleshow/student/ui/main/MainActivity.java

@@ -1,5 +1,6 @@
 package com.cooleshow.student.ui.main;
 
+import android.Manifest;
 import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
@@ -25,6 +26,7 @@ import com.cooleshow.usercenter.helper.UserHelper;
 import com.daya.live_teaching.common.ResultCallback;
 import com.daya.live_teaching.im.IMManager;
 import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.tbruyelle.rxpermissions3.RxPermissions;
 
 import java.util.ArrayList;
 
@@ -100,10 +102,22 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
     @Override
     public void initData() {
         super.initData();
+        requestPermission();
         connectIM();
     }
 
     /**
+     * 申请存储权限
+     */
+    private void requestPermission() {
+        new RxPermissions(this)
+                .request(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)
+                .subscribe(permission -> {
+                });
+    }
+
+
+    /**
      * 连接rong IM
      */
     private void connectIM() {
@@ -182,10 +196,10 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
     @Override
     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
-        if (resultCode==RESULT_OK){
-            if (requestCode==1011){
+        if (resultCode == RESULT_OK) {
+            if (requestCode == 1011) {
                 String selectAddress = data.getStringExtra("selectAddress");
-                if (null!=shopMallFragment){
+                if (null != shopMallFragment) {
                     shopMallFragment.selectAddress(selectAddress);
                 }
             }

+ 2 - 1
student/src/main/java/com/cooleshow/student/ui/web/HtmlActivity.java

@@ -957,7 +957,7 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
             mCustomViewCallback = callback;
             mLayout.addView(mCustomView);
             mLayout.setVisibility(View.VISIBLE);
-//            mLayout.bringToFront();
+            mLayout.bringToFront();
             headerBbarView.setVisibility(View.GONE);
             //设置横屏
             setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
@@ -1084,6 +1084,7 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
                     uploadHelper.setUpLoadCallBack(new UploadHelper.UpLoadCallBack() {
                         @Override
                         public void onSuccess(String url) {
+                            hideLoading();
                             try {
                                 JSONObject jsonObject = new JSONObject();
                                 JSONObject contentObj = baseJsonObject.getJSONObject("content");

+ 23 - 29
student/src/main/java/com/cooleshow/student/ui/web/WebActivity.java

@@ -73,7 +73,6 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
     private ValueCallback mUploadCallbackAboveL;
 
 
-
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -85,6 +84,7 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
     protected ActivityHtmlBinding getLayoutView() {
         return ActivityHtmlBinding.inflate(getLayoutInflater());
     }
+
     private RelativeLayout rl_activity_html;
     private ImageView btnClose;
     private TextView tvTitle;
@@ -102,14 +102,14 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
         ivActionIcon = getIntent().getIntExtra("ivAction", -1);
         startType = getIntent().getIntExtra("startType", -1);
 
-        rl_activity_html=viewBinding.rlActivityHtml;
-        btnClose=viewBinding.btnClose;
-        tvTitle=viewBinding.tvTitle;
-        tvAction=viewBinding.tvAction;
-        ivAction=viewBinding.ivAction;
-        viewParent=viewBinding.viewParent;
-        mLayout=viewBinding.flVideo;
-        btnBack=viewBinding.btnBack;
+        rl_activity_html = viewBinding.rlActivityHtml;
+        btnClose = viewBinding.btnClose;
+        tvTitle = viewBinding.tvTitle;
+        tvAction = viewBinding.tvAction;
+        ivAction = viewBinding.ivAction;
+        viewParent = viewBinding.viewParent;
+        mLayout = viewBinding.flVideo;
+        btnBack = viewBinding.btnBack;
         if (ivActionIcon > 0 && 1000 == startType) {
             ivAction.setImageResource(ivActionIcon);
             ivAction.setVisibility(View.VISIBLE);
@@ -308,13 +308,21 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
     }
 
 
-
     @Override
     public void chooseFile(JSONObject message) {
         JSONObject content = (JSONObject) message.opt("content");
         String type = (String) content.opt("image/*");
         String[] types = new String[]{type};
-        showFileChooser();
+        new RxPermissions(this)
+                .request(Manifest.permission.READ_EXTERNAL_STORAGE)
+                .subscribe(permission -> {
+                    if (permission) {
+                        showFileChooser();
+                    } else {
+                        String tip = "上传文件需要储存卡读取权限,是否去设置?";
+                        showCommonTipDialog(tip);
+                    }
+                });
     }
 
 
@@ -362,7 +370,7 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
         public void onReceivedTitle(WebView view, String title) {
             super.onReceivedTitle(view, title);
             if (!TextUtils.isEmpty(title)) {
-                if (null!=viewBinding.tvTitle){
+                if (null != viewBinding.tvTitle) {
                     viewBinding.tvTitle.setText(title);
                 }
 
@@ -505,8 +513,8 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
         if (requestCode == PictureConfig.CHOOSE_REQUEST && mUploadCallbackAboveL != null) {
             // 图片、视频、音频选择结果回调
             List<LocalMedia> selectList = PictureSelector.obtainMultipleResult(data);
-            String avatar="";
-            if (null!=selectList&&selectList.size()>0){
+            String avatar = "";
+            if (null != selectList && selectList.size() > 0) {
                 avatar = selectList.get(0).getCompressPath();
             }
 
@@ -523,23 +531,9 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
             if (result != null) {
                 File file = UriUtils.uri2File(result);
                 if (file != null && file.exists()) {
-                    Log.e("asdfasdfsdf", "onActivityResult: =============" );
+                    Log.e("asdfasdfsdf", "onActivityResult: =============");
                     UploadHelper uploadHelper = new UploadHelper(WebActivity.this);
                     uploadHelper.uploadFile(file);
-                    /*if (file.exists() && file.isFile()) {
-                        Uri newUri = Uri.fromFile(file);
-                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-                            if (mUploadCallbackAboveL != null) {
-                                if (newUri != null) {
-                                    mUploadCallbackAboveL.onReceiveValue(new Uri[]{newUri});
-                                    mUploadCallbackAboveL = null;
-                                    return;
-                                }
-                            }
-                        }
-                    } else {
-                        ToastUtils.showShort("文件损坏或不存在,请重新选择");
-                    }*/
                 }
             }
             clearUploadMessage();

+ 2 - 0
teacher/src/main/AndroidManifest.xml

@@ -86,11 +86,13 @@
         <activity
             android:name=".ui.course.SparringCourseDetailActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
+            android:windowSoftInputMode="adjustNothing"
             android:screenOrientation="portrait" />
 
         <activity
             android:name=".ui.course.PianoRoomCourseDetailActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
+            android:windowSoftInputMode="adjustNothing"
             android:screenOrientation="portrait" />
 
         <activity

+ 4 - 0
teacher/src/main/java/com/cooleshow/teacher/adapter/CourseTableListAdapter.kt

@@ -26,6 +26,10 @@ class CourseTableListAdapter(layoutResId: Int) :
         const val CANCEL = "CANCEL"
     }
 
+    init {
+        addChildClickViewIds(R.id.tv_course_status_bt)
+    }
+
     override fun convert(
         baseViewHolder: BaseViewHolder,
         data: CourseTableDataBean.StudentListBean?

+ 43 - 34
teacher/src/main/java/com/cooleshow/teacher/ui/main/CourseTableFragment.kt

@@ -13,10 +13,12 @@ import com.bigkoo.pickerview.builder.TimePickerBuilder
 import com.bigkoo.pickerview.listener.CustomListener
 import com.bigkoo.pickerview.listener.OnTimeSelectListener
 import com.bigkoo.pickerview.view.TimePickerView
+import com.chad.library.adapter.base.listener.OnItemChildClickListener
 import com.chad.library.adapter.base.listener.OnItemClickListener
 import com.cooleshow.base.common.WebConstants
 import com.cooleshow.base.router.RouterPath
 import com.cooleshow.base.ui.fragment.BaseMVPFragment
+import com.cooleshow.base.utils.LogUtils
 import com.cooleshow.base.utils.SizeUtils
 import com.cooleshow.base.utils.TimeUtils
 import com.cooleshow.base.widgets.EmptyViewLayout
@@ -103,43 +105,38 @@ class CourseTableFragment :
                 return super.onInterceptTouchEvent(rv, e)
             }
         })
+
+        adapter.setOnItemChildClickListener(OnItemChildClickListener { adapter, view, position ->
+            var data: CourseTableDataBean.StudentListBean =
+                adapter.data[position] as CourseTableDataBean.StudentListBean;
+            if (view.id == R.id.tv_course_status_bt) {
+                //调课(调整时间)
+                if (TextUtils.equals(data.status, CourseTableListAdapter.NOT_START)) {
+                    var targetDate: Date = TimeUtils.getDate(data.startTime)
+                    showCourseTimeSelectView(targetDate, data.courseId);
+                }
+            }
+        })
+
         adapter.setOnItemClickListener(OnItemClickListener() { adapter, view, position ->
             var data: CourseTableDataBean.StudentListBean =
                 adapter.data[position] as CourseTableDataBean.StudentListBean;
             if (TextUtils.equals(CourseTableListAdapter.OTHER_COURSE, data?.courseType)) {
-                //陪练课
-                when (data?.status) {
-                    CourseTableListAdapter.NOT_START -> {
-                        //调课(调整时间)
-                        var targetDate: Date = TimeUtils.getDate(data.startTime)
-                        showCourseTimeSelectView(targetDate, data.courseId);
-                    }
-                    CourseTableListAdapter.ING -> {
-                        //进行中的
-                        ARouter.getInstance()
-                            .build(RouterPath.CourseCenter.SPARRING_COURSE_DETAIL)
-                            .withString(SparringCourseDetailActivity.COURSE_ID, data.courseId)
-                            .withString(
-                                SparringCourseDetailActivity.COURSE_GROUP_ID,
-                                data.courseGoupId
-                            )
-                            .withString(SparringCourseDetailActivity.STUDENT_ID, data.userId)
-                            .navigation()
-                    }
-                    CourseTableListAdapter.COMPLETE -> {
-                        //评价
-                        ARouter.getInstance()
-                            .build(RouterPath.CommentCenter.TEACHER_COURSE_COMMENT_DETAIL)
-                            .withString(CourseCommentDetailActivity.COURSE_ID, data.courseId)
-                            .withString(
-                                CourseCommentDetailActivity.COURSE_GROUP_ID,
-                                data.courseGoupId
-                            )
-                            .withString(CourseCommentDetailActivity.STUDENT_ID, data.userId)
-                            .navigation()
-                    }
-                }
-            } else if (TextUtils.equals(CourseTableListAdapter.PIANO_ROOM_COURSE, data?.courseType)) {
+                //陪练课 跳转详情页
+                ARouter.getInstance()
+                    .build(RouterPath.CourseCenter.SPARRING_COURSE_DETAIL)
+                    .withString(SparringCourseDetailActivity.COURSE_ID, data.courseId)
+                    .withString(
+                        SparringCourseDetailActivity.COURSE_GROUP_ID,
+                        data.courseGoupId
+                    )
+                    .withString(SparringCourseDetailActivity.STUDENT_ID, data.userId)
+                    .navigation()
+            } else if (TextUtils.equals(
+                    CourseTableListAdapter.PIANO_ROOM_COURSE,
+                    data?.courseType
+                )
+            ) {
                 //琴房课 跳转详情页
                 ARouter.getInstance().build(RouterPath.CourseCenter.PIANO_ROOM_COURSE_DETAIL)
                     .withString("course_id", data.courseId)
@@ -189,6 +186,15 @@ class CourseTableFragment :
         mViewBinding.tvCurrentDate.text = span
     }
 
+    private fun getMonth(year: Int, month: Int): String {
+        var span: String = if (month < 10) {
+            "$year-0$month"
+        } else {
+            "$year-$month";
+        }
+        return span;
+    }
+
     override fun onCalendarOutOfRange(calendar: com.haibin.calendarview.Calendar?) {
     }
 
@@ -229,6 +235,9 @@ class CourseTableFragment :
 
     override fun onMonthChange(year: Int, month: Int) {
         setMontAndDay(year, month, day)
+        presenter?.let {
+            presenter.getCourseScheduleDateByMonth(getMonth(year, month))
+        }
     }
 
     override fun onViewChange(isMonthView: Boolean) {
@@ -377,7 +386,7 @@ class CourseTableFragment :
                     ivCancel.setOnClickListener { pvTime.dismiss() }
                 })
                 .setLineSpacingMultiplier(2.5f)
-                .setType(booleanArrayOf(true, true, true, false, false, false)) // 默认全部显示
+                .setType(booleanArrayOf(true, true, false, false, false, false)) // 默认全部显示
                 .isCyclic(true) //是否循环滚动
                 .setOutSideCancelable(true) //点击屏幕,点在控件外部范围时,是否取消显示
                 .setTextColorCenter(resources.getColor(com.cooleshow.base.R.color.color_1a1a1a)) //设置选中项的颜色

+ 22 - 7
teacher/src/main/java/com/cooleshow/teacher/ui/main/MainActivity.java

@@ -1,5 +1,6 @@
 package com.cooleshow.teacher.ui.main;
 
+import android.Manifest;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.MenuItem;
@@ -9,6 +10,7 @@ import com.common.im.ui.MessageFragment;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.LogUtils;
+import com.cooleshow.base.utils.helper.DialogHelper;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.adapter.HomePageAdapter;
@@ -21,6 +23,7 @@ import com.cooleshow.usercenter.helper.UserHelper;
 import com.daya.live_teaching.common.ResultCallback;
 import com.daya.live_teaching.im.IMManager;
 import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.tbruyelle.rxpermissions3.RxPermissions;
 
 import java.util.ArrayList;
 
@@ -101,9 +104,20 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
     @Override
     public void initData() {
         super.initData();
+        requestPermission();
         connectIM();
     }
 
+    /**
+     * 申请存储权限
+     */
+    private void requestPermission() {
+        new RxPermissions(this)
+                .request(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)
+                .subscribe(permission -> {
+                });
+    }
+
 
     /**
      * 连接rong IM
@@ -129,6 +143,7 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
             }
         }
     }
+
     /*
     上一次的tab位置
      */
@@ -136,33 +151,33 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
 
     private boolean onTabClick(int viewId) {
         if (viewId == R.id.menu_home) {
-            if (lastCurrentItemPosition!=0){
+            if (lastCurrentItemPosition != 0) {
                 presenter.getTeacherUserInfo();
             }
-            lastCurrentItemPosition=0;
+            lastCurrentItemPosition = 0;
             getViewBinding().viewPager.setCurrentItem(0, false);
             return true;
         }
         if (viewId == R.id.menu_coursetable) {
-            lastCurrentItemPosition=1;
+            lastCurrentItemPosition = 1;
             getViewBinding().viewPager.setCurrentItem(1, false);
             return true;
         }
         if (viewId == R.id.menu_chat) {
-            lastCurrentItemPosition=2;
+            lastCurrentItemPosition = 2;
             getViewBinding().viewPager.setCurrentItem(2, false);
             return true;
         }
         if (viewId == R.id.menu_mall) {
-            lastCurrentItemPosition=3;
+            lastCurrentItemPosition = 3;
             getViewBinding().viewPager.setCurrentItem(3, false);
             return true;
         }
         if (viewId == R.id.menu_mine) {
-            if (lastCurrentItemPosition!=4){
+            if (lastCurrentItemPosition != 4) {
                 presenter.getTeacherUserInfo();
             }
-            lastCurrentItemPosition=4;
+            lastCurrentItemPosition = 4;
             getViewBinding().viewPager.setCurrentItem(4, false);
         }
         return true;

+ 10 - 4
teacher/src/main/java/com/cooleshow/teacher/ui/web/HtmlActivity.java

@@ -54,6 +54,7 @@ import com.cooleshow.base.utils.AppUtils;
 import com.cooleshow.base.utils.PermissionUtils;
 import com.cooleshow.base.utils.ToastUtils;
 import com.cooleshow.base.utils.UriUtils;
+import com.cooleshow.base.utils.helper.DialogHelper;
 import com.cooleshow.base.utils.helper.upload.UploadHelper;
 import com.cooleshow.base.widgets.DialogUtil;
 import com.cooleshow.teacher.App;
@@ -666,8 +667,15 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
     @Override
     public void chooseFile(JSONObject message) {
         baseJsonObject = message;
-        showFileChooser();
-
+        new RxPermissions(this)
+                .request(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)
+                .subscribe(permission -> {
+                    if (permission) {
+                        showFileChooser();
+                    } else {
+                        DialogHelper.showTipDialog(this,"上传文件需要储存权限,去设置?");
+                    }
+                });
     }
 
     private JSONObject baseJsonObject;
@@ -1065,7 +1073,6 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
             if (result != null) {
                 File file = UriUtils.uri2File(result);
                 if (file != null && file.exists()) {
-                    showLoading();
                     UploadHelper uploadHelper = new UploadHelper(HtmlActivity.this);
                     uploadHelper.uploadFile(file);
                     uploadHelper.setUpLoadCallBack(new UploadHelper.UpLoadCallBack() {
@@ -1088,7 +1095,6 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
 
                         @Override
                         public void onFailure() {
-                            hideLoading();
                             ToastUtils.showShort("上传失败,请重新选择");
                             upLoadFileFaile();
                         }

+ 0 - 2
teacher/src/main/java/com/cooleshow/teacher/ui/web/WebActivity.java

@@ -525,7 +525,6 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
             if (result != null) {
                 File file = UriUtils.uri2File(result);
                 if (file != null && file.exists()) {
-                    showLoading();
                     UploadHelper uploadHelper = new UploadHelper(WebActivity.this);
                     uploadHelper.uploadFile(file);
                     uploadHelper.setUpLoadCallBack(new UploadHelper.UpLoadCallBack() {
@@ -549,7 +548,6 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
 
                         @Override
                         public void onFailure() {
-                            hideLoading();
                             ToastUtils.showShort("上传失败,请重新选择");
                             selectFileFail();
                         }

+ 4 - 0
usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/VerifyCodeLoginActivity.java

@@ -153,6 +153,10 @@ public class VerifyCodeLoginActivity extends BaseMVPActivity<ActivityVerifyCodeL
         viewBinding.tvPrivacy.setText(builder.create());
     }
 
+    @Override
+    public void onBackPressed() {
+    }
+
     private void startWebActivity(String agreement) {
         //跳转隐私协议
         ARouter.getInstance()