From d6340aceee5b5b3b111258cae27d6d90b6ce1b0b Mon Sep 17 00:00:00 2001 From: leiyun Date: Wed, 10 Jan 2024 16:02:39 +0800 Subject: [PATCH] save --- .../com/yzx/escreen/activity/LoginActivity.kt | 28 ++++++++++++++++++- .../yzx/escreen/presenter/LoginPresenter.kt | 9 ++++-- app/src/main/res/layout/activity_login.xml | 14 ++++++++-- 3 files changed, 44 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/yzx/escreen/activity/LoginActivity.kt b/app/src/main/java/com/yzx/escreen/activity/LoginActivity.kt index 5c1744e..a381bb9 100644 --- a/app/src/main/java/com/yzx/escreen/activity/LoginActivity.kt +++ b/app/src/main/java/com/yzx/escreen/activity/LoginActivity.kt @@ -30,8 +30,10 @@ import kotlinx.android.synthetic.main.activity_login.pswCheckbox import kotlinx.android.synthetic.main.activity_login.pswEdit import kotlinx.android.synthetic.main.activity_login.qrCodeImg import kotlinx.android.synthetic.main.activity_login.qrLayout +import kotlinx.android.synthetic.main.activity_login.qrRefresh import kotlinx.android.synthetic.main.activity_login.tabLayout import org.jetbrains.anko.startActivity +import org.jetbrains.anko.toast class LoginActivity : BaseActivity(), LoginView { @@ -43,6 +45,7 @@ class LoginActivity : BaseActivity(), LoginView { private var mTicket = "" private var isPageShow = true + private var qrLoading = false override val inflateId: Int get() = R.layout.activity_login @@ -63,6 +66,7 @@ class LoginActivity : BaseActivity(), LoginView { accountLayout.visibility = View.GONE SPUtils.getInstance().put("last_login_tab_index",1) KeyboardUtils.hideSoftInput(this@LoginActivity) + qrLoading = true mPresenter?.getWXQrCode() } } @@ -76,6 +80,7 @@ class LoginActivity : BaseActivity(), LoginView { qrLayout.visibility = View.VISIBLE accountLayout.visibility = View.GONE tabLayout.currentTab = 1 + qrLoading = true mPresenter?.getWXQrCode() } loginBtn.setOnClickListener { @@ -95,6 +100,14 @@ class LoginActivity : BaseActivity(), LoginView { var env = Config.getEvn() img1.setSrc(env.LOGO) img2.setSrc(env.APP_NAME) + qrRefresh.setOnClickListener { + if(qrLoading){ + toast("刷新中,请稍后") + return@setOnClickListener + } + qrLoading = true + mPresenter?.getWXQrCode(true) + } } private fun doLogin() { @@ -164,10 +177,23 @@ class LoginActivity : BaseActivity(), LoginView { finish() } - override fun onWxQrCodeSuccess(imgUrl: String, ticket: String) { + override fun onWxQrCodeSuccess(imgUrl: String, ticket: String,refresh:Boolean) { + qrLoading = false qrCodeImg.setSrc(imgUrl) mTicket = ticket mPresenter?.loginQuery(ticket) + if(refresh){ + toast("刷新成功") + } + } + + override fun onWxQrCodeError(msg: String,refresh:Boolean) { + qrLoading = false + if(refresh){ + toast(msg.ifBlank { + "刷新失败" + }) + } } override fun onDestroy() { diff --git a/app/src/main/java/com/yzx/escreen/presenter/LoginPresenter.kt b/app/src/main/java/com/yzx/escreen/presenter/LoginPresenter.kt index c241be1..6c13b7f 100644 --- a/app/src/main/java/com/yzx/escreen/presenter/LoginPresenter.kt +++ b/app/src/main/java/com/yzx/escreen/presenter/LoginPresenter.kt @@ -154,7 +154,7 @@ class LoginPresenter(view: LoginView) : BasePresenter(view) { }) } - fun getWXQrCode() { + fun getWXQrCode(refresh: Boolean = false) { val url = Config.BASE_URL + YzxInterface.INTERFACE_GENERATE_WX_QR_TICKET var env = Config.getEvn() OkGo.post>(url) @@ -165,13 +165,14 @@ class LoginPresenter(view: LoginView) : BasePresenter(view) { if (response?.isSuccessful == true) { val url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=${response.body().data.ticket}" - mView?.onWxQrCodeSuccess(url, response.body().data.ticket) + mView?.onWxQrCodeSuccess(url, response.body().data.ticket,refresh) } } override fun onError(response: Response>?) { super.onError(response) LogUtils.d(response) + mView?.onWxQrCodeError(response?.body()?.msg ?: "",refresh) } }) } @@ -203,6 +204,8 @@ interface LoginView : IView { fun onLoginError(msg: String) fun onUserInfoSuccess(user: User) fun onUserListSuccess(list: MutableList, token: String) - fun onWxQrCodeSuccess(imgUrl: String, ticket: String) + fun onWxQrCodeSuccess(imgUrl: String, ticket: String,refresh:Boolean) + + fun onWxQrCodeError(msg: String,refresh:Boolean) fun onLoginQuerySuccess(user: BaseUser, code: Int) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 47bcb9b..df821ad 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -93,8 +93,8 @@ + +