package com.igo.user.dialog
|
|
import android.net.Uri
|
import android.os.Bundle
|
import android.view.Gravity
|
import android.view.LayoutInflater
|
import android.view.View
|
import android.view.ViewGroup
|
import android.widget.EditText
|
import android.widget.ImageView
|
import android.widget.TextView
|
import androidx.fragment.app.DialogFragment
|
import cn.sinata.xldutils.utils.myToast
|
import com.facebook.drawee.backends.pipeline.Fresco
|
import com.facebook.drawee.view.SimpleDraweeView
|
import com.igo.user.R
|
import com.igo.user.network.Apis
|
import org.jetbrains.anko.matchParent
|
import org.jetbrains.anko.sdk27.coroutines.onClick
|
import org.jetbrains.anko.support.v4.find
|
import org.jetbrains.anko.wrapContent
|
|
class ImageCodeDialog : DialogFragment() {
|
private val phone by lazy {
|
arguments?.getString("phone")?:""
|
}
|
|
override fun onCreateView(
|
inflater: LayoutInflater,
|
container: ViewGroup?,
|
savedInstanceState: Bundle?
|
): View? {
|
return inflater.inflate(R.layout.dialog_imag_code, container, false)
|
}
|
|
private val tv_cancel by lazy { find<ImageView>(R.id.tv_cancel) }
|
private val et_code by lazy { find<EditText>(R.id.et_code) }
|
private val tv_action by lazy { find<TextView>(R.id.tv_action) }
|
private val iv_code by lazy { find<SimpleDraweeView>(R.id.iv_code) }
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
setStyle(STYLE_NO_FRAME, cn.sinata.xldutils.R.style.FadeDialog)
|
}
|
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
super.onActivityCreated(savedInstanceState)
|
dialog?.window?.setLayout(matchParent, wrapContent)
|
dialog?.window?.setGravity(Gravity.CENTER)
|
dialog?.setCanceledOnTouchOutside(true)
|
}
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
super.onViewCreated(view, savedInstanceState)
|
|
tv_cancel.setOnClickListener {
|
dismiss()
|
}
|
|
refreshImgCode()
|
|
iv_code.onClick {
|
refreshImgCode()
|
}
|
|
tv_action.setOnClickListener {
|
val code = et_code.text.toString()
|
if (code.length!=4){
|
myToast("请输入4位验证码")
|
}else{
|
callback?.onOk(code)
|
dismiss()
|
}
|
}
|
}
|
|
private fun refreshImgCode(){
|
val uri = Uri.parse(Apis.CODE_IMG.format(phone))
|
val imagePipeline = Fresco.getImagePipeline()
|
imagePipeline.evictFromMemoryCache(uri)
|
imagePipeline.evictFromDiskCache(uri)
|
imagePipeline.evictFromCache(uri)
|
iv_code.setImageURI(uri)
|
}
|
|
interface Callback {
|
fun onOk(code: String)
|
}
|
|
private var callback: Callback? = null
|
|
fun setCallback(callback: Callback) {
|
this.callback = callback
|
}
|
}
|