Browse Source

添加老师认证流程

Pq 2 years ago
parent
commit
fda6059698

+ 4 - 0
BaseLibrary/src/main/java/com/cooleshow/base/common/WebConstants.java

@@ -6,6 +6,8 @@ import com.cooleshow.base.BuildConfig;
  * Author by pq, Date on 2022/4/26.
  */
 public abstract class WebConstants {
+    public static final String WEB_UA_PARAMS = ";COLEXIUAPPA";
+    public static final String WEB_JS_INTERFACE = "COLEXIU";
     public static final String WEB_URL = "web_url";//
 
     private static String getTeacherBaseUrlH5() {
@@ -25,4 +27,6 @@ public abstract class WebConstants {
     //隐私协议
     public static final String PRIVACY_AGREEMENT = getBaseUrlH5() + "/#/privacyProtocol";
 
+    //老师认证
+    public static final String TEACHER_CERT = getBaseUrlH5() + "/#/teacherCert";
 }

+ 54 - 0
BaseLibrary/src/main/res/values/styles.xml

@@ -286,4 +286,58 @@
         <item name="android:windowExitAnimation">@anim/left_exit_anim</item>
     </style>
 
+
+    <style name="picture.daya.style" parent="AppTheme">
+        <!-- Customize your theme here. -->
+        <!--标题栏背景色-->
+        <item name="colorPrimary">@color/colorPrimary</item>
+        <!--状态栏背景色-->
+        <item name="colorPrimaryDark">@color/colorPrimary</item>
+        <!--是否改变图片列表界面状态栏字体颜色为黑色-->
+        <item name="picture.statusFontColor">false</item>
+        <!--返回键图标-->
+        <item name="picture.leftBack.icon">@drawable/icon_back_arrow_white</item>
+        <!--标题下拉箭头-->
+        <item name="picture.arrow_down.icon">@drawable/picture_icon_arrow_down</item>
+        <!--标题上拉箭头-->
+        <item name="picture.arrow_up.icon">@drawable/picture_icon_arrow_up</item>
+        <!--标题文字颜色-->
+        <item name="picture.title.textColor">@color/white</item>
+        <!--标题栏右边文字-->
+        <item name="picture.right.textColor">@color/white</item>
+        <!--图片列表勾选样式-->
+        <item name="picture.checked.style">@drawable/checkbox_selector</item>
+        <!--开启图片列表勾选数字模式-->
+        <item name="picture.style.checkNumMode">false</item>
+        <!--选择图片样式0/9-->
+        <item name="picture.style.numComplete">false</item>
+        <!--图片列表底部背景色-->
+        <item name="picture.bottom.bg">@color/colorPrimary</item>
+        <!--图片列表预览文字颜色-->
+        <item name="picture.preview.textColor">@color/white</item>
+        <!--图片列表已完成文字颜色-->
+        <item name="picture.complete.textColor">@color/white</item>
+        <!--图片已选数量圆点背景色-->
+        <item name="picture.num.style">@drawable/picture_num_oval</item>
+        <!--预览界面标题文字颜色-->
+        <item name="picture.ac_preview.title.textColor">@color/white</item>
+        <!--预览界面已完成文字颜色-->
+        <item name="picture.ac_preview.complete.textColor">@color/white</item>
+        <!--预览界面标题栏背景色-->
+        <item name="picture.ac_preview.title.bg">@color/colorPrimary</item>
+        <!--预览界面底部背景色-->
+        <item name="picture.ac_preview.bottom.bg">@color/colorPrimary</item>
+        <!--预览界面返回箭头-->
+        <item name="picture.preview.leftBack.icon">@drawable/picture_icon_back</item>
+        <!--是否改变预览界面状态栏字体颜色为黑色-->
+        <!--<item name="picture.preview.statusFontColor">false</item>-->
+        <!--裁剪页面标题背景色-->
+        <item name="picture.crop.toolbar.bg">@color/colorPrimary</item>
+        <!--裁剪页面状态栏颜色-->
+        <item name="picture.crop.status.color">@color/colorPrimary</item>
+        <!--裁剪页面标题文字颜色-->
+        <item name="picture.crop.title.color">@color/white</item>
+        <!--相册文件夹列表选中图标-->
+        <item name="picture.folder_checked_dot">@drawable/picture_orange_oval</item>
+    </style>
 </resources>

+ 1 - 0
gradle.properties

@@ -31,6 +31,7 @@ TEST_BASE_URL ="http://dev.colexiu.com/"
 RELEASE_BASE_URL =""
 
 TEST_BASE_URL_H5 ="http://dev.colexiu.com/teacher"
+#TEST_BASE_URL_H5 ="http://192.168.3.63:5000"
 RELEASE_BASE_URL_H5 =""
 
 TEST_BASE_URL_H5_STUDENT ="http://dev.colexiu.com/student"

+ 2 - 2
live_teaching/src/main/java/com/daya/live_teaching/ui/fragmnet/ComplaintDialogFragment.java

@@ -104,7 +104,7 @@ public class ComplaintDialogFragment extends BaseDialogFragment {
                 PictureSelector.create(this)
                         .openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
                         .loadImageEngine(GlideEngine.createGlideEngine())
-                        .theme(R.style.picture_daya_style)// 主题样式设置 具体参考 values/styles   用法:R.style.picture.white.style
+                        .theme(com.cooleshow.base.R.style.picture_daya_style)// 主题样式设置 具体参考 values/styles   用法:R.style.picture.white.style
                         .selectionMode(PictureConfig.MULTIPLE)// 多选 or 单选 PictureConfig.MULTIPLE or PictureConfig.SINGLE
                         .maxSelectNum(maxSelectNum)
                         .isCompress(true)// 是否压缩 true or false
@@ -114,7 +114,7 @@ public class ComplaintDialogFragment extends BaseDialogFragment {
                     PictureSelector.create(this)
                             .openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
                             .loadImageEngine(GlideEngine.createGlideEngine())
-                            .theme(R.style.picture_daya_style)// 主题样式设置 具体参考 values/styles   用法:R.style.picture.white.style
+                            .theme(com.cooleshow.base.R.style.picture_daya_style)// 主题样式设置 具体参考 values/styles   用法:R.style.picture.white.style
                             .selectionMode(PictureConfig.MULTIPLE)// 多选 or 单选 PictureConfig.MULTIPLE or PictureConfig.SINGLE
                             .maxSelectNum(maxSelectNum - selectList.size())
                             .isCompress(true)// 是否压缩 true or false

+ 1 - 1
live_teaching/src/main/java/com/daya/live_teaching/ui/fragmnet/WhiteBoardFragment.java

@@ -513,7 +513,7 @@ public class WhiteBoardFragment extends BaseFragment<FragmentWhiteBoardBinding>
                         PictureSelector.create(this)
                                 .openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
                                 .loadImageEngine(GlideEngine.createGlideEngine())
-                                .theme(R.style.picture_daya_style)// 主题样式设置 具体参考 values/styles   用法:R.style.picture.white.style
+                                .theme(com.cooleshow.base.R.style.picture_daya_style)// 主题样式设置 具体参考 values/styles   用法:R.style.picture.white.style
                                 .selectionMode(PictureConfig.SINGLE)// 多选 or 单选 PictureConfig.MULTIPLE or PictureConfig.SINGLE
                                 .enableCrop(true)// 是否裁剪 true or false
                                 .showCropGrid(true)// 是否显示裁剪矩形网格 圆形裁剪时建议设为false    true or false

+ 0 - 53
live_teaching/src/main/res/values/styles.xml

@@ -24,59 +24,6 @@
         <item name="android:layout_width">35dp</item>
     </style>
 
-    <style name="picture.daya.style" parent="AppTheme">
-        <!-- Customize your theme here. -->
-        <!--标题栏背景色-->
-        <item name="colorPrimary">@color/colorPrimary</item>
-        <!--状态栏背景色-->
-        <item name="colorPrimaryDark">@color/colorPrimary</item>
-        <!--是否改变图片列表界面状态栏字体颜色为黑色-->
-        <item name="picture.statusFontColor">false</item>
-        <!--返回键图标-->
-        <item name="picture.leftBack.icon">@drawable/icon_back_arrow_white</item>
-        <!--标题下拉箭头-->
-        <item name="picture.arrow_down.icon">@drawable/picture_icon_arrow_down</item>
-        <!--标题上拉箭头-->
-        <item name="picture.arrow_up.icon">@drawable/picture_icon_arrow_up</item>
-        <!--标题文字颜色-->
-        <item name="picture.title.textColor">@color/white</item>
-        <!--标题栏右边文字-->
-        <item name="picture.right.textColor">@color/white</item>
-        <!--图片列表勾选样式-->
-        <item name="picture.checked.style">@drawable/checkbox_selector</item>
-        <!--开启图片列表勾选数字模式-->
-        <item name="picture.style.checkNumMode">false</item>
-        <!--选择图片样式0/9-->
-        <item name="picture.style.numComplete">false</item>
-        <!--图片列表底部背景色-->
-        <item name="picture.bottom.bg">@color/colorPrimary</item>
-        <!--图片列表预览文字颜色-->
-        <item name="picture.preview.textColor">@color/white</item>
-        <!--图片列表已完成文字颜色-->
-        <item name="picture.complete.textColor">@color/white</item>
-        <!--图片已选数量圆点背景色-->
-        <item name="picture.num.style">@drawable/picture_num_oval</item>
-        <!--预览界面标题文字颜色-->
-        <item name="picture.ac_preview.title.textColor">@color/white</item>
-        <!--预览界面已完成文字颜色-->
-        <item name="picture.ac_preview.complete.textColor">@color/white</item>
-        <!--预览界面标题栏背景色-->
-        <item name="picture.ac_preview.title.bg">@color/colorPrimary</item>
-        <!--预览界面底部背景色-->
-        <item name="picture.ac_preview.bottom.bg">@color/colorPrimary</item>
-        <!--预览界面返回箭头-->
-        <item name="picture.preview.leftBack.icon">@drawable/picture_icon_back</item>
-        <!--是否改变预览界面状态栏字体颜色为黑色-->
-        <!--<item name="picture.preview.statusFontColor">false</item>-->
-        <!--裁剪页面标题背景色-->
-        <item name="picture.crop.toolbar.bg">@color/colorPrimary</item>
-        <!--裁剪页面状态栏颜色-->
-        <item name="picture.crop.status.color">@color/colorPrimary</item>
-        <!--裁剪页面标题文字颜色-->
-        <item name="picture.crop.title.color">@color/white</item>
-        <!--相册文件夹列表选中图标-->
-        <item name="picture.folder_checked_dot">@drawable/picture_orange_oval</item>
-    </style>
 
     <style name="ClassResourceListItem">
         <item name="android:layout_width">match_parent</item>

+ 9 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/main/HomeFragment.kt

@@ -3,6 +3,7 @@ package com.cooleshow.teacher.ui.main
 import android.text.TextUtils
 import android.view.View
 import com.alibaba.android.arouter.launcher.ARouter
+import com.cooleshow.base.common.WebConstants
 import com.cooleshow.base.ext.setVisible
 import com.cooleshow.base.router.RouterPath
 import com.cooleshow.base.ui.fragment.BaseMVPFragment
@@ -37,6 +38,7 @@ class HomeFragment : BaseMVPFragment<FragmentHomeLayoutBinding, HomePresenter>()
         mViewBinding.cardMineIncome.setOnClickListener(this)
         mViewBinding.cardMineAssess.setOnClickListener(this)
         mViewBinding.cardAfterClassAssess.setOnClickListener(this)
+        mViewBinding.ivCertificationStatus.setOnClickListener(this)
     }
 
     override fun createPresenter(): HomePresenter {
@@ -137,10 +139,16 @@ class HomeFragment : BaseMVPFragment<FragmentHomeLayoutBinding, HomePresenter>()
                 ARouter.getInstance().build(RouterPath.CommentCenter.TEACHER_RECEIVED_COMMENT)
                     .navigation()
             }
-            R.id.card_after_class_assess->{
+            R.id.card_after_class_assess -> {
                 ARouter.getInstance().build(RouterPath.CommentCenter.TEACHER_COURSE_COMMENT)
                     .navigation()
             }
+            R.id.iv_certification_status -> {
+                //老师认证
+                ARouter.getInstance().build(RouterPath.WebCenter.ACTIVITY_HTML)
+                    .withString(WebConstants.WEB_URL, WebConstants.TEACHER_CERT)
+                    .navigation()
+            }
         }
     }
 

+ 73 - 8
teacher/src/main/java/com/cooleshow/teacher/ui/web/WebActivity.java

@@ -1,8 +1,9 @@
 package com.cooleshow.teacher.ui.web;
 
+import android.Manifest;
+import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.content.res.Configuration;
-import android.graphics.Color;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
@@ -17,20 +18,33 @@ import android.widget.FrameLayout;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.cooleshow.base.BuildConfig;
-import com.cooleshow.base.databinding.ActivityHtmlBinding;
+import com.cooleshow.base.common.WebConstants;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseActivity;
 import com.cooleshow.base.utils.LogUtils;
+import com.cooleshow.base.utils.PermissionUtils;
 import com.cooleshow.base.utils.Utils;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
+import com.cooleshow.teacher.widgets.helper.JsInterfaceHelper;
 import com.cooleshow.base.widgets.WebClient;
+import com.cooleshow.base.widgets.dialog.CommonDialog;
 import com.cooleshow.teacher.R;
-import com.cooleshow.teacher.widgets.helper.JsInterfaceHelper;
+import com.cooleshow.teacher.databinding.ActivityHtmlBinding;
 import com.cooleshow.base.widgets.LollipopFixedWebView;
 import com.cooleshow.usercenter.helper.UserHelper;
+import com.daya.live_teaching.utils.GlideEngine;
+import com.luck.picture.lib.PictureSelector;
+import com.luck.picture.lib.config.PictureConfig;
+import com.luck.picture.lib.config.PictureMimeType;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.tools.PictureFileUtils;
+import com.tbruyelle.rxpermissions3.RxPermissions;
 
 import org.json.JSONObject;
 
+import java.io.File;
+import java.util.List;
+
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
@@ -41,11 +55,12 @@ import static com.cooleshow.base.common.WebConstants.WEB_URL;
  */
 @Route(path = RouterPath.WebCenter.ACTIVITY_HTML)
 public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements JsInterfaceHelper.OnJsMethodCallListener, View.OnClickListener {
-
     private WebView webView;
     private String url;
     private JsInterfaceHelper mInterfaceUtils;
     private WebClient mWebClient;
+    private ValueCallback mUploadCallbackAboveL;
+
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -88,7 +103,7 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
         initWebView();
         mInterfaceUtils = new JsInterfaceHelper(WebActivity.this);
         mInterfaceUtils.setOnJsCallListener(this);
-        webView.addJavascriptInterface(mInterfaceUtils, "COLEXIUAPPA");
+        webView.addJavascriptInterface(mInterfaceUtils, WebConstants.WEB_JS_INTERFACE);
         mWebClient = new WebClient();
         webView.setWebViewClient(mWebClient);
         webView.setWebChromeClient(new MyWebChromeClient());
@@ -115,7 +130,7 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
     private void initWebView() {
         //声明WebSettings子类
         WebSettings webSettings = webView.getSettings();
-        webSettings.setUserAgentString(webSettings.getUserAgentString() + ";DAYAAPPA");
+        webSettings.setUserAgentString(webSettings.getUserAgentString() + WebConstants.WEB_UA_PARAMS);
         webSettings.setGeolocationDatabasePath(getApplicationContext().getFilesDir().getPath());
         webSettings.setGeolocationEnabled(true);
         webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
@@ -248,8 +263,8 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
         public boolean onShowFileChooser(
                 WebView webView, ValueCallback<Uri[]> filePathCallback,
                 FileChooserParams fileChooserParams) {
-//            setUploadMsg(filePathCallback);
-//            addPermissions(PORTRAIT_REQUEST_CODE);
+            mUploadCallbackAboveL = filePathCallback;
+            startPictureSelect();
             return true;
         }
 
@@ -304,4 +319,54 @@ public class WebActivity extends BaseActivity<ActivityHtmlBinding> implements Js
     public void onConfigurationChanged(@NonNull Configuration newConfig) {
         super.onConfigurationChanged(newConfig);
     }
+
+
+    private void startPictureSelect() {
+        new RxPermissions(this)
+                .request(Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE)
+                .subscribe(permission -> {
+                    if (permission) {
+                        PictureSelector.create(this)
+                                .openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
+                                .loadImageEngine(GlideEngine.createGlideEngine())
+                                .theme(com.cooleshow.base.R.style.picture_daya_style)// 主题样式设置 具体参考 values/styles   用法:R .style.picture.white.style
+                                .selectionMode(PictureConfig.SINGLE)// 多选 or 单选 PictureConfig.MULTIPLE or PictureConfig.SINGLE
+                                .enableCrop(false)// 是否裁剪 true or false
+                                .showCropGrid(false)// 是否显示裁剪矩形网格 圆形裁剪时建议设为false    true or false
+                                .compress(true)// 是否压缩 true or false
+                                .circleDimmedLayer(false)// 是否圆形裁剪 true or false
+                                .forResult(PictureConfig.CHOOSE_REQUEST);
+                    } else {
+                        CommonDialog dialog = new CommonDialog(this);
+                        dialog.show();
+                        dialog.setTitle("提示");
+                        dialog.setContent("上传照片需要相机权限,是否去设置?");
+                        dialog.setOnCancelClickListener(view1 -> {
+                            dialog.dismiss();
+                        });
+
+                        dialog.setOnConfirmClickListener(view1 -> {
+                            PermissionUtils.toSelfSetting(this);
+                            dialog.dismiss();
+                        });
+                    }
+                });
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode == PictureConfig.CHOOSE_REQUEST && mUploadCallbackAboveL != null) {
+            // 图片、视频、音频选择结果回调
+            List<LocalMedia> selectList = PictureSelector.obtainMultipleResult(data);
+            String avatar = selectList.get(0).getCompressPath();
+
+            if (avatar != null) {
+                mUploadCallbackAboveL.onReceiveValue(new Uri[]{PictureFileUtils.parUri(getApplicationContext(), new File(avatar))});
+            } else {
+                mUploadCallbackAboveL.onReceiveValue(new Uri[]{});
+            }
+            mUploadCallbackAboveL = null;
+        }
+    }
 }

+ 6 - 0
teacher/src/main/java/com/cooleshow/teacher/widgets/helper/JsInterfaceHelper.java

@@ -27,6 +27,7 @@ public class JsInterfaceHelper extends Object {
     public static final String GET_NAV_HEIGHT = "getNavHeight";//获取状态栏高度
     public static final String BACKICONCHANGE = "backIconChange";//顶部栏返回按钮颜色
     public static final String SETBARSTATUS = "setBarStatus";//顶部栏控制
+    public static final String FINISH = "back";//结束本页面
 
     private Activity activity;
     JSONObject resultJson;
@@ -87,6 +88,11 @@ public class JsInterfaceHelper extends Object {
             }
             return;
         }
+        if (TextUtils.equals(FINISH, api)) {
+            //结束本页面
+            activity.finish();
+            return;
+        }
     }
 
 

+ 0 - 0
BaseLibrary/src/main/res/layout/activity_html.xml → teacher/src/main/res/layout/activity_html.xml