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 f7fca9d..1558d21 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 @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show 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 pub.devrel.easypermissions.EasyPermissions @@ -57,12 +56,7 @@ } override fun observeRequestState() { - loginViewModel.loadState.observe(this) { loginState -> - when (loginState) { - is LoadState.Loading -> LoadingDialog.show(this, "登录中,请稍后...") - else -> LoadingDialog.dismiss() - } - } + } override fun initEvent() { @@ -102,15 +96,28 @@ userPassword.toByteArray(), publicKey!! ) //登录并获取Token,POST请求 - loginViewModel.enter(this, data.sid, account, dataByPublicKey) - loginViewModel.enterResultModel.observe(this) { loginResult -> - if (loginResult.code == 200) { - AuthenticationHelper.saveToken(loginResult.data!!.token!!) - userViewModel.getUserDetail() - navigatePageTo() - finish() + loginViewModel.enter( + data.sid, + account, + dataByPublicKey, + onLoading = { + LoadingDialog.show(this, "登录中,请稍后...") + }, + onSuccess = { result -> + result.run { + LoadingDialog.dismiss() + AuthenticationHelper.saveToken(this.data.token) + userViewModel.getUserDetail() + navigatePageTo() + finish() + "登录成功".show(this@LoginActivity) + } + }, + onFailed = { + LoadingDialog.dismiss() + it.show(this) } - } + ) } } 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 f7fca9d..1558d21 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 @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show 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 pub.devrel.easypermissions.EasyPermissions @@ -57,12 +56,7 @@ } override fun observeRequestState() { - loginViewModel.loadState.observe(this) { loginState -> - when (loginState) { - is LoadState.Loading -> LoadingDialog.show(this, "登录中,请稍后...") - else -> LoadingDialog.dismiss() - } - } + } override fun initEvent() { @@ -102,15 +96,28 @@ userPassword.toByteArray(), publicKey!! ) //登录并获取Token,POST请求 - loginViewModel.enter(this, data.sid, account, dataByPublicKey) - loginViewModel.enterResultModel.observe(this) { loginResult -> - if (loginResult.code == 200) { - AuthenticationHelper.saveToken(loginResult.data!!.token!!) - userViewModel.getUserDetail() - navigatePageTo() - finish() + loginViewModel.enter( + data.sid, + account, + dataByPublicKey, + onLoading = { + LoadingDialog.show(this, "登录中,请稍后...") + }, + onSuccess = { result -> + result.run { + LoadingDialog.dismiss() + AuthenticationHelper.saveToken(this.data.token) + userViewModel.getUserDetail() + navigatePageTo() + finish() + "登录成功".show(this@LoginActivity) + } + }, + onFailed = { + LoadingDialog.dismiss() + it.show(this) } - } + ) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt index 046de29..49a8d3b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt @@ -93,7 +93,15 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - loginViewModel.out() + loginViewModel.out( + onLoading = {}, + onSuccess = { + AuthenticationHelper.removeToken() + ActivityStackManager.finishAllActivity() + navigatePageTo() + }, + onFailed = {} + ) } override fun onCancelClick() {} @@ -237,14 +245,6 @@ } } - loginViewModel.outResultModel.observe(this) { - if (it.code == 200) { - AuthenticationHelper.removeToken() - ActivityStackManager.finishAllActivity() - navigatePageTo() - } - } - // 初始化 BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from(binding.cardView) bottomSheetBehavior.state = BottomSheetBehavior.STATE_HIDDEN 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 f7fca9d..1558d21 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 @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show 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 pub.devrel.easypermissions.EasyPermissions @@ -57,12 +56,7 @@ } override fun observeRequestState() { - loginViewModel.loadState.observe(this) { loginState -> - when (loginState) { - is LoadState.Loading -> LoadingDialog.show(this, "登录中,请稍后...") - else -> LoadingDialog.dismiss() - } - } + } override fun initEvent() { @@ -102,15 +96,28 @@ userPassword.toByteArray(), publicKey!! ) //登录并获取Token,POST请求 - loginViewModel.enter(this, data.sid, account, dataByPublicKey) - loginViewModel.enterResultModel.observe(this) { loginResult -> - if (loginResult.code == 200) { - AuthenticationHelper.saveToken(loginResult.data!!.token!!) - userViewModel.getUserDetail() - navigatePageTo() - finish() + loginViewModel.enter( + data.sid, + account, + dataByPublicKey, + onLoading = { + LoadingDialog.show(this, "登录中,请稍后...") + }, + onSuccess = { result -> + result.run { + LoadingDialog.dismiss() + AuthenticationHelper.saveToken(this.data.token) + userViewModel.getUserDetail() + navigatePageTo() + finish() + "登录成功".show(this@LoginActivity) + } + }, + onFailed = { + LoadingDialog.dismiss() + it.show(this) } - } + ) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt index 046de29..49a8d3b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt @@ -93,7 +93,15 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - loginViewModel.out() + loginViewModel.out( + onLoading = {}, + onSuccess = { + AuthenticationHelper.removeToken() + ActivityStackManager.finishAllActivity() + navigatePageTo() + }, + onFailed = {} + ) } override fun onCancelClick() {} @@ -237,14 +245,6 @@ } } - loginViewModel.outResultModel.observe(this) { - if (it.code == 200) { - AuthenticationHelper.removeToken() - ActivityStackManager.finishAllActivity() - navigatePageTo() - } - } - // 初始化 BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from(binding.cardView) bottomSheetBehavior.state = BottomSheetBehavior.STATE_HIDDEN diff --git a/app/src/main/java/com/casic/br/operationsite/vm/DeviceViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/DeviceViewModel.kt index 483ec0c..aae8c42 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/DeviceViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/DeviceViewModel.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.vm +import androidx.lifecycle.ViewModel import com.casic.br.operationsite.retrofit.RetrofitServiceManager -import com.pengxh.kt.lite.base.BaseViewModel import com.pengxh.kt.lite.extensions.launch -class DeviceViewModel : BaseViewModel() { +class DeviceViewModel : ViewModel() { /** * 执行设备控制指令 */ 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 f7fca9d..1558d21 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 @@ -17,7 +17,6 @@ import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show 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 pub.devrel.easypermissions.EasyPermissions @@ -57,12 +56,7 @@ } override fun observeRequestState() { - loginViewModel.loadState.observe(this) { loginState -> - when (loginState) { - is LoadState.Loading -> LoadingDialog.show(this, "登录中,请稍后...") - else -> LoadingDialog.dismiss() - } - } + } override fun initEvent() { @@ -102,15 +96,28 @@ userPassword.toByteArray(), publicKey!! ) //登录并获取Token,POST请求 - loginViewModel.enter(this, data.sid, account, dataByPublicKey) - loginViewModel.enterResultModel.observe(this) { loginResult -> - if (loginResult.code == 200) { - AuthenticationHelper.saveToken(loginResult.data!!.token!!) - userViewModel.getUserDetail() - navigatePageTo() - finish() + loginViewModel.enter( + data.sid, + account, + dataByPublicKey, + onLoading = { + LoadingDialog.show(this, "登录中,请稍后...") + }, + onSuccess = { result -> + result.run { + LoadingDialog.dismiss() + AuthenticationHelper.saveToken(this.data.token) + userViewModel.getUserDetail() + navigatePageTo() + finish() + "登录成功".show(this@LoginActivity) + } + }, + onFailed = { + LoadingDialog.dismiss() + it.show(this) } - } + ) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt index 046de29..49a8d3b 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/WorkSiteTabActivity.kt @@ -93,7 +93,15 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { - loginViewModel.out() + loginViewModel.out( + onLoading = {}, + onSuccess = { + AuthenticationHelper.removeToken() + ActivityStackManager.finishAllActivity() + navigatePageTo() + }, + onFailed = {} + ) } override fun onCancelClick() {} @@ -237,14 +245,6 @@ } } - loginViewModel.outResultModel.observe(this) { - if (it.code == 200) { - AuthenticationHelper.removeToken() - ActivityStackManager.finishAllActivity() - navigatePageTo() - } - } - // 初始化 BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from(binding.cardView) bottomSheetBehavior.state = BottomSheetBehavior.STATE_HIDDEN diff --git a/app/src/main/java/com/casic/br/operationsite/vm/DeviceViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/DeviceViewModel.kt index 483ec0c..aae8c42 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/DeviceViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/DeviceViewModel.kt @@ -1,10 +1,10 @@ package com.casic.br.operationsite.vm +import androidx.lifecycle.ViewModel import com.casic.br.operationsite.retrofit.RetrofitServiceManager -import com.pengxh.kt.lite.base.BaseViewModel import com.pengxh.kt.lite.extensions.launch -class DeviceViewModel : BaseViewModel() { +class DeviceViewModel : ViewModel() { /** * 执行设备控制指令 */ diff --git a/app/src/main/java/com/casic/br/operationsite/vm/LoginViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/LoginViewModel.kt index 79e07af..dd2b428 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/LoginViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/LoginViewModel.kt @@ -1,55 +1,47 @@ package com.casic.br.operationsite.vm -import android.content.Context -import androidx.lifecycle.MutableLiveData -import com.casic.br.operationsite.extensions.getResponseCode -import com.casic.br.operationsite.extensions.getResponseMessage -import com.casic.br.operationsite.model.CommonResultModel +import androidx.lifecycle.ViewModel +import com.casic.br.operationsite.extensions.getResponseHeader import com.casic.br.operationsite.model.LoginResultModel import com.casic.br.operationsite.retrofit.RetrofitServiceManager -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.extensions.show -import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.extensions.unpackingResponse -class LoginViewModel : BaseViewModel() { - - private val gson = Gson() - val enterResultModel = MutableLiveData() - val outResultModel = MutableLiveData() - - fun enter(context: Context, sid: String, account: String, secretKey: String) = launch({ - loadState.value = LoadState.Loading +class LoginViewModel : ViewModel() { + fun enter( + sid: String, + account: String, + secretKey: String, + onLoading: () -> Unit, + onSuccess: (LoginResultModel) -> Unit, + onFailed: (String) -> Unit + ) = launch({ + onLoading() val response = RetrofitServiceManager.login(sid, account, secretKey) - when (response.getResponseCode()) { - 200 -> { - enterResultModel.value = gson.fromJson( - response, object : TypeToken() {}.type - ) - loadState.value = LoadState.Success - } - - else -> { - loadState.value = LoadState.Fail - response.getResponseMessage().show(context) - } + val header = response.getResponseHeader() + if (header.first == 200) { + onSuccess(unpackingResponse(response)) + } else { + onFailed(header.second) } }, { - loadState.value = LoadState.Fail - it.printStackTrace() + onFailed(it.message ?: "Unknown error") }) - fun out() = launch({ + fun out( + onLoading: () -> Unit, + onSuccess: () -> Unit, + onFailed: (String) -> Unit + ) = launch({ + onLoading() val response = RetrofitServiceManager.loginOut() - val responseCode = response.getResponseCode() - if (responseCode == 200) { - outResultModel.value = gson.fromJson( - response, object : TypeToken() {}.type - ) + val header = response.getResponseHeader() + if (header.first == 200) { + onSuccess() + } else { + onFailed(header.second) } }, { - it.printStackTrace() + onFailed(it.message ?: "Unknown error") }) } \ No newline at end of file