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(R.id.tv_cancel) } private val et_code by lazy { find(R.id.et_code) } private val tv_action by lazy { find(R.id.tv_action) } private val iv_code by lazy { find(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 } }