package com.sinata.xqmuse.ui.mine
|
|
import android.os.Bundle
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import cn.sinata.xldutils.activity.BaseActivity
|
import cn.sinata.xldutils.utils.SpanBuilder
|
import cn.sinata.xldutils.utils.myToast
|
import com.github.zackratos.ultimatebar.UltimateBar
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.dialog.ChooseMonthDialog
|
import com.sinata.xqmuse.dialog.TipDialog
|
import com.sinata.xqmuse.dialog.WithdrawDialog
|
import com.sinata.xqmuse.network.HttpManager
|
import com.sinata.xqmuse.network.entity.Detail
|
import com.sinata.xqmuse.network.request
|
import com.sinata.xqmuse.ui.mine.adapter.WalletAdapter
|
import com.sinata.xqmuse.utils.Const
|
import com.sinata.xqmuse.utils.event.EmptyEvent
|
import com.sinata.xqmuse.utils.extention.clickDelay
|
import com.sinata.xqmuse.utils.interfaces.StringCallback
|
import kotlinx.android.synthetic.main.activity_wallet.*
|
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.Subscribe
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.textColorResource
|
|
class WalletActivity : BaseActivity() {
|
private var page = 1
|
private var year:Int? = null
|
private var month:Int? = null
|
|
private var balance = 0.0
|
|
private val list = arrayListOf<Detail>()
|
private val adapter = WalletAdapter(list)
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
setContentView(R.layout.activity_wallet)
|
initView()
|
initClick()
|
}
|
|
private fun initClick() {
|
tv_withdraw_record.setOnClickListener {
|
startActivity<WithdrawRecordActivity>()
|
}
|
tv_month.clickDelay {
|
val chooseMonthDialog = ChooseMonthDialog()
|
chooseMonthDialog.setCallback(object :StringCallback{
|
override fun onResult(rst: String) {
|
tv_month.text = rst
|
year = rst.substring(0,4).toInt()
|
month = rst.substring(5,rst.length-1).toInt()
|
page = 1
|
getData()
|
}
|
})
|
chooseMonthDialog.show(supportFragmentManager,"month")
|
}
|
|
tv_reset.clickDelay {
|
tv_month.text = "请选择"
|
year = null
|
month = null
|
page = 1
|
getData()
|
}
|
|
tv_action.setOnClickListener {
|
startActivity<RechargeActivity>()
|
}
|
|
tv_withdraw.clickDelay {
|
showDialog()
|
HttpManager.getBankInfo().request(this,false,{_,data->
|
dismissDialog()
|
if (data?.bankCard.isNullOrEmpty())
|
TipDialog.show(supportFragmentManager,"提现失败,请先绑定银行卡。",object : TipDialog.OnClickCallback{
|
override fun onOk() {
|
startActivity<BindCardActivity>()
|
}
|
|
override fun onCancel() {
|
|
}
|
},"去绑定")
|
else
|
withdraw()
|
}){_,_->
|
dismissDialog()
|
withdraw()
|
}
|
}
|
}
|
|
private fun withdraw(){
|
WithdrawDialog.show(supportFragmentManager,balance,object :StringCallback{
|
override fun onResult(rst: String) {
|
HttpManager.withdrawal(rst.toDouble()).request(this@WalletActivity,false, {_,_->
|
startActivity<WithdrawRecordActivity>()
|
myToast("提交成功")
|
page = 1
|
getData()
|
}){_,msg->
|
if (msg.contains("绑定")){
|
TipDialog.show(supportFragmentManager,"提现失败,请先绑定银行卡。",object : TipDialog.OnClickCallback{
|
override fun onOk() {
|
startActivity<BindCardActivity>()
|
}
|
|
override fun onCancel() {
|
|
}
|
},"去绑定")
|
}else
|
myToast(msg)
|
}
|
}
|
})
|
}
|
|
private fun initView() {
|
EventBus.getDefault().register(this)
|
titleBar.titleView.text = "个人钱包"
|
titleBar.leftClick { finish() }
|
titleBar.titleView.textColorResource = R.color.white
|
titleBar.leftView.setCompoundDrawablesWithIntrinsicBounds(R.mipmap.back_white,0,0,0)
|
UltimateBar.with(this)
|
.statusDark(false)
|
.create().immersionBar() //沉浸状态栏
|
|
rv_list.layoutManager = LinearLayoutManager(this)
|
rv_list.adapter = adapter
|
|
refreshLayout.setOnLoadMoreListener {
|
page++
|
getData()
|
}
|
|
refreshLayout.setOnRefreshListener {
|
page = 1
|
getData()
|
}
|
page = 1
|
getData()
|
|
}
|
|
@Subscribe
|
fun onRefresh(e:EmptyEvent){
|
if (e.code == Const.EventCode.REFRESH_WALLET){
|
page = 1
|
getData()
|
}
|
}
|
|
private fun getData(){
|
HttpManager.wallet(page,year, month).request(this,success = {_,data->
|
balance = data?.balance?:0.0
|
tv_balance.text = SpanBuilder("¥%.2f".format(balance)).size(0,1,20).build()
|
if (page == 1)
|
list.clear()
|
list.addAll(data?.details?: arrayListOf())
|
adapter.notifyDataSetChanged()
|
if (list.isEmpty())
|
refreshLayout.finishRefreshWithNoMoreData()
|
else if (data?.details.isNullOrEmpty())
|
refreshLayout.finishLoadMoreWithNoMoreData()
|
else if (page == 1)
|
refreshLayout.finishRefresh()
|
else
|
refreshLayout.finishLoadMore()
|
}){_,_->
|
if (page == 1)
|
refreshLayout.finishRefresh(false)
|
else
|
refreshLayout.finishLoadMore(false)
|
}
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
EventBus.getDefault().unregister(this)
|
}
|
}
|