浏览代码

修改版本更新控制的时机,增加登录页版本号显示

Pq 1 年之前
父节点
当前提交
d37da38464

+ 27 - 7
BaseLibrary/src/main/java/com/cooleshow/base/utils/helper/UpdateAppHelper.java

@@ -17,12 +17,15 @@ import com.allenliu.versionchecklib.v2.callback.ForceUpdateListener;
 import com.cooleshow.base.R;
 import com.cooleshow.base.bean.UpdateAppBean;
 import com.cooleshow.base.common.AppManager;
+import com.cooleshow.base.common.BaseApplication;
+import com.cooleshow.base.common.BaseConstant;
 import com.cooleshow.base.data.api.AppVersionApi;
 import com.cooleshow.base.data.net.BaseResponse;
 import com.cooleshow.base.data.net.RetrofitClientNoToken;
 import com.cooleshow.base.data.net.RetrofitFactory;
 import com.cooleshow.base.utils.AppUtils;
 import com.cooleshow.base.utils.EncodeUtils;
+import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.Utils;
 import com.jaygoo.widget.RangeSeekBar;
 
@@ -37,6 +40,8 @@ import io.reactivex.rxjava3.schedulers.Schedulers;
  * Author by pq, Date on 2022/7/14.
  */
 public class UpdateAppHelper {
+    public static final String STUDENT_PLATFORM = "android-student";
+    public static final String TEACHER_PLATFORM = "android-teacher";
     private static volatile UpdateAppHelper mHelper;
 
     private UpdateAppHelper() {
@@ -54,12 +59,23 @@ public class UpdateAppHelper {
         return mHelper;
     }
 
-    public void checkUpdate(Activity activity, String platform) {
-        queryByPlatform(activity, platform);
+    public void checkUpdate() {
+        queryByPlatform(Utils.getApp(), getAppPlatform(), false);
     }
 
+    public void checkUpdate(boolean isNeedTip) {
+        queryByPlatform(Utils.getApp(), getAppPlatform(), isNeedTip);
+    }
+
+    private String getAppPlatform() {
+        if (BaseApplication.Companion.isTeacherClient()) {
+            return TEACHER_PLATFORM;
+        }
+        return STUDENT_PLATFORM;
+    }
 
-    private void queryByPlatform(Activity activity, String platform) {
+
+    private void queryByPlatform(Context context, String platform, boolean isNeedTip) {
         Observable<BaseResponse<UpdateAppBean>> observable = RetrofitFactory.Companion.getInstance().create(AppVersionApi.class).queryByPlatform(platform);
         observable.subscribeOn(Schedulers.newThread())
                 .observeOn(AndroidSchedulers.mainThread())
@@ -72,7 +88,7 @@ public class UpdateAppHelper {
                     @Override
                     public void onNext(@NonNull BaseResponse<UpdateAppBean> updateAppBeanBaseResponse) {
                         if (updateAppBeanBaseResponse != null) {
-                            handleResult(activity, updateAppBeanBaseResponse.getData());
+                            handleResult(context, updateAppBeanBaseResponse.getData(), isNeedTip);
                         }
                     }
 
@@ -88,7 +104,7 @@ public class UpdateAppHelper {
                 });
     }
 
-    private void handleResult(Activity activity, UpdateAppBean data) {
+    private void handleResult(Context con, UpdateAppBean data, boolean isNeedTip) {
         if (data == null) {
             return;
         }
@@ -100,7 +116,7 @@ public class UpdateAppHelper {
                     .downloadOnly(UIData.create().setDownloadUrl(EncodeUtils.urlDecode(data.getDownloadUrl()))
                             .setTitle("发现新版本:" + data.getVersion())
                             .setContent(data.getDescription()))
-                            .setApkName(getApkName(activity, data.getVersion()));
+                    .setApkName(getApkName(con, data.getVersion()));
             builder.setCustomVersionDialogListener((context, versionBundle) -> {
                 Dialog baseDialog;
                 if (data.isIsForceUpdate()) {
@@ -189,7 +205,11 @@ public class UpdateAppHelper {
                     }
                 });
             }
-            builder.executeMission(activity);
+            builder.executeMission(con);
+        } else {
+            if (isNeedTip) {
+                ToastUtil.getInstance().showShort("当前是最新版本");
+            }
         }
     }
 

+ 2 - 0
BaseLibrary/src/main/res/values/strings.xml

@@ -25,4 +25,6 @@
     <string name="write_or_read_storage_permission_tip">存储权限用于在添加,制作,上传,发布,分享,下载,搜索,识别图片和视频等场景中读取和写入相册和文件内容;</string>
     <string name="record_audio_permission_tip">录音权限用于调音器,音视频录制,发送音频消息等场景中收集音频数据功能;</string>
     <string name="call_phone_permission_tip">拨打电话权限用于一键联系等场景中快捷拨打电话功能;</string>
+
+    <string name="app_version_tip">"版本号 %s"</string>
 </resources>

+ 0 - 4
institution/src/main/java/com/cooleshow/institution/stu/ui/main/MainActivity.java

@@ -301,12 +301,8 @@ public class MainActivity extends BaseMVPActivity<ActivityInstitutionMainLayoutB
      * 申请存储权限
      */
     private void requestPermission() {
-        checkAppVersion();
     }
 
-    private void checkAppVersion() {
-        UpdateAppHelper.getInstance().checkUpdate(this, "android-student");
-    }
 
     private void bindPushId() {
         String userId = UserHelper.getUserId();

+ 0 - 6
student/src/main/java/com/cooleshow/student/ui/main/MainActivity.java

@@ -110,11 +110,6 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
         parseIntent(getIntent());
     }
 
-    private void checkAppVersion() {
-        UpdateAppHelper.getInstance().checkUpdate(this, "android-student");
-    }
-
-
     @Override
     protected void onNewIntent(Intent intent) {
         super.onNewIntent(intent);
@@ -251,7 +246,6 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
      * 申请存储权限
      */
     private void requestPermission() {
-        checkAppVersion();
     }
 
 

+ 2 - 1
student/src/main/java/com/cooleshow/student/ui/mine/AboutActivity.java

@@ -39,7 +39,8 @@ public class AboutActivity extends BaseMVPActivity<ActivityAboutBinding, AboutPr
     @Override
     protected void initView() {
         initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "关于我们");
-        viewBinding.tvVersion.setText("版本号:"+ AppUtils.getAppVersionName());
+        viewBinding.tvVersion.setText(getString(com.cooleshow.base.R.string.app_version_tip, AppUtils.getAppVersionName()));
+
 
         viewBinding.tvIcp.setOnClickListener(new View.OnClickListener() {
             @Override

+ 9 - 2
student/src/main/java/com/cooleshow/student/ui/splash/SplashActivity.kt

@@ -12,14 +12,16 @@ import android.text.style.ClickableSpan
 import android.view.View
 import com.alibaba.android.arouter.facade.Postcard
 import com.alibaba.android.arouter.launcher.ARouter
-import com.cooleshow.base.common.BaseConstant
 import com.cooleshow.base.common.ConstantKey
 import com.cooleshow.base.common.WebConstants
 import com.cooleshow.base.constanst.Constants
 import com.cooleshow.base.router.RouterPath
 import com.cooleshow.base.ui.activity.BaseActivity
-import com.cooleshow.base.utils.*
+import com.cooleshow.base.utils.LogUtils
+import com.cooleshow.base.utils.SPUtils
+import com.cooleshow.base.utils.ToastUtil
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper
+import com.cooleshow.base.utils.helper.UpdateAppHelper
 import com.cooleshow.base.widgets.dialog.PrivacyTipDialog
 import com.cooleshow.student.databinding.ActivitySplashLayoutBinding
 import com.cooleshow.student.helper.InitHelper
@@ -155,6 +157,7 @@ class SplashActivity : BaseActivity<ActivitySplashLayoutBinding>() {
     }
 
     private fun goIntent() {
+        checkAppVersion();
         val isFirstLaunch = SPUtils.getInstance().getBoolean(ConstantKey.IS_FIRST_LAUNCH, false)
         val uri: Uri? = intent.data
         var params: String = ""
@@ -184,6 +187,10 @@ class SplashActivity : BaseActivity<ActivitySplashLayoutBinding>() {
         finish()
     }
 
+    private fun checkAppVersion() {
+        UpdateAppHelper.getInstance().checkUpdate()
+    }
+
     private fun goGuide(extra: String) {
         var build: Postcard = ARouter.getInstance().build(RouterPath.SplashCenter.SPLASH_GUIDE)
         if (extra.isNotEmpty()) {

+ 0 - 4
teacher/src/main/java/com/cooleshow/teacher/ui/main/MainActivity.java

@@ -104,9 +104,6 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
         parseIntent(getIntent());
     }
 
-    private void checkAppVersion() {
-        UpdateAppHelper.getInstance().checkUpdate(this, "android-teacher");
-    }
 
     @NonNull
     @Override
@@ -225,7 +222,6 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
      * 申请存储权限
      */
     private void requestPermission() {
-        checkAppVersion();
     }
 
 

+ 1 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/mine/AboutActivity.java

@@ -39,7 +39,7 @@ public class AboutActivity extends BaseMVPActivity<ActivityAboutBinding, AboutPr
     @Override
     protected void initView() {
         initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "关于我们");
-        viewBinding.tvVersion.setText("版本号:"+ AppUtils.getAppVersionName());
+        viewBinding.tvVersion.setText(getString(com.cooleshow.base.R.string.app_version_tip, AppUtils.getAppVersionName()));
 
         viewBinding.tvIcp.setOnClickListener(new View.OnClickListener() {
             @Override

+ 8 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/splash/SplashActivity.kt

@@ -17,6 +17,7 @@ import com.cooleshow.base.constanst.Constants
 import com.cooleshow.base.router.RouterPath
 import com.cooleshow.base.ui.activity.BaseActivity
 import com.cooleshow.base.utils.*
+import com.cooleshow.base.utils.helper.UpdateAppHelper
 import com.cooleshow.base.widgets.dialog.PrivacyTipDialog
 import com.cooleshow.teacher.databinding.ActivitySplashLayoutBinding
 import com.cooleshow.teacher.helper.InitHelper
@@ -72,7 +73,8 @@ class SplashActivity : BaseActivity<ActivitySplashLayoutBinding>() {
     }
 
     private fun showPrivacyTipDialog() {
-        val contentStart = "亲爱的用户,感谢您的信任并使用酷乐秀学院APP!\n    在使用我们的产品和服务前,请您先阅读并了解"
+        val contentStart =
+            "亲爱的用户,感谢您的信任并使用酷乐秀学院APP!\n    在使用我们的产品和服务前,请您先阅读并了解"
         val userProtocol = "《用户协议》"
         val privacy = "和《隐私政策》"
         val contentEnd = """
@@ -146,6 +148,7 @@ class SplashActivity : BaseActivity<ActivitySplashLayoutBinding>() {
     }
 
     private fun goIntent() {
+        checkAppVersion();
         val isFirstLaunch = SPUtils.getInstance().getBoolean(ConstantKey.IS_FIRST_LAUNCH, false)
         val uri: Uri? = intent.data
         var params: String = ""
@@ -175,6 +178,10 @@ class SplashActivity : BaseActivity<ActivitySplashLayoutBinding>() {
         finish()
     }
 
+    private fun checkAppVersion() {
+        UpdateAppHelper.getInstance().checkUpdate()
+    }
+
     private fun goGuide(extra: String) {
         var build: Postcard = ARouter.getInstance().build(RouterPath.SplashCenter.SPLASH_GUIDE)
         if (extra.isNotEmpty()) {

+ 13 - 0
usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/LoginActivity.kt

@@ -2,6 +2,7 @@ package com.cooleshow.usercenter.ui.activity
 
 import android.content.Intent
 import android.graphics.Color
+import android.graphics.Paint
 import android.os.Bundle
 import android.text.TextPaint
 import android.text.TextUtils
@@ -15,11 +16,13 @@ import com.cooleshow.base.common.WebConstants
 import com.cooleshow.base.ext.onClick
 import com.cooleshow.base.router.RouterPath
 import com.cooleshow.base.ui.activity.BaseMVPActivity
+import com.cooleshow.base.utils.AppUtils
 import com.cooleshow.base.utils.PhoneUtils
 import com.cooleshow.base.utils.SpannableStringUtils
 import com.cooleshow.base.utils.ToastUtil
 import com.cooleshow.base.utils.UiUtils
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper
+import com.cooleshow.base.utils.helper.UpdateAppHelper
 import com.cooleshow.usercenter.R
 import com.cooleshow.usercenter.bean.UserInfo
 import com.cooleshow.usercenter.bean.UserLoginInfo
@@ -66,6 +69,16 @@ class LoginActivity : BaseMVPActivity<ActivityLoginBinding, LoginPresenter>(),
         }
 //        viewBinding.cbPrivacy.isChecked = UserHelper.getAppPrivacyMode() == 1
 
+        viewBinding.tvVersion.paintFlags =
+            viewBinding.tvVersion.paintFlags or Paint.UNDERLINE_TEXT_FLAG
+        viewBinding.tvVersion.text =
+            getString(com.cooleshow.base.R.string.app_version_tip, AppUtils.getAppVersionName())
+
+        viewBinding.tvVersion.setOnClickListener {
+            UpdateAppHelper.getInstance().checkUpdate(true)
+        }
+
+
         setPrivacyText()
         mLoginBtn.setOnClickListener {
             if (UiUtils.isFastClick()) {

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

@@ -2,6 +2,7 @@ package com.cooleshow.usercenter.ui.activity;
 
 import android.content.Intent;
 import android.graphics.Color;
+import android.graphics.Paint;
 import android.os.Bundle;
 import android.text.TextPaint;
 import android.text.TextUtils;
@@ -23,6 +24,7 @@ import com.cooleshow.base.data.net.CommonParamsHelper;
 import com.cooleshow.base.event.LoginStatusEvent;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.AppUtils;
 import com.cooleshow.base.utils.DeviceUtils;
 import com.cooleshow.base.utils.LogUtils;
 import com.cooleshow.base.utils.PhoneUtils;
@@ -31,6 +33,7 @@ import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.ToastUtils;
 import com.cooleshow.base.utils.helper.BaseEventHelper;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
+import com.cooleshow.base.utils.helper.UpdateAppHelper;
 import com.cooleshow.usercenter.R;
 import com.cooleshow.usercenter.constants.UserConstants;
 import com.cooleshow.usercenter.databinding.ActivityVerifyCodeLoginBinding;
@@ -93,9 +96,15 @@ public class VerifyCodeLoginActivity extends BaseMVPActivity<ActivityVerifyCodeL
         viewBinding.tvSendVerifyCode.setOnClickListener(this);
         viewBinding.tvLoginByCode.setOnClickListener(this);
         viewBinding.viewDeviceView.setOnClickListener(this);
+        viewBinding.tvVersion.setOnClickListener(this);
         if (!TextUtils.isEmpty(mPhoneNum)) {
             viewBinding.etPhoneNum.setText(mPhoneNum);
         }
+
+        viewBinding.tvVersion.setPaintFlags(viewBinding.tvVersion.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
+        viewBinding.tvVersion.setText(getString(com.cooleshow.base.R.string.app_version_tip, AppUtils.getAppVersionName()));
+
+
 //        if (UserHelper.getAppPrivacyMode() == 1) {
 //            //已同意隐私协议及用户协议
 //            viewBinding.cbPrivacy.setChecked(true);
@@ -159,6 +168,11 @@ public class VerifyCodeLoginActivity extends BaseMVPActivity<ActivityVerifyCodeL
             }
             return;
         }
+
+        if (v.getId() == R.id.tv_version) {
+            UpdateAppHelper.getInstance().checkUpdate(true);
+            return;
+        }
     }
 
     @Override

+ 14 - 0
usercenter/src/main/res/layout/activity_login.xml

@@ -178,6 +178,20 @@
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toRightOf="parent" />
 
+
+    <TextView
+        android:id="@+id/tv_version"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:includeFontPadding="false"
+        android:textColor="@color/color_b2b2b2"
+        android:textSize="@dimen/sp_12"
+        android:layout_marginTop="18dp"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/tv_privacy"
+        tools:text="版本号 1.5.7" />
+
     <!--    <TextView-->
     <!--        android:id="@+id/mForgetPwdTv"-->
     <!--        style="@style/WrapWrap"-->

+ 16 - 1
usercenter/src/main/res/layout/activity_verify_code_login.xml

@@ -156,8 +156,23 @@
         app:layout_constraintRight_toRightOf="parent" />
 
     <TextView
+        android:id="@+id/tv_version"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:includeFontPadding="false"
+        android:textColor="@color/color_b2b2b2"
+        android:textSize="@dimen/sp_12"
+        android:layout_marginTop="18dp"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/tv_privacy"
+        tools:text="版本号 1.5.7" />
+
+
+    <TextView
+        tools:visibility="visible"
         android:visibility="gone"
-        app:layout_constraintTop_toBottomOf="@+id/cb_privacy"
+        app:layout_constraintTop_toBottomOf="@+id/tv_version"
         android:layout_marginTop="20dp"
         tools:text="您的设备号:19291289128"
         app:layout_constraintRight_toRightOf="parent"