diff --git a/app/src/main/java/com/zs/smarthuman/bean/UserInfoResp.kt b/app/src/main/java/com/zs/smarthuman/bean/UserInfoResp.kt index 7230288..915181b 100644 --- a/app/src/main/java/com/zs/smarthuman/bean/UserInfoResp.kt +++ b/app/src/main/java/com/zs/smarthuman/bean/UserInfoResp.kt @@ -11,7 +11,7 @@ data class UserInfoResp( val avatar: String, val gender: Int = 0, val age: Int = 0, - val wakeUpAudioUrl: String = "", - val endAudioUrl: String = "", + val wakeUpAudioUrl: String, + val endAudioUrl: String, val sn: String = "" ) diff --git a/app/src/main/java/com/zs/smarthuman/bean/VersionUpdateResp.kt b/app/src/main/java/com/zs/smarthuman/bean/VersionUpdateResp.kt new file mode 100644 index 0000000..da49f99 --- /dev/null +++ b/app/src/main/java/com/zs/smarthuman/bean/VersionUpdateResp.kt @@ -0,0 +1,9 @@ +package com.zs.smarthuman.bean + +/** + * @author lrs + * @date 2025/4/30 19:58 + * @description 获取后台存放最新apk版本信息 isForceUpdate:1、强制更新 0、非强制更新 + */ +data class VersionUpdateResp(val versionName: String = "", val versionCode: Int = 0, val updateLog: String = "", + val downloadUrl: String = "", val isForceUpdate: Int = 1) diff --git a/app/src/main/java/com/zs/smarthuman/http/ApiService.kt b/app/src/main/java/com/zs/smarthuman/http/ApiService.kt index 557fa63..de2d9e6 100644 --- a/app/src/main/java/com/zs/smarthuman/http/ApiService.kt +++ b/app/src/main/java/com/zs/smarthuman/http/ApiService.kt @@ -13,7 +13,8 @@ class ApiService { const val GET_USER_INFO_URL = "iot/info/getUserInfo" + const val UPLOAD_RECORD_VOICE_URL = "iot/chat" - const val UPLOAD_RECORD_VOICE_URL = "/iot/chat" + const val VERSION_UPDATE_URL = "iot/info/getLatestVersion" } } \ No newline at end of file diff --git a/app/src/main/java/com/zs/smarthuman/ui/MainActivity.kt b/app/src/main/java/com/zs/smarthuman/ui/MainActivity.kt index 1579375..b7cc5bf 100644 --- a/app/src/main/java/com/zs/smarthuman/ui/MainActivity.kt +++ b/app/src/main/java/com/zs/smarthuman/ui/MainActivity.kt @@ -13,6 +13,7 @@ import android.media.audiofx.AcousticEchoCanceler import android.os.Bundle import android.os.Environment import android.os.IBinder +import android.text.TextUtils import android.util.Log import android.view.View import android.widget.Toast @@ -25,15 +26,18 @@ import com.blankj.utilcode.util.FileUtils import com.blankj.utilcode.util.GsonUtils import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.PermissionUtils +import com.blankj.utilcode.util.SPUtils import com.blankj.utilcode.util.ScreenUtils import com.blankj.utilcode.util.ToastUtils import com.zs.smarthuman.App import com.zs.smarthuman.App.Companion.getInstance +import com.zs.smarthuman.BuildConfig import com.zs.smarthuman.R import com.zs.smarthuman.base.BaseActivity import com.zs.smarthuman.base.BaseViewModelActivity import com.zs.smarthuman.bean.NetworkStatusEventMsg import com.zs.smarthuman.bean.UserInfoResp +import com.zs.smarthuman.bean.VersionUpdateResp import com.zs.smarthuman.bean.VoiceBeanResp import com.zs.smarthuman.common.UserInfoManager import com.zs.smarthuman.databinding.ActivityMainBinding @@ -68,8 +72,10 @@ import rxhttp.wrapper.param.toAwaitResponse import java.io.File import java.nio.ByteBuffer import java.nio.ByteOrder +import kotlin.compareTo import kotlin.concurrent.thread import kotlin.math.sqrt +import kotlin.text.compareTo /** * @description: @@ -117,6 +123,7 @@ class MainActivity : BaseViewModelActivity() requestUserInfo() + versionUpdate() initObserver() } @@ -124,6 +131,10 @@ class MainActivity : BaseViewModelActivity() mViewModel?.getUserInfo() } + private fun versionUpdate(){ + mViewModel?.versionUpdate() + } + private fun initObserver() { mViewModel?.userInfoLiveData?.observe(this) { when (it) { @@ -150,6 +161,20 @@ class MainActivity : BaseViewModelActivity() } } } + + + + mViewModel?.versionUpdateLiveData?.observe(this){ + when(it){ + is ApiResult.Error -> {} + is ApiResult.Success -> { + if (it.data.versionCode > BuildConfig.VERSION_CODE) + {//有新版本 + + } + } + } + } } private fun initVoiceController() { @@ -196,7 +221,7 @@ class MainActivity : BaseViewModelActivity() voiceInfo = mutableListOf().apply { add( VoiceBeanResp( - audioUrl = UserInfoManager.userInfo?.endAudioUrl ?: "https://static.seerteach.net/aidialogue/userWakeUpAudio/ttsmaker-file-2025-12-31-16-2-51.mp3" + audioUrl = /*UserInfoManager.userInfo?.endAudioUrl ?: */"https://static.seerteach.net/aidialogue/userWakeUpAudio/ttsmaker-file-2025-12-31-16-2-51.mp3" ) ) } diff --git a/app/src/main/java/com/zs/smarthuman/viewmodel/MainViewModel.kt b/app/src/main/java/com/zs/smarthuman/viewmodel/MainViewModel.kt index e3d2122..cdc4724 100644 --- a/app/src/main/java/com/zs/smarthuman/viewmodel/MainViewModel.kt +++ b/app/src/main/java/com/zs/smarthuman/viewmodel/MainViewModel.kt @@ -5,6 +5,7 @@ import com.blankj.utilcode.util.ToastUtils import com.zs.smarthuman.base.BaseViewModel import com.zs.smarthuman.bean.QRCodeResp import com.zs.smarthuman.bean.UserInfoResp +import com.zs.smarthuman.bean.VersionUpdateResp import com.zs.smarthuman.bean.VoiceBeanResp import com.zs.smarthuman.http.ApiLiveData import com.zs.smarthuman.http.ApiResult @@ -46,4 +47,16 @@ class MainViewModel: BaseViewModel() { } } + + private val _versionUpdateLiveData = ApiLiveData() + val versionUpdateLiveData: LiveData> = _versionUpdateLiveData + fun versionUpdate() { + _versionUpdateLiveData.request { + RxHttp.get(ApiService.VERSION_UPDATE_URL) + .toAwaitResponse() + .awaitResult() + .getOrThrow() + } + } + } \ No newline at end of file