leiyun 2 лет назад
Родитель
Сommit
d6340aceee
3 измененных файлов: 44 добавлений и 7 удалений
  1. +27
    -1
      app/src/main/java/com/yzx/escreen/activity/LoginActivity.kt
  2. +6
    -3
      app/src/main/java/com/yzx/escreen/presenter/LoginPresenter.kt
  3. +11
    -3
      app/src/main/res/layout/activity_login.xml

+ 27
- 1
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<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() {


+ 6
- 3
app/src/main/java/com/yzx/escreen/presenter/LoginPresenter.kt Просмотреть файл

@@ -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)
}

+ 11
- 3
app/src/main/res/layout/activity_login.xml Просмотреть файл

@@ -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"/>


Загрузка…
Отмена
Сохранить