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.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
@@ -63,6 +66,7 @@ class LoginActivity : BaseActivity<LoginPresenter>(), LoginView {
accountLayout.visibility = View.GONE accountLayout.visibility = View.GONE
SPUtils.getInstance().put("last_login_tab_index",1) SPUtils.getInstance().put("last_login_tab_index",1)
KeyboardUtils.hideSoftInput(this@LoginActivity) KeyboardUtils.hideSoftInput(this@LoginActivity)
qrLoading = true
mPresenter?.getWXQrCode() mPresenter?.getWXQrCode()
} }
} }
@@ -76,6 +80,7 @@ class LoginActivity : BaseActivity<LoginPresenter>(), LoginView {
qrLayout.visibility = View.VISIBLE qrLayout.visibility = View.VISIBLE
accountLayout.visibility = View.GONE accountLayout.visibility = View.GONE
tabLayout.currentTab = 1 tabLayout.currentTab = 1
qrLoading = true
mPresenter?.getWXQrCode() mPresenter?.getWXQrCode()
} }
loginBtn.setOnClickListener { loginBtn.setOnClickListener {
@@ -95,6 +100,14 @@ class LoginActivity : BaseActivity<LoginPresenter>(), LoginView {
var env = Config.getEvn() var env = Config.getEvn()
img1.setSrc(env.LOGO) img1.setSrc(env.LOGO)
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() {
@@ -164,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() {


+ 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 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,8 @@ 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)
} }

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

@@ -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
@@ -182,7 +190,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="登 录" android:text="登 录"
android:layout_marginTop="@dimen/d_20"
android:layout_marginTop="22dp"
android:background="@drawable/btn_blue_select" android:background="@drawable/btn_blue_select"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/d_20"/> android:textSize="@dimen/d_20"/>


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