| @@ -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<LoginPresenter>(), LoginView { | |||
| @@ -43,6 +45,7 @@ class LoginActivity : BaseActivity<LoginPresenter>(), 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<LoginPresenter>(), 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<LoginPresenter>(), 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<LoginPresenter>(), 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<LoginPresenter>(), 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() { | |||
| @@ -154,7 +154,7 @@ class LoginPresenter(view: LoginView) : BasePresenter<LoginView>(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<YzxResponse<WxQrTicket>>(url) | |||
| @@ -165,13 +165,14 @@ class LoginPresenter(view: LoginView) : BasePresenter<LoginView>(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<YzxResponse<WxQrTicket>>?) { | |||
| 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<BaseUser>, 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) | |||
| } | |||
| @@ -93,8 +93,8 @@ | |||
| <ImageView | |||
| android:id="@+id/qrCodeImg" | |||
| android:layout_width="200dp" | |||
| android:layout_height="200dp" | |||
| android:layout_width="160dp" | |||
| android:layout_height="160dp" | |||
| android:background="@color/blue2"/> | |||
| <TextView | |||
| @@ -107,6 +107,14 @@ | |||
| android:paddingVertical="@dimen/d_10" | |||
| android:paddingHorizontal="@dimen/d_30"/> | |||
| <TextView | |||
| android:id="@+id/qrRefresh" | |||
| android:layout_width="wrap_content" | |||
| android:layout_height="wrap_content" | |||
| android:text="刷新二维码" | |||
| android:textColor="@color/blue" | |||
| android:layout_marginTop="20dp"/> | |||
| </androidx.appcompat.widget.LinearLayoutCompat> | |||
| <androidx.appcompat.widget.LinearLayoutCompat | |||
| @@ -182,7 +190,7 @@ | |||
| android:layout_width="match_parent" | |||
| android:layout_height="wrap_content" | |||
| android:text="登 录" | |||
| android:layout_marginTop="@dimen/d_20" | |||
| android:layout_marginTop="22dp" | |||
| android:background="@drawable/btn_blue_select" | |||
| android:textColor="@color/white" | |||
| android:textSize="@dimen/d_20"/> | |||