diff --git a/app/src/main/java/com/xjjk/healthexpertclient/ui/mine/SettingActivity.kt b/app/src/main/java/com/xjjk/healthexpertclient/ui/mine/SettingActivity.kt index 1bdc03d..5ce01f0 100644 --- a/app/src/main/java/com/xjjk/healthexpertclient/ui/mine/SettingActivity.kt +++ b/app/src/main/java/com/xjjk/healthexpertclient/ui/mine/SettingActivity.kt @@ -4,6 +4,9 @@ import android.app.ProgressDialog import android.os.Bundle import android.view.View 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.IpManager 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.ui.mine.viewmodel.SettingViewModel 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.base.UpdateParser import org.lzh.framework.updatepluginlib.model.Update @@ -27,6 +32,8 @@ import org.lzh.framework.updatepluginlib.model.Update */ class SettingActivity: BaseActivity(R.layout.activity_setting) { var dialog: LoadingProgressDialog? = null + var hasNewVersion=false + override fun initView(savedInstanceState: Bundle?) { } @@ -37,7 +44,8 @@ class SettingActivity: BaseActivity(R. var str=AppUtil.getAppVersionName(this)+"(${AppUtil.getAppVersionCode(this)})" mBinding.tvVersion.text = getString(R.string.app_version, str) // mBinding.tvAbout.text = getString(R.string.setting_about, getString(R.string.app_name)) - initUpdateApp(false) +// initUpdateApp(false) + mViewModel.getAppUpdateInfo() } override fun bindEvent() { @@ -65,11 +73,33 @@ class SettingActivity: BaseActivity(R. } 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){ dialog?.show() UpdateBuilder.create().setUpdateParser(object : UpdateParser() { diff --git a/app/src/main/java/com/xjjk/healthexpertclient/ui/mine/viewmodel/SettingViewModel.kt b/app/src/main/java/com/xjjk/healthexpertclient/ui/mine/viewmodel/SettingViewModel.kt index 4364690..63080e1 100644 --- a/app/src/main/java/com/xjjk/healthexpertclient/ui/mine/viewmodel/SettingViewModel.kt +++ b/app/src/main/java/com/xjjk/healthexpertclient/ui/mine/viewmodel/SettingViewModel.kt @@ -1,14 +1,32 @@ package com.xjjk.healthexpertclient.ui.mine.viewmodel 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 * @time 2023/5/23 16:05 * @description */ -class SettingViewModel: BaseViewModel() { +class SettingViewModel : BaseViewModel() { + + var appUpdateInfoData = MutableSharedFlow() + override fun init() { } + + + fun getAppUpdateInfo() { + launch({ + handleRequest(WorkbenchRepository.getAppUpdateInfo(""), successBlock = { + appUpdateInfoData.emit(it.result) + }) + }) + + } } \ No newline at end of file diff --git a/config.gradle b/config.gradle index ea0d1e8..1b1dc8b 100644 --- a/config.gradle +++ b/config.gradle @@ -2,8 +2,8 @@ ext { minSdkVersion = 21 targetSdkVersion = 32 compileSdkVersion = 32 - versionCode = 10004 - versionName = "1.00.04" + versionCode = 10006 + versionName = "1.00.06" //Dependencies junitVersion = "4.12" lifecycleVersion = "2.6.0-alpha01" diff --git a/lib_base/src/main/java/com/btpj/lib_base/data/local/IpManager.kt b/lib_base/src/main/java/com/btpj/lib_base/data/local/IpManager.kt index c19e917..54c2295 100644 --- a/lib_base/src/main/java/com/btpj/lib_base/data/local/IpManager.kt +++ b/lib_base/src/main/java/com/btpj/lib_base/data/local/IpManager.kt @@ -21,16 +21,13 @@ object IpManager { /** 常用的IP */ 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://quarry-api.yg.icdat.cn/" // 测试环境 -// private const val PRODUCT_DEFAULT_IP_ADDRESS_REMOTE = "https://xjapi.icdat.cn/" // 线上环境 - 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 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 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-jkglpt.iosp.ydpt.tech" // 线上环境 +// 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 KEY_IP_SET = "data_ip_set"