diff --git a/app/build.gradle b/app/build.gradle index d7c65f2..2efdfea 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,8 +19,8 @@ android { // minSdkVersion 26 minSdkVersion 21 targetSdkVersion 25 - versionCode 30003 - versionName "3.0.3" + versionCode 30004 + versionName "3.0.4" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" // ndk { diff --git a/app/src/main/java/com/yzx/ebrand/activity/LoginActivity.kt b/app/src/main/java/com/yzx/ebrand/activity/LoginActivity.kt index b3ff865..75bb282 100644 --- a/app/src/main/java/com/yzx/ebrand/activity/LoginActivity.kt +++ b/app/src/main/java/com/yzx/ebrand/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 @@ -96,6 +99,15 @@ class LoginActivity : BaseActivity(), LoginView { img1.setSrc(env.LOGO) LogUtils.d("env.APP_NAME",env.APP_NAME) img2.setSrc(env.APP_NAME) + + qrRefresh.setOnClickListener { + if(qrLoading){ + toast("刷新中,请稍后") + return@setOnClickListener + } + qrLoading = true + mPresenter?.getWXQrCode(true) + } } private fun doLogin() { @@ -165,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/ebrand/presenter/LoginPresenter.kt b/app/src/main/java/com/yzx/ebrand/presenter/LoginPresenter.kt index 56e522a..dcfedc3 100644 --- a/app/src/main/java/com/yzx/ebrand/presenter/LoginPresenter.kt +++ b/app/src/main/java/com/yzx/ebrand/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,7 @@ 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 7ffb9c1..78d8804 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -93,8 +93,8 @@ + +