diff --git a/app/src/main/java/com/img/rabbit/MainActivity.kt b/app/src/main/java/com/img/rabbit/MainActivity.kt index 0c3d4c6..c88f86e 100644 --- a/app/src/main/java/com/img/rabbit/MainActivity.kt +++ b/app/src/main/java/com/img/rabbit/MainActivity.kt @@ -56,10 +56,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import androidx.lifecycle.viewmodel.compose.viewModel import com.google.accompanist.permissions.ExperimentalPermissionsApi -import com.img.rabbit.bean.request.ReportKey -import com.img.rabbit.bean.request.ReportRequest -import com.img.rabbit.bean.request.ReportType -import com.img.rabbit.components.CenterToast +import com.img.rabbit.bean.response.UniVersionEntity import com.img.rabbit.components.GlobalToast import com.img.rabbit.config.Constants import com.img.rabbit.config.Constants.agreementUrl @@ -115,18 +112,36 @@ class MainActivity : ComponentActivity(), LoadingCallback { val globalStateManager = remember { GlobalStateManager(context) } val updateAppNotify by globalStateManager.globalUpdateNotifyFlow().collectAsState(initial = false) - val updateUniDownloadNotify by globalStateManager.globalUniDownloadNotifyFlow().collectAsState(initial = false) val updateUserConfigNotify by globalStateManager.globalUserConfigNotifyFlow().collectAsState(initial = false) val updateUniUpdateNotify by globalStateManager.globalUniUpdateNotifyFlow().collectAsState(initial = false) - val updateGlobalLoadingNotify by globalStateManager.isGlobalLoadingFlow().collectAsState(initial = false) +// val updateGlobalLoadingNotify by globalStateManager.isGlobalLoadingFlow().collectAsState(initial = false) //重置状态信息(防止异常退出导致状态失效) LaunchedEffect(Unit) { globalStateManager.apply { storeGlobalUpdateNotify(false) - storeGlobalUniDownloadNotify(false) storeGlobalUserConfigNotify(false) storeGlobalUniUpdateNotify(false) - storeGlobalLoading(false) +// storeGlobalLoading(false) + } + } + + val isGlobalLoading by generalViewModel.isLoading.collectAsState() + var showUniDownloadDialog by remember { mutableStateOf(false) } + var downloadUniEntity by remember { mutableStateOf(null) } + + LaunchedEffect(Unit) { + GeneralViewModel.GlobalEventBus.events.collect { event -> + when (event) { + is GeneralViewModel.GlobalEvent.ShowUniDownloadNotify -> { + downloadUniEntity = event.entity + showUniDownloadDialog = true + } + is GeneralViewModel.GlobalEvent.ShowAppUpdateNotify -> { + // 处理 App 更新弹窗逻辑 + } + // ... 处理其他事件 + else -> {} + } } } @@ -187,9 +202,9 @@ class MainActivity : ComponentActivity(), LoadingCallback { //提示下载小程序资源(在跳转指定页面时,未下载资源需要提示) val progressWGTToPageState = remember { mutableFloatStateOf(0f) } - LaunchedEffect(updateUniDownloadNotify) { - if(updateUniDownloadNotify == true) { - UniAppUtils.currentDownloadUniMp?.let{ + LaunchedEffect(showUniDownloadDialog) { + if(showUniDownloadDialog) { + downloadUniEntity?.let{ UniAppUtils.downloadReleaseWgt( coroutineScope, it, @@ -206,9 +221,7 @@ class MainActivity : ComponentActivity(), LoadingCallback { progressWGTToPageState.floatValue = 1f Log.i("HomeScreen", "DOWNLOAD_FINISH") coroutineScope.launch { - globalStateManager.storeGlobalUniDownloadNotify( - false - ) + showUniDownloadDialog = false } } @@ -217,9 +230,7 @@ class MainActivity : ComponentActivity(), LoadingCallback { progressWGTToPageState.floatValue = -1f Log.i("HomeScreen", "DOWNLOAD_FAIL") coroutineScope.launch { - globalStateManager.storeGlobalUniDownloadNotify( - false - ) + showUniDownloadDialog = false } } @@ -236,7 +247,7 @@ class MainActivity : ComponentActivity(), LoadingCallback { onRelease = { isSuccess-> if(isSuccess){ //资源下载完成后,启动小程序到指定位置 - val uniMpEntity = UniAppUtils.currentDownloadUniMp + val uniMpEntity = downloadUniEntity if (uniMpEntity != null && UniAppUtils.isRelease(uniMpEntity.unimp_id)) { UniAppUtils.startUniMpPage( context = context, @@ -301,8 +312,8 @@ class MainActivity : ComponentActivity(), LoadingCallback { } //提示下载小程序资源(在跳转指定页面时,未下载资源需要提示) - if(updateUniDownloadNotify == true){ - UniAppUtils.currentDownloadUniMp?.let { + if(showUniDownloadDialog){ + downloadUniEntity?.let { TipsUniMpToPageDialog( title = "下载资源", content1 = "需要下载完资源才能运行,请稍后...", @@ -388,7 +399,8 @@ class MainActivity : ComponentActivity(), LoadingCallback { } //全局加载提示 - if (updateGlobalLoadingNotify == true) { + if(isGlobalLoading){ +// if (updateGlobalLoadingNotify == true) { Log.i("HomeScreen","isStartOn--->${System.currentTimeMillis()}") Box( modifier = Modifier @@ -423,7 +435,8 @@ class MainActivity : ComponentActivity(), LoadingCallback { override fun showLoading() { lifecycleScope.launch { - GlobalStateManager(this@MainActivity).storeGlobalLoading(true) +// GlobalStateManager(this@MainActivity).storeGlobalLoading(true) + generalViewModel.setLoading(true) } } @@ -431,7 +444,8 @@ class MainActivity : ComponentActivity(), LoadingCallback { override fun hideLoading() { lifecycleScope.launch { delay(3000L) - GlobalStateManager(this@MainActivity).storeGlobalLoading(false) +// GlobalStateManager(this@MainActivity).storeGlobalLoading(false) + generalViewModel.setLoading(false) } } } diff --git a/app/src/main/java/com/img/rabbit/pages/screen/HomeScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/HomeScreen.kt index 681afc1..5b00edd 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/HomeScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/HomeScreen.kt @@ -482,8 +482,8 @@ fun HomeScreen( if(!wgtExists){ //是否下载 scope.launch { - UniAppUtils.currentDownloadUniMp = uniVersion - GlobalStateManager(context).storeGlobalUniDownloadNotify(true) + GeneralViewModel.GlobalEventBus.emit( + GeneralViewModel.GlobalEvent.ShowUniDownloadNotify(uniVersion)) } }else { UniAppUtils.startUniMpPage(context = context, uniMpId = uniMpId, uniMpType = item.type, pagePath = item.url, reportViewModel = reportViewModel) diff --git a/app/src/main/java/com/img/rabbit/pages/screen/MineScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/MineScreen.kt index 9475ca4..dce7950 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/MineScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/MineScreen.kt @@ -389,7 +389,7 @@ fun MineScreen( if (!generalViewModel.api.isWXAppInstalled) { CenterToast.show("未安装微信客户端") }else if(userInfo != null){ - viewModel.requestServiceLink(context, generalViewModel.api) + viewModel.requestServiceLink(generalViewModel.api) } }, verticalAlignment = Alignment.CenterVertically diff --git a/app/src/main/java/com/img/rabbit/provider/storage/GlobalStateManager.kt b/app/src/main/java/com/img/rabbit/provider/storage/GlobalStateManager.kt index 5a73090..ad75cb1 100644 --- a/app/src/main/java/com/img/rabbit/provider/storage/GlobalStateManager.kt +++ b/app/src/main/java/com/img/rabbit/provider/storage/GlobalStateManager.kt @@ -22,17 +22,17 @@ class GlobalStateManager( private val GLOBAL_USER_CONFIG_NOTIFY = booleanPreferencesKey("global_user_config_notify") } - suspend fun storeGlobalLoading(value: Boolean) { - context.storeData.edit { preferences -> - preferences[GLOBAL_LOADING] = value - } - } - fun isGlobalLoadingFlow(): Flow { - return context.storeData.data.map { - preferences -> - preferences[GLOBAL_LOADING] - } - } +// suspend fun storeGlobalLoading(value: Boolean) { +// context.storeData.edit { preferences -> +// preferences[GLOBAL_LOADING] = value +// } +// } +// fun isGlobalLoadingFlow(): Flow { +// return context.storeData.data.map { +// preferences -> +// preferences[GLOBAL_LOADING] +// } +// } suspend fun storeGlobalUpdateNotify(value: Boolean) { @@ -59,19 +59,6 @@ class GlobalStateManager( } } - suspend fun storeGlobalUniDownloadNotify(value: Boolean) { - context.storeData.edit { preferences -> - preferences[GLOBAL_UNI_DOWNLOAD_NOTIFY] = value - } - } - fun globalUniDownloadNotifyFlow(): Flow { - return context.storeData.data.map { - preferences -> - preferences[GLOBAL_UNI_DOWNLOAD_NOTIFY] - } - } - - suspend fun storeGlobalUserConfigNotify(value: Boolean) { context.storeData.edit { preferences -> diff --git a/app/src/main/java/com/img/rabbit/utils/UniAppUtils.kt b/app/src/main/java/com/img/rabbit/utils/UniAppUtils.kt index a3fd0b3..84be444 100644 --- a/app/src/main/java/com/img/rabbit/utils/UniAppUtils.kt +++ b/app/src/main/java/com/img/rabbit/utils/UniAppUtils.kt @@ -53,8 +53,6 @@ object UniAppUtils { //当前正在更新的小程序 var currentUpdateUniMp: UniVersionEntity? = null - //当前正在下载的小程序 - var currentDownloadUniMp: UniVersionEntity? = null //仅当跳转指定小程序时,才需要跳转指定位置 var currentUniMpJumpPatch: String? = null diff --git a/app/src/main/java/com/img/rabbit/viewmodel/AccountBindViewModel.kt b/app/src/main/java/com/img/rabbit/viewmodel/AccountBindViewModel.kt index 65dd29c..cbf6947 100644 --- a/app/src/main/java/com/img/rabbit/viewmodel/AccountBindViewModel.kt +++ b/app/src/main/java/com/img/rabbit/viewmodel/AccountBindViewModel.kt @@ -19,8 +19,6 @@ class AccountBindViewModel : BaseViewModel() { * 请求登录(验证码) */ fun requestUnBindByPhone(phone: String) { - isLoading.value = true // 开始加载 - // 调用 API 获取数据 val jsonPhone = JsonObject() jsonPhone.addProperty("phone", phone) @@ -41,7 +39,6 @@ class AccountBindViewModel : BaseViewModel() { if(wechatCode.isEmpty()){ return } - isLoading.value = true // 开始加载 PreferenceUtil.saveWxCode(wechatCode) // 调用 API 获取数据 @@ -65,7 +62,6 @@ class AccountBindViewModel : BaseViewModel() { }else{ errorState.value = ErrorBean(response.code.toString(), response.message.ifEmpty { "解绑失败" }) } - isLoading.value = false // 加载完成 } } } \ No newline at end of file diff --git a/app/src/main/java/com/img/rabbit/viewmodel/AccountManagerViewModel.kt b/app/src/main/java/com/img/rabbit/viewmodel/AccountManagerViewModel.kt index e3988d6..1400c52 100644 --- a/app/src/main/java/com/img/rabbit/viewmodel/AccountManagerViewModel.kt +++ b/app/src/main/java/com/img/rabbit/viewmodel/AccountManagerViewModel.kt @@ -20,7 +20,6 @@ class AccountManagerViewModel : BaseViewModel() { val errorState = mutableStateOf(null) fun requestAccount() { - isLoading.value = true // 开始加载 mLaunch { val response = ApiManager.serviceVo.account() if (response.status) { @@ -29,13 +28,10 @@ class AccountManagerViewModel : BaseViewModel() { }else{ errorState.value = ErrorBean(response.code.toString(), response.message.ifEmpty { "获取账号失败..." }) } - isLoading.value = false // 开始加载 } } fun switchAccount(userId: String) { - isLoading.value = true // 开始加载 - // 调用 API 获取数据 val jsonSwitch = JsonObject() jsonSwitch.addProperty("user_id", userId) @@ -52,7 +48,6 @@ class AccountManagerViewModel : BaseViewModel() { }else{ errorState.value = ErrorBean(response.code.toString(), response.message.ifEmpty { "切换账号失败..." }) } - isLoading.value = false // 开始加载 } } } \ No newline at end of file diff --git a/app/src/main/java/com/img/rabbit/viewmodel/BaseViewModel.kt b/app/src/main/java/com/img/rabbit/viewmodel/BaseViewModel.kt index c44eef0..a821563 100644 --- a/app/src/main/java/com/img/rabbit/viewmodel/BaseViewModel.kt +++ b/app/src/main/java/com/img/rabbit/viewmodel/BaseViewModel.kt @@ -5,18 +5,25 @@ import androidx.lifecycle.viewModelScope import com.img.rabbit.components.CenterToast import com.img.rabbit.provider.utils.NetworkUtils.globalNetworkStatus import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.launch import kotlinx.coroutines.withContext open class BaseViewModel : ViewModel() { var isShowMsg = mutableStateOf(false) var msgContent = mutableStateOf("") - val isLoading = mutableStateOf(false) + private val _isLoading = MutableStateFlow(false) + val isLoading = _isLoading.asStateFlow() + + fun setLoading(loading: Boolean) { + _isLoading.value = loading + } fun mLaunch(block: suspend () -> Unit) { if (!globalNetworkStatus) { CenterToast.show("网络已断开,请检查网络连接") - isLoading.value = false // 加载完成 + setLoading(false) // 加载完成 return } viewModelScope.launch(Dispatchers.IO) { diff --git a/app/src/main/java/com/img/rabbit/viewmodel/BindViewModel.kt b/app/src/main/java/com/img/rabbit/viewmodel/BindViewModel.kt index 4bac477..97670d1 100644 --- a/app/src/main/java/com/img/rabbit/viewmodel/BindViewModel.kt +++ b/app/src/main/java/com/img/rabbit/viewmodel/BindViewModel.kt @@ -143,8 +143,6 @@ class BindViewModel : BaseViewModel() { } fun requestOneKeyLogin(gyuid: String, token: String) { - isLoading.value = true // 开始加载 - // 调用 API 获取数据 val jsonOneKey = JsonObject() @@ -163,8 +161,6 @@ class BindViewModel : BaseViewModel() { */ fun requestCaptcha(phone: String) { // 发送请求获取验证码 - isLoading.value = true // 开始加载 - mLaunch { // 调用 API 获取数据 val jsonObject = JsonObject() @@ -176,7 +172,6 @@ class BindViewModel : BaseViewModel() { }else{ errorState.value = ErrorBean(response.code.toString(), response.message.ifEmpty { "获取验证码失败" }) } - isLoading.value = false // 加载完成 } } @@ -184,8 +179,6 @@ class BindViewModel : BaseViewModel() { * 请求登录(验证码) */ fun requestBindForCaptcha(phone: String, code: String) { - isLoading.value = true // 开始加载 - // 调用 API 获取数据 val jsonPhone = JsonObject() jsonPhone.addProperty("timestamp", captchaTimestamp.value) @@ -232,7 +225,6 @@ class BindViewModel : BaseViewModel() { if(wechatCode.isEmpty()){ return } - isLoading.value = true // 开始加载 PreferenceUtil.saveWxCode(wechatCode) // 调用 API 获取数据 @@ -258,12 +250,9 @@ class BindViewModel : BaseViewModel() { }else{ errorState.value = ErrorBean(response.code.toString(), response.message.ifEmpty { "登录失败" }) } - isLoading.value = false // 加载完成 } } - - enum class BindType(val type: Int,val desc: String){ FROM_PHONE(0,"手机号"), FROM_WX(1,"微信") diff --git a/app/src/main/java/com/img/rabbit/viewmodel/DeleteAccountViewModel.kt b/app/src/main/java/com/img/rabbit/viewmodel/DeleteAccountViewModel.kt index fc3373c..72e9fa2 100644 --- a/app/src/main/java/com/img/rabbit/viewmodel/DeleteAccountViewModel.kt +++ b/app/src/main/java/com/img/rabbit/viewmodel/DeleteAccountViewModel.kt @@ -15,7 +15,6 @@ class DeleteAccountViewModel : BaseViewModel() { val errorState = mutableStateOf(null) fun deleteAccount() { - isLoading.value = true // 开始加载 mLaunch { val response = ApiManager.serviceVo.userDestroy() if (response.status) { @@ -26,7 +25,6 @@ class DeleteAccountViewModel : BaseViewModel() { }else{ errorState.value = ErrorBean(response.code.toString(), response.message.ifEmpty { "注销失败..." }) } - isLoading.value = false // 开始加载 } } } \ No newline at end of file diff --git a/app/src/main/java/com/img/rabbit/viewmodel/FeedbackViewModel.kt b/app/src/main/java/com/img/rabbit/viewmodel/FeedbackViewModel.kt index 478fbbe..6368383 100644 --- a/app/src/main/java/com/img/rabbit/viewmodel/FeedbackViewModel.kt +++ b/app/src/main/java/com/img/rabbit/viewmodel/FeedbackViewModel.kt @@ -63,7 +63,6 @@ class FeedbackViewModel : BaseViewModel() { fun uploadImage(context: Context, uri: Uri) { - isLoading.value = true // 开始加载 mLaunch { try { val compressedUri = ImageUtils.imageCompressToUri(context, uri) ?: throw IOException("无法压缩图片") @@ -76,27 +75,22 @@ class FeedbackViewModel : BaseViewModel() { }else{ errorState.value = ErrorBean(response.code.toString(), response.message.ifEmpty { "上传失败" }) } - isLoading.value = false // 开始加载 }catch (e: IOException){ e.printStackTrace() - isLoading.value = false // 开始加载 } } } fun batchDeleteImage(uris: List) { - isLoading.value = true // 开始加载 uris.forEach { deleteImage(it) } } fun deleteImage(uri: Uri) { - isLoading.value = true // 开始加载 val fileId = uploadFiles.firstOrNull { it.uri == uri }?.fileEntity?.id if(fileId.isNullOrEmpty()){ - isLoading.value = false // 开始加载 return } mLaunch { @@ -106,12 +100,10 @@ class FeedbackViewModel : BaseViewModel() { }else{ errorState.value = ErrorBean(response.code.toString(), response.message.ifEmpty { "删除失败" }) } - isLoading.value = false // 开始加载 } } fun submitFeedback(requestBody: RequestBody) { - isLoading.value = true // 开始加载 mLaunch { val response = ApiManager.serviceVo.feedback(requestBody) if (response.status) { @@ -119,7 +111,6 @@ class FeedbackViewModel : BaseViewModel() { }else{ errorState.value = ErrorBean(response.code.toString(), response.message.ifEmpty { "提交失败..." }) } - isLoading.value = false // 开始加载 } } diff --git a/app/src/main/java/com/img/rabbit/viewmodel/GeneralViewModel.kt b/app/src/main/java/com/img/rabbit/viewmodel/GeneralViewModel.kt index f5d0895..66d0295 100644 --- a/app/src/main/java/com/img/rabbit/viewmodel/GeneralViewModel.kt +++ b/app/src/main/java/com/img/rabbit/viewmodel/GeneralViewModel.kt @@ -15,6 +15,7 @@ import androidx.compose.runtime.State import androidx.compose.runtime.mutableStateOf import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData +import com.img.rabbit.bean.response.UniVersionEntity import com.img.rabbit.config.Constants import com.img.rabbit.provider.api.ApiManager import com.img.rabbit.provider.storage.PreferenceUtil @@ -24,6 +25,8 @@ import com.tencent.mm.opensdk.constants.ConstantsAPI import com.tencent.mm.opensdk.openapi.IWXAPI import com.tencent.mm.opensdk.openapi.WXAPIFactory import kotlinx.coroutines.DelicateCoroutinesApi +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.asSharedFlow @SuppressLint("ObsoleteSdkInt") class GeneralViewModel: BaseViewModel(){ @@ -38,6 +41,23 @@ class GeneralViewModel: BaseViewModel(){ private val _isNavigationBarVisible = MutableLiveData() val isNavigationBarVisible: LiveData = _isNavigationBarVisible + // 可以定义一个事件密封类,方便扩展 + sealed class GlobalEvent { + data class ShowUniDownloadNotify(val entity: UniVersionEntity) : GlobalEvent() + data class ShowUniUpdateNotify(val entity: UniVersionEntity) : GlobalEvent() + object ShowAppUpdateNotify : GlobalEvent() + } + + object GlobalEventBus { + // replay = 0 确保事件是瞬时的,不会给新订阅者发送旧事件 + private val _events = MutableSharedFlow(extraBufferCapacity = 64) + val events = _events.asSharedFlow() + + suspend fun emit(event: GlobalEvent) { + _events.emit(event) + } + } + private val connectivityManager = HeadParamUtils.applicationContext?.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager diff --git a/app/src/main/java/com/img/rabbit/viewmodel/LoginViewModel.kt b/app/src/main/java/com/img/rabbit/viewmodel/LoginViewModel.kt index 6a13d6c..8e1504a 100644 --- a/app/src/main/java/com/img/rabbit/viewmodel/LoginViewModel.kt +++ b/app/src/main/java/com/img/rabbit/viewmodel/LoginViewModel.kt @@ -45,7 +45,6 @@ class LoginViewModel : BaseViewModel() { private val TAG = "LoginViewModel" private val ONEKEY_TAG = "OneKeyLoginViewModel" - //private lateinit var api: IWXAPI var isLoginWxAuthor = false val authInfoForAlipay: MutableState = mutableStateOf("") @@ -62,18 +61,9 @@ class LoginViewModel : BaseViewModel() { } // 登录验证码发送时间戳 val captchaTimestamp = mutableStateOf("") - - - - private val isGYUIDValid = mutableStateOf(false) var oneKeyPreLogin: OnekeyPreLogin? = null - - - - - // 是否同意政策协议 private val _policyAgreement = mutableStateOf(true) val isPolicyAgreement: State = _policyAgreement @@ -132,7 +122,6 @@ class LoginViewModel : BaseViewModel() { }else{ Log.w("LoginViewModel", "获取配置失败: code=${response.code}, message=${response.message}") } - isLoading.value = false // 加载完成 } } @@ -222,8 +211,6 @@ class LoginViewModel : BaseViewModel() { } fun requestOneKeyLogin(gyuid: String, token: String) { - isLoading.value = true // 开始加载 - // 调用 API 获取数据 val jsonOneKey = JsonObject() @@ -244,8 +231,6 @@ class LoginViewModel : BaseViewModel() { */ fun requestCaptcha(phone: String) { // 发送请求获取验证码 - isLoading.value = true // 开始加载 - mLaunch { // 调用 API 获取数据 val jsonObject = JsonObject() @@ -257,7 +242,6 @@ class LoginViewModel : BaseViewModel() { }else{ errorState.value = ErrorBean(response.code.toString(), response.message.ifEmpty { "获取验证码失败" }) } - isLoading.value = false // 加载完成 } } @@ -265,8 +249,6 @@ class LoginViewModel : BaseViewModel() { * 请求登录(验证码) */ fun requestLoginForCaptcha(phone: String, code: String) { - isLoading.value = true // 开始加载 - // 调用 API 获取数据 val jsonPhone = JsonObject() jsonPhone.addProperty("timestamp", captchaTimestamp.value) @@ -309,7 +291,6 @@ class LoginViewModel : BaseViewModel() { if(code.isEmpty()){ return null } - isLoading.value = true // 开始加载 PreferenceUtil.saveWxCode(code) // 调用 API 获取数据 @@ -329,8 +310,6 @@ class LoginViewModel : BaseViewModel() { * 请求支付宝登录参数 */ fun requestAliPayAuthParam(context: Context) { - isLoading.value = true // 开始加载 - mLaunch { val response = ApiManager.serviceVo.getAlipayAuthParam() val data = response.data @@ -338,7 +317,6 @@ class LoginViewModel : BaseViewModel() { authorAlipay(context = context,authParam = param) authInfoForAlipay.value = param - isLoading.value = false // 加载完成 } } @@ -399,8 +377,6 @@ class LoginViewModel : BaseViewModel() { if(authCode.isEmpty()){ return null } - isLoading.value = true // 开始加载 - // 调用 API 获取数据 val jsonWx = JsonObject() jsonWx.addProperty("auth_code", authCode)//code @@ -425,7 +401,6 @@ class LoginViewModel : BaseViewModel() { }else{ errorState.value = ErrorBean(response.code.toString(), response.message.ifEmpty { "登录失败" }) } - isLoading.value = false // 加载完成 } } @@ -445,7 +420,6 @@ class LoginViewModel : BaseViewModel() { */ @OptIn(DelicateCoroutinesApi::class) fun requestLogout() { - isLoading.value = true // 开始加载 mLaunch { val response = ApiManager.serviceVo.logout() if (response.status) { @@ -454,7 +428,6 @@ class LoginViewModel : BaseViewModel() { } else { errorState.value = ErrorBean(response.code.toString(), response.message.ifEmpty { "退出登录失败" }) } - isLoading.value = false // 加载完成 } } diff --git a/app/src/main/java/com/img/rabbit/viewmodel/MineViewModel.kt b/app/src/main/java/com/img/rabbit/viewmodel/MineViewModel.kt index fccef1d..9b34751 100644 --- a/app/src/main/java/com/img/rabbit/viewmodel/MineViewModel.kt +++ b/app/src/main/java/com/img/rabbit/viewmodel/MineViewModel.kt @@ -1,6 +1,5 @@ package com.img.rabbit.viewmodel -import android.content.Context import com.img.rabbit.bean.response.ServiceWxLinkEntity import com.img.rabbit.provider.api.ApiManager import com.tencent.mm.opensdk.constants.Build @@ -11,18 +10,16 @@ class MineViewModel : BaseViewModel() { private val TAG = "MineViewModel" //请求客服连接 - fun requestServiceLink(context: Context,api: IWXAPI){ + fun requestServiceLink(api: IWXAPI){ mLaunch { val response = ApiManager.serviceVo.wxService() if (response.status) { - contactClientService(response.data,context,api) - } else { + contactClientService(response.data, api) } - isLoading.value = false // 加载完成 } } - private fun contactClientService(data: ServiceWxLinkEntity,context: Context,api: IWXAPI) { + private fun contactClientService(data: ServiceWxLinkEntity, api: IWXAPI) { if (api.wxAppSupportAPI >= Build.SUPPORT_OPEN_CUSTOMER_SERVICE_CHAT) { val req = WXOpenCustomerServiceChat.Req() req.corpId = data.corpid