package com.dollearn.student.ui.mine
|
|
import android.app.Activity
|
import android.content.Intent
|
import androidx.recyclerview.widget.GridLayoutManager
|
import cn.sinata.xldutils.utils.SpanBuilder
|
import com.dollearn.student.R
|
import com.dollearn.student.dialog.PayDialog
|
import com.dollearn.student.network.HttpManager
|
import com.dollearn.student.network.entity.RechargeItem
|
import com.dollearn.student.network.request
|
import com.dollearn.student.ui.H5Activity
|
import com.dollearn.student.ui.TransparentStatusBarActivity
|
import com.dollearn.student.ui.home.PayResultActivity
|
import com.dollearn.student.ui.mine.adapter.RechargeAdapter
|
import com.dollearn.student.utils.Const
|
import com.dollearn.student.utils.event.EmptyEvent
|
import com.dollearn.student.utils.extention.clickDelay
|
import com.dollearn.student.utils.interfaces.StringCallback
|
import com.dollearn.student.utils.pay.PayListener
|
import com.dollearn.student.utils.pay.PayUtil
|
import kotlinx.android.synthetic.main.activity_recharge.*
|
import org.greenrobot.eventbus.EventBus
|
import org.jetbrains.anko.sdk27.coroutines.onClick
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.startActivityForResult
|
|
class RechargeActivity : TransparentStatusBarActivity(),PayListener {
|
override fun setContentView() = R.layout.activity_recharge
|
|
private val list = arrayListOf<RechargeItem>()
|
private val adapter = RechargeAdapter(list)
|
|
override fun initClick() {
|
adapter.setOnItemClickListener { view, position ->
|
adapter.checked = position
|
adapter.notifyDataSetChanged()
|
}
|
tv_description.clickDelay {
|
HttpManager.rechargeDescription().request(this){_,data->
|
startActivity<H5Activity>("title" to "储值中心","url" to data)
|
}
|
}
|
tv_action.onClick {
|
PayDialog.show(supportFragmentManager,false,object :StringCallback{
|
override fun onResult(rst: String) {
|
pay(rst.toInt())
|
}
|
},list[adapter.checked].amount.toDouble(),0)
|
}
|
}
|
|
override fun initView() {
|
rv_price.layoutManager = GridLayoutManager(this,3)
|
rv_price.adapter = adapter
|
|
HttpManager.voucherCenter().request(this){_,data->
|
list.clear()
|
list.addAll(data?: arrayListOf())
|
adapter.notifyDataSetChanged()
|
}
|
|
PayUtil.addPayListener(this)
|
}
|
|
override fun onResume() {
|
super.onResume()
|
getCoin()
|
}
|
|
private fun getCoin(){
|
|
}
|
|
private fun pay(payType:Int){
|
HttpManager.recharge(list[adapter.checked].amount.toDouble(),payType).request(this,false,success = {_,data->
|
if (payType == 2){
|
PayUtil.aliPay(this,data?.orderInfo?:"")
|
}else{
|
PayUtil.initWeChatPay(this,Const.WX_APP_ID)
|
PayUtil.weChatPay(data!!)
|
}
|
}){_,msg->
|
startActivityForResult<PayResultActivity>(1,"type" to PayResultActivity.TYPE_RECHARGE_FAILED,"msg" to msg)
|
}
|
}
|
|
override fun onPaySuccess() {
|
EventBus.getDefault().post(EmptyEvent(Const.EventCode.REFRESH_USER)) //充值成功,刷新首页
|
startActivity<PayResultActivity>("type" to PayResultActivity.TYPE_RECHARGE_SUC)
|
setResult(Activity.RESULT_OK)
|
finish()
|
}
|
|
override fun onPayCancel() {
|
}
|
|
override fun onPayError(msg: String) {
|
startActivityForResult<PayResultActivity>(1,"type" to PayResultActivity.TYPE_RECHARGE_FAILED)
|
}
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
super.onActivityResult(requestCode, resultCode, data)
|
if (resultCode == RESULT_OK){
|
tv_action.postDelayed({
|
tv_action.callOnClick()
|
},500)
|
}
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
PayUtil.removePayListener(this)
|
PayUtil.unregisterApp()
|
}
|
|
}
|