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)
|
}
|
}
|
}
|
}
|