puzhibing
2026-08-21 5fa94b3718b4a78a4fcea4c97652b0ef20b7de3a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.xw.yunwei.ui.user.mine.set
 
import android.app.Application
import androidx.lifecycle.viewModelScope
import com.afollestad.materialdialogs.MaterialDialog
import com.blankj.utilcode.util.AppUtils
import com.xw.common.base.BaseViewModel
import com.xw.common.utils.MMKVManager
import com.xw.yunwei.MyApp
import com.xw.yunwei.model.AppVersionModel
import com.xw.yunwei.net.UserRepository
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import org.koin.core.component.inject
 
class SetVM(application: Application) : BaseViewModel(application) {
 
    val userRepository: UserRepository by inject()
 
 
    fun getVersion(block: (AppVersionModel) -> Unit) {
        launchRequest {
            userRepository.getVersion()?.let {
                runOnMainThread { block(it) }
            }
        }
    }
 
    //退出登录
    fun loginOut(dialog: MaterialDialog) {
        launchRequest {
            val resultOk = userRepository.appLoginOut()
            dialog.dismiss()
            MMKVManager.getInstance().clear()
            MyApp.myApp.disconnectWebSocket()
            MyApp.myApp.unbindPushAccount()
            viewModelScope.launch {
                delay(100)
                AppUtils.relaunchApp(true)
            }
        }
    }
}