| @@ -19,8 +19,8 @@ android { | |||||
| // minSdkVersion 26 | // minSdkVersion 26 | ||||
| minSdkVersion 21 | minSdkVersion 21 | ||||
| targetSdkVersion 25 | targetSdkVersion 25 | ||||
| versionCode 30003 | |||||
| versionName "3.0.3" | |||||
| versionCode 30004 | |||||
| versionName "3.0.4" | |||||
| testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | ||||
| // ndk { | // ndk { | ||||
| @@ -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.pswEdit | ||||
| import kotlinx.android.synthetic.main.activity_login.qrCodeImg | import kotlinx.android.synthetic.main.activity_login.qrCodeImg | ||||
| import kotlinx.android.synthetic.main.activity_login.qrLayout | 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 kotlinx.android.synthetic.main.activity_login.tabLayout | ||||
| import org.jetbrains.anko.startActivity | import org.jetbrains.anko.startActivity | ||||
| import org.jetbrains.anko.toast | |||||
| class LoginActivity : BaseActivity<LoginPresenter>(), LoginView { | class LoginActivity : BaseActivity<LoginPresenter>(), LoginView { | ||||
| @@ -43,6 +45,7 @@ class LoginActivity : BaseActivity<LoginPresenter>(), LoginView { | |||||
| private var mTicket = "" | private var mTicket = "" | ||||
| private var isPageShow = true | private var isPageShow = true | ||||
| private var qrLoading = false | |||||
| override val inflateId: Int | override val inflateId: Int | ||||
| get() = R.layout.activity_login | get() = R.layout.activity_login | ||||
| @@ -96,6 +99,15 @@ class LoginActivity : BaseActivity<LoginPresenter>(), LoginView { | |||||
| img1.setSrc(env.LOGO) | img1.setSrc(env.LOGO) | ||||
| LogUtils.d("env.APP_NAME",env.APP_NAME) | LogUtils.d("env.APP_NAME",env.APP_NAME) | ||||
| img2.setSrc(env.APP_NAME) | img2.setSrc(env.APP_NAME) | ||||
| qrRefresh.setOnClickListener { | |||||
| if(qrLoading){ | |||||
| toast("刷新中,请稍后") | |||||
| return@setOnClickListener | |||||
| } | |||||
| qrLoading = true | |||||
| mPresenter?.getWXQrCode(true) | |||||
| } | |||||
| } | } | ||||
| private fun doLogin() { | private fun doLogin() { | ||||
| @@ -165,10 +177,23 @@ class LoginActivity : BaseActivity<LoginPresenter>(), LoginView { | |||||
| finish() | finish() | ||||
| } | } | ||||
| override fun onWxQrCodeSuccess(imgUrl: String, ticket: String) { | |||||
| override fun onWxQrCodeSuccess(imgUrl: String, ticket: String,refresh:Boolean) { | |||||
| qrLoading = false | |||||
| qrCodeImg.setSrc(imgUrl) | qrCodeImg.setSrc(imgUrl) | ||||
| mTicket = ticket | mTicket = ticket | ||||
| mPresenter?.loginQuery(ticket) | mPresenter?.loginQuery(ticket) | ||||
| if(refresh){ | |||||
| toast("刷新成功") | |||||
| } | |||||
| } | |||||
| override fun onWxQrCodeError(msg: String, refresh: Boolean) { | |||||
| qrLoading = false | |||||
| if(refresh){ | |||||
| toast(msg.ifBlank { | |||||
| "刷新失败" | |||||
| }) | |||||
| } | |||||
| } | } | ||||
| override fun onDestroy() { | 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 | val url = Config.BASE_URL + YzxInterface.INTERFACE_GENERATE_WX_QR_TICKET | ||||
| var env = Config.getEvn() | var env = Config.getEvn() | ||||
| OkGo.post<YzxResponse<WxQrTicket>>(url) | OkGo.post<YzxResponse<WxQrTicket>>(url) | ||||
| @@ -165,13 +165,14 @@ class LoginPresenter(view: LoginView) : BasePresenter<LoginView>(view) { | |||||
| if (response?.isSuccessful == true) { | if (response?.isSuccessful == true) { | ||||
| val url = | val url = | ||||
| "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=${response.body().data.ticket}" | "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>>?) { | override fun onError(response: Response<YzxResponse<WxQrTicket>>?) { | ||||
| super.onError(response) | super.onError(response) | ||||
| LogUtils.d(response) | LogUtils.d(response) | ||||
| mView?.onWxQrCodeError(response?.body()?.msg ?: "",refresh) | |||||
| } | } | ||||
| }) | }) | ||||
| } | } | ||||
| @@ -203,6 +204,7 @@ interface LoginView : IView { | |||||
| fun onLoginError(msg: String) | fun onLoginError(msg: String) | ||||
| fun onUserInfoSuccess(user: User) | fun onUserInfoSuccess(user: User) | ||||
| fun onUserListSuccess(list: MutableList<BaseUser>, token: String) | 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) | fun onLoginQuerySuccess(user: BaseUser, code: Int) | ||||
| } | } | ||||
| @@ -93,8 +93,8 @@ | |||||
| <ImageView | <ImageView | ||||
| android:id="@+id/qrCodeImg" | android:id="@+id/qrCodeImg" | ||||
| android:layout_width="200dp" | |||||
| android:layout_height="200dp" | |||||
| android:layout_width="160dp" | |||||
| android:layout_height="160dp" | |||||
| android:background="@color/blue2"/> | android:background="@color/blue2"/> | ||||
| <TextView | <TextView | ||||
| @@ -107,6 +107,14 @@ | |||||
| android:paddingVertical="@dimen/d_10" | android:paddingVertical="@dimen/d_10" | ||||
| android:paddingHorizontal="@dimen/d_30"/> | 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> | ||||
| <androidx.appcompat.widget.LinearLayoutCompat | <androidx.appcompat.widget.LinearLayoutCompat | ||||