更新功能修改

This commit is contained in:
zhanglei
2025-11-05 10:55:01 +08:00
parent bd30876daf
commit f4d06e5a8a
4 changed files with 57 additions and 12 deletions
@@ -4,6 +4,9 @@ import android.app.ProgressDialog
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.view.Window import android.view.Window
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import com.btpj.lib_base.data.local.DataStoreManager import com.btpj.lib_base.data.local.DataStoreManager
import com.btpj.lib_base.data.local.IpManager import com.btpj.lib_base.data.local.IpManager
import com.btpj.lib_base.ext.jsonToBean import com.btpj.lib_base.ext.jsonToBean
@@ -16,6 +19,8 @@ import com.xjjk.healthexpertclient.databinding.ActivitySettingBinding
import com.xjjk.healthexpertclient.ext.startWebActivity import com.xjjk.healthexpertclient.ext.startWebActivity
import com.xjjk.healthexpertclient.ui.mine.viewmodel.SettingViewModel import com.xjjk.healthexpertclient.ui.mine.viewmodel.SettingViewModel
import com.xjjk.healthexpertclient.view.LoadingProgressDialog import com.xjjk.healthexpertclient.view.LoadingProgressDialog
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
import org.lzh.framework.updatepluginlib.UpdateBuilder import org.lzh.framework.updatepluginlib.UpdateBuilder
import org.lzh.framework.updatepluginlib.base.UpdateParser import org.lzh.framework.updatepluginlib.base.UpdateParser
import org.lzh.framework.updatepluginlib.model.Update import org.lzh.framework.updatepluginlib.model.Update
@@ -27,6 +32,8 @@ import org.lzh.framework.updatepluginlib.model.Update
*/ */
class SettingActivity: BaseActivity<SettingViewModel, ActivitySettingBinding>(R.layout.activity_setting) { class SettingActivity: BaseActivity<SettingViewModel, ActivitySettingBinding>(R.layout.activity_setting) {
var dialog: LoadingProgressDialog? = null var dialog: LoadingProgressDialog? = null
var hasNewVersion=false
override fun initView(savedInstanceState: Bundle?) { override fun initView(savedInstanceState: Bundle?) {
} }
@@ -37,7 +44,8 @@ class SettingActivity: BaseActivity<SettingViewModel, ActivitySettingBinding>(R.
var str=AppUtil.getAppVersionName(this)+"(${AppUtil.getAppVersionCode(this)})" var str=AppUtil.getAppVersionName(this)+"(${AppUtil.getAppVersionCode(this)})"
mBinding.tvVersion.text = getString(R.string.app_version, str) mBinding.tvVersion.text = getString(R.string.app_version, str)
// mBinding.tvAbout.text = getString(R.string.setting_about, getString(R.string.app_name)) // mBinding.tvAbout.text = getString(R.string.setting_about, getString(R.string.app_name))
initUpdateApp(false) // initUpdateApp(false)
mViewModel.getAppUpdateInfo()
} }
override fun bindEvent() { override fun bindEvent() {
@@ -65,10 +73,32 @@ class SettingActivity: BaseActivity<SettingViewModel, ActivitySettingBinding>(R.
} }
R.id.rl_version_update -> { R.id.rl_version_update -> {
initUpdateApp(true) if (hasNewVersion) {
UpdateBuilder.create().check()
} else {
showToast("已是最新版本")
} }
} }
} }
}
override fun createObserve() {
super.createObserve()
lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.CREATED) {
mViewModel.appUpdateInfoData.collectLatest { bean ->
bean?:return@collectLatest
if (bean.versionNo> BuildConfig.VERSION_CODE){
hasNewVersion=true
mBinding?.tvVersionUpdate?.text="有新版本待更新"
}else{
mBinding?.tvVersionUpdate?.text="已是最新版本"
}
}
}
}
}
private fun initUpdateApp(isClick:Boolean){ private fun initUpdateApp(isClick:Boolean){
dialog?.show() dialog?.show()
@@ -1,6 +1,11 @@
package com.xjjk.healthexpertclient.ui.mine.viewmodel package com.xjjk.healthexpertclient.ui.mine.viewmodel
import com.btpj.lib_base.base.BaseViewModel import com.btpj.lib_base.base.BaseViewModel
import com.btpj.lib_base.ext.handleRequest
import com.btpj.lib_base.ext.launch
import com.xjjk.healthexpertclient.bean.AppUpdateBean
import com.xjjk.healthexpertclient.data.repository.WorkbenchRepository
import kotlinx.coroutines.flow.MutableSharedFlow
/** /**
* @author nanfeifei * @author nanfeifei
@@ -8,7 +13,20 @@ import com.btpj.lib_base.base.BaseViewModel
* @description * @description
*/ */
class SettingViewModel : BaseViewModel() { class SettingViewModel : BaseViewModel() {
var appUpdateInfoData = MutableSharedFlow<AppUpdateBean?>()
override fun init() { override fun init() {
} }
fun getAppUpdateInfo() {
launch({
handleRequest(WorkbenchRepository.getAppUpdateInfo(""), successBlock = {
appUpdateInfoData.emit(it.result)
})
})
}
} }
+2 -2
View File
@@ -2,8 +2,8 @@ ext {
minSdkVersion = 21 minSdkVersion = 21
targetSdkVersion = 32 targetSdkVersion = 32
compileSdkVersion = 32 compileSdkVersion = 32
versionCode = 10004 versionCode = 10006
versionName = "1.00.04" versionName = "1.00.06"
//Dependencies //Dependencies
junitVersion = "4.12" junitVersion = "4.12"
lifecycleVersion = "2.6.0-alpha01" lifecycleVersion = "2.6.0-alpha01"
@@ -21,16 +21,13 @@ object IpManager {
/** 常用的IP */ /** 常用的IP */
private const val DEBUG_DEFAULT_IP_ADDRESS_REMOTE = "http://cqyt.dev.yg.dt.io/" // 开发环境 private const val DEBUG_DEFAULT_IP_ADDRESS_REMOTE = "http://cqyt.dev.yg.dt.io/" // 开发环境
private const val TEST_DEFAULT_IP_ADDRESS_REMOTE = "https://xjgateway.mcrm.vip:8888/" // 测试环境 private const val TEST_DEFAULT_IP_ADDRESS_REMOTE = "https://xjgateway.mcrm.vip:8888/" // 测试环境
// private const val TEST_DEFAULT_IP_ADDRESS_REMOTE = "https://quarry-api.yg.icdat.cn/" // 测试环境 // private const val PRODUCT_DEFAULT_IP_ADDRESS_REMOTE = "https://api.xjygjk.com/" // 线上环境
// private const val PRODUCT_DEFAULT_IP_ADDRESS_REMOTE = "https://xjapi.icdat.cn/" // 线上环境 private const val PRODUCT_DEFAULT_IP_ADDRESS_REMOTE = "https://api-jkglpt.iosp.ydpt.tech/" // 线上环境
private const val PRODUCT_DEFAULT_IP_ADDRESS_REMOTE = "https://api.xjygjk.com/" // 线上环境
// private const val PRODUCT_DEFAULT_IP_ADDRESS_REMOTE = "https://api-jkglpt.iosp.ydpt.tech/" // 线上环境
private const val DEBUG_H5_ADDRESS_REMOTE = "http://cms.dev.yg.dt.io" // 开发环境 private const val DEBUG_H5_ADDRESS_REMOTE = "http://cms.dev.yg.dt.io" // 开发环境
private const val TEST_H5_ADDRESS_REMOTE = "https://xjconsole.mcrm.vip:8888" // 测试环境 private const val TEST_H5_ADDRESS_REMOTE = "https://xjconsole.mcrm.vip:8888" // 测试环境
// private const val PRODUCT_H5_ADDRESS_REMOTE = "https://xjconsole.icdat.cn" // 线上环境 // private const val PRODUCT_H5_ADDRESS_REMOTE = "https://console.xjygjk.com" // 线上环境
private const val PRODUCT_H5_ADDRESS_REMOTE = "https://console.xjygjk.com" // 线上环境 private const val PRODUCT_H5_ADDRESS_REMOTE = "https://console-jkglpt.iosp.ydpt.tech" // 线上环境
// private const val PRODUCT_H5_ADDRESS_REMOTE = "https://console-jkglpt.iosp.ydpt.tech" // 线上环境
private const val KEY_IP_SET = "data_ip_set" private const val KEY_IP_SET = "data_ip_set"