diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 1558d21..eeee660 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -12,7 +12,6 @@ import com.casic.br.operationsite.utils.RSAUtils import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel -import com.casic.br.operationsite.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +25,6 @@ private val authenticateViewModel by lazy { ViewModelProvider(this)[AuthenticateViewModel::class.java] } private val loginViewModel by lazy { ViewModelProvider(this)[LoginViewModel::class.java] } - private val userViewModel by lazy { ViewModelProvider(this)[UserViewModel::class.java] } override fun initViewBinding(): ActivityLoginBinding { return ActivityLoginBinding.inflate(layoutInflater) @@ -107,7 +105,6 @@ result.run { LoadingDialog.dismiss() AuthenticationHelper.saveToken(this.data.token) - userViewModel.getUserDetail() navigatePageTo() finish() "登录成功".show(this@LoginActivity) diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 1558d21..eeee660 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -12,7 +12,6 @@ import com.casic.br.operationsite.utils.RSAUtils import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel -import com.casic.br.operationsite.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +25,6 @@ private val authenticateViewModel by lazy { ViewModelProvider(this)[AuthenticateViewModel::class.java] } private val loginViewModel by lazy { ViewModelProvider(this)[LoginViewModel::class.java] } - private val userViewModel by lazy { ViewModelProvider(this)[UserViewModel::class.java] } override fun initViewBinding(): ActivityLoginBinding { return ActivityLoginBinding.inflate(layoutInflater) @@ -107,7 +105,6 @@ result.run { LoadingDialog.dismiss() AuthenticationHelper.saveToken(this.data.token) - userViewModel.getUserDetail() navigatePageTo() finish() "登录成功".show(this@LoginActivity) diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index e8c62a2..c3a25f4 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -7,7 +7,9 @@ import com.casic.br.operationsite.databinding.ActivityMainBinding import com.casic.br.operationsite.extensions.initImmersionBar import com.casic.br.operationsite.model.WorkSiteListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.utils.RuntimeCache +import com.casic.br.operationsite.vm.UserViewModel import com.casic.br.operationsite.vm.WorkSiteViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder @@ -20,6 +22,7 @@ import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog +import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.EmptyView class MainActivity : KotlinBaseActivity() { @@ -27,6 +30,7 @@ private val kTag = "MainActivity" private val marginOffset by lazy { 15.dp2px(this) } private val workSiteViewModel by lazy { ViewModelProvider(this)[WorkSiteViewModel::class.java] } + private val userViewModel by lazy { ViewModelProvider(this)[UserViewModel::class.java] } private lateinit var workSiteAdapter: NormalRecyclerAdapter private var page = 1 private var isRefresh = false @@ -108,6 +112,17 @@ } } getProjectListByPage() + + userViewModel.getUserDetail( + onLoading = {}, + onSuccess = { + it.data?.let { data -> + SaveKeyValues.putValue(LocaleConstant.USER_NAME_KEY, data.name) + SaveKeyValues.putValue(LocaleConstant.USER_ID_KEY, data.id) + } + }, + onFailed = {} + ) } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index 1558d21..eeee660 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -12,7 +12,6 @@ import com.casic.br.operationsite.utils.RSAUtils import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel -import com.casic.br.operationsite.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -26,7 +25,6 @@ private val authenticateViewModel by lazy { ViewModelProvider(this)[AuthenticateViewModel::class.java] } private val loginViewModel by lazy { ViewModelProvider(this)[LoginViewModel::class.java] } - private val userViewModel by lazy { ViewModelProvider(this)[UserViewModel::class.java] } override fun initViewBinding(): ActivityLoginBinding { return ActivityLoginBinding.inflate(layoutInflater) @@ -107,7 +105,6 @@ result.run { LoadingDialog.dismiss() AuthenticationHelper.saveToken(this.data.token) - userViewModel.getUserDetail() navigatePageTo() finish() "登录成功".show(this@LoginActivity) diff --git a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt index e8c62a2..c3a25f4 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/MainActivity.kt @@ -7,7 +7,9 @@ import com.casic.br.operationsite.databinding.ActivityMainBinding import com.casic.br.operationsite.extensions.initImmersionBar import com.casic.br.operationsite.model.WorkSiteListModel +import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.utils.RuntimeCache +import com.casic.br.operationsite.vm.UserViewModel import com.casic.br.operationsite.vm.WorkSiteViewModel import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder @@ -20,6 +22,7 @@ import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialog +import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.widget.EmptyView class MainActivity : KotlinBaseActivity() { @@ -27,6 +30,7 @@ private val kTag = "MainActivity" private val marginOffset by lazy { 15.dp2px(this) } private val workSiteViewModel by lazy { ViewModelProvider(this)[WorkSiteViewModel::class.java] } + private val userViewModel by lazy { ViewModelProvider(this)[UserViewModel::class.java] } private lateinit var workSiteAdapter: NormalRecyclerAdapter private var page = 1 private var isRefresh = false @@ -108,6 +112,17 @@ } } getProjectListByPage() + + userViewModel.getUserDetail( + onLoading = {}, + onSuccess = { + it.data?.let { data -> + SaveKeyValues.putValue(LocaleConstant.USER_NAME_KEY, data.name) + SaveKeyValues.putValue(LocaleConstant.USER_ID_KEY, data.id) + } + }, + onFailed = {} + ) } override fun observeRequestState() { diff --git a/app/src/main/java/com/casic/br/operationsite/vm/UserViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/UserViewModel.kt index 29ae785..b0cee1b 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/UserViewModel.kt @@ -1,36 +1,27 @@ package com.casic.br.operationsite.vm -import com.casic.br.operationsite.extensions.getResponseCode +import androidx.lifecycle.ViewModel +import com.casic.br.operationsite.extensions.getResponseHeader import com.casic.br.operationsite.model.UserDetailModel import com.casic.br.operationsite.retrofit.RetrofitServiceManager -import com.casic.br.operationsite.utils.LocaleConstant -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.base.BaseViewModel import com.pengxh.kt.lite.extensions.launch -import com.pengxh.kt.lite.utils.LoadState -import com.pengxh.kt.lite.utils.SaveKeyValues +import com.pengxh.kt.lite.extensions.unpackingResponse -class UserViewModel : BaseViewModel() { - - private val gson = Gson() - - fun getUserDetail() = launch({ - loadState.value = LoadState.Loading +class UserViewModel : ViewModel() { + fun getUserDetail( + onLoading: () -> Unit, + onSuccess: (UserDetailModel) -> Unit, + onFailed: (String) -> Unit + ) = launch({ + onLoading() val response = RetrofitServiceManager.getUserDetail() - val responseCode = response.getResponseCode() - if (responseCode == 200) { - val userDetail = gson.fromJson( - response, object : TypeToken() {}.type - ) - SaveKeyValues.putValue(LocaleConstant.USER_NAME_KEY, userDetail.data.name) - SaveKeyValues.putValue(LocaleConstant.USER_ID_KEY, userDetail.data.id) - loadState.value = LoadState.Success + val header = response.getResponseHeader() + if (header.first == 200) { + onSuccess(unpackingResponse(response)) } else { - loadState.value = LoadState.Fail + onFailed(header.second) } }, { - loadState.value = LoadState.Fail - it.printStackTrace() + onFailed(it.message ?: "Unknown error") }) } \ No newline at end of file