diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 1dc6fb1..788e40b 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -27,7 +27,7 @@ /** * 退出登录 */ - @GET("/user/logout") + @GET("/sys/user/logout") suspend fun loginOut(@Header("token") token: String): String /** diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 1dc6fb1..788e40b 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -27,7 +27,7 @@ /** * 退出登录 */ - @GET("/user/logout") + @GET("/sys/user/logout") suspend fun loginOut(@Header("token") token: String): String /** diff --git a/app/src/main/java/com/casic/br/view/RegisterActivity.kt b/app/src/main/java/com/casic/br/view/RegisterActivity.kt index 56710f5..aadf2fb 100644 --- a/app/src/main/java/com/casic/br/view/RegisterActivity.kt +++ b/app/src/main/java/com/casic/br/view/RegisterActivity.kt @@ -128,6 +128,13 @@ aMapLocation, bean?.homeId.toString() ) + +// registerWithoutTuya( +// userPhone, +// userPassword, +// aMapLocation, +// bean?.homeId.toString() +// ) } override fun onError(errorCode: String?, errorMsg: String?) { diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 1dc6fb1..788e40b 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -27,7 +27,7 @@ /** * 退出登录 */ - @GET("/user/logout") + @GET("/sys/user/logout") suspend fun loginOut(@Header("token") token: String): String /** diff --git a/app/src/main/java/com/casic/br/view/RegisterActivity.kt b/app/src/main/java/com/casic/br/view/RegisterActivity.kt index 56710f5..aadf2fb 100644 --- a/app/src/main/java/com/casic/br/view/RegisterActivity.kt +++ b/app/src/main/java/com/casic/br/view/RegisterActivity.kt @@ -128,6 +128,13 @@ aMapLocation, bean?.homeId.toString() ) + +// registerWithoutTuya( +// userPhone, +// userPassword, +// aMapLocation, +// bean?.homeId.toString() +// ) } override fun onError(errorCode: String?, errorMsg: String?) { diff --git a/app/src/main/java/com/casic/br/view/SettingsActivity.kt b/app/src/main/java/com/casic/br/view/SettingsActivity.kt index 2c89b31..c08d8d2 100644 --- a/app/src/main/java/com/casic/br/view/SettingsActivity.kt +++ b/app/src/main/java/com/casic/br/view/SettingsActivity.kt @@ -1,18 +1,31 @@ package com.casic.br.view +import android.graphics.Color +import android.util.Log +import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R import com.casic.br.adapter.IconTextListAdapter +import com.casic.br.utils.AuthenticationHelper import com.casic.br.utils.LocaleConstant +import com.casic.br.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import com.pengxh.kt.lite.utils.PageNavigationManager +import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IResultCallback import kotlinx.android.synthetic.main.activity_settings.* import kotlinx.android.synthetic.main.include_base_title.* + class SettingsActivity : KotlinBaseActivity() { + private lateinit var userViewModel: UserViewModel + override fun initLayoutView(): Int = R.layout.activity_settings override fun setupTopBarLayout() { @@ -24,6 +37,8 @@ } override fun initData() { + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + val settingsListAdapter = IconTextListAdapter(this, LocaleConstant.SETTINGS_OPERATE) settingsRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) @@ -44,10 +59,39 @@ } override fun observeRequestState() { - + userViewModel.outResultModel.observe(this, { + if (it.code == 200) { + AuthenticationHelper.removeToken() + this.navigatePageTo() + PageNavigationManager.finishAllActivity() + } + }) } override fun initEvent() { + loginOutButton.setOnClickListener { + BottomActionSheet.Builder() + .setContext(this) + .setActionItemTitle(arrayListOf("永久退出", "退出当前")) + .setItemTextColor(Color.BLUE) + .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + when (position) { + 0 -> TuyaHomeSdk.getUserInstance() + .cancelAccount(object : IResultCallback { + override fun onError(code: String?, error: String?) { + Log.d("Casic", "SettingsActivity => onError: $error") + } + override fun onSuccess() { + userViewModel.out() + } + }) + 1 -> userViewModel.out() + } + } + }) + .build().show() + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt index 1dc6fb1..788e40b 100644 --- a/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/utils/retrofit/RetrofitService.kt @@ -27,7 +27,7 @@ /** * 退出登录 */ - @GET("/user/logout") + @GET("/sys/user/logout") suspend fun loginOut(@Header("token") token: String): String /** diff --git a/app/src/main/java/com/casic/br/view/RegisterActivity.kt b/app/src/main/java/com/casic/br/view/RegisterActivity.kt index 56710f5..aadf2fb 100644 --- a/app/src/main/java/com/casic/br/view/RegisterActivity.kt +++ b/app/src/main/java/com/casic/br/view/RegisterActivity.kt @@ -128,6 +128,13 @@ aMapLocation, bean?.homeId.toString() ) + +// registerWithoutTuya( +// userPhone, +// userPassword, +// aMapLocation, +// bean?.homeId.toString() +// ) } override fun onError(errorCode: String?, errorMsg: String?) { diff --git a/app/src/main/java/com/casic/br/view/SettingsActivity.kt b/app/src/main/java/com/casic/br/view/SettingsActivity.kt index 2c89b31..c08d8d2 100644 --- a/app/src/main/java/com/casic/br/view/SettingsActivity.kt +++ b/app/src/main/java/com/casic/br/view/SettingsActivity.kt @@ -1,18 +1,31 @@ package com.casic.br.view +import android.graphics.Color +import android.util.Log +import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.br.R import com.casic.br.adapter.IconTextListAdapter +import com.casic.br.utils.AuthenticationHelper import com.casic.br.utils.LocaleConstant +import com.casic.br.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor +import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil +import com.pengxh.kt.lite.utils.PageNavigationManager +import com.pengxh.kt.lite.widget.dialog.BottomActionSheet +import com.tuya.smart.home.sdk.TuyaHomeSdk +import com.tuya.smart.sdk.api.IResultCallback import kotlinx.android.synthetic.main.activity_settings.* import kotlinx.android.synthetic.main.include_base_title.* + class SettingsActivity : KotlinBaseActivity() { + private lateinit var userViewModel: UserViewModel + override fun initLayoutView(): Int = R.layout.activity_settings override fun setupTopBarLayout() { @@ -24,6 +37,8 @@ } override fun initData() { + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + val settingsListAdapter = IconTextListAdapter(this, LocaleConstant.SETTINGS_OPERATE) settingsRecyclerView.addItemDecoration( DividerItemDecoration(this, DividerItemDecoration.VERTICAL) @@ -44,10 +59,39 @@ } override fun observeRequestState() { - + userViewModel.outResultModel.observe(this, { + if (it.code == 200) { + AuthenticationHelper.removeToken() + this.navigatePageTo() + PageNavigationManager.finishAllActivity() + } + }) } override fun initEvent() { + loginOutButton.setOnClickListener { + BottomActionSheet.Builder() + .setContext(this) + .setActionItemTitle(arrayListOf("永久退出", "退出当前")) + .setItemTextColor(Color.BLUE) + .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener { + override fun onActionItemClick(position: Int) { + when (position) { + 0 -> TuyaHomeSdk.getUserInstance() + .cancelAccount(object : IResultCallback { + override fun onError(code: String?, error: String?) { + Log.d("Casic", "SettingsActivity => onError: $error") + } + override fun onSuccess() { + userViewModel.out() + } + }) + 1 -> userViewModel.out() + } + } + }) + .build().show() + } } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/vm/UserViewModel.kt b/app/src/main/java/com/casic/br/vm/UserViewModel.kt index 5949d56..3e748d6 100644 --- a/app/src/main/java/com/casic/br/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/br/vm/UserViewModel.kt @@ -23,6 +23,7 @@ val registerResult = MutableLiveData() val loginResult = MutableLiveData() val userDetailResult = MutableLiveData() + val outResultModel = MutableLiveData() fun register( account: String, @@ -96,4 +97,18 @@ loadState.value = LoadState.Fail it.printStackTrace() }) + + fun out() = launch({ + val response = RetrofitServiceManager.loginOut() + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + outResultModel.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { + response.toErrorMessage().show(BaseApplication.obtainInstance()) + } + }, { + it.printStackTrace() + }) } \ No newline at end of file