package com.sinata.xqmuse.ui.mine
|
|
import androidx.core.os.bundleOf
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import cn.sinata.xldutils.fragment.BaseFragment
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.network.HttpManager
|
import com.sinata.xqmuse.network.entity.WalletDetail
|
import com.sinata.xqmuse.network.requestByF
|
import com.sinata.xqmuse.ui.mine.adapter.WalletAdapter
|
import kotlinx.android.synthetic.main.layout_common_list.*
|
import org.jetbrains.anko.backgroundColorResource
|
import org.jetbrains.anko.support.v4.startActivity
|
|
class WalletDetailFragment:BaseFragment() {
|
override fun contentViewId() = R.layout.layout_common_list
|
|
private val state by lazy { arguments?.getInt("state",1)?:1 }
|
private var page = 1
|
private val list = arrayListOf<WalletDetail>()
|
private val adapter = WalletAdapter(list)
|
|
override fun onFirstVisibleToUser() {
|
cl_root.backgroundColorResource = R.color.white
|
rv_list.layoutManager = LinearLayoutManager(requireContext())
|
rv_list.adapter = adapter
|
refreshLayout.setOnRefreshListener {
|
page = 1
|
getData()
|
}
|
refreshLayout.setOnLoadMoreListener {
|
page ++
|
getData()
|
}
|
refreshLayout.autoRefresh()
|
adapter.setOnItemClickListener { _, position ->
|
startActivity<BalanceChangeDetailActivity>("id" to list[position].id)
|
}
|
}
|
|
private fun getData(){
|
HttpManager.balanceList(page,state).requestByF(this,success = { _, data->
|
if (page == 1)
|
list.clear()
|
list.addAll(data?.list?: arrayListOf())
|
adapter.notifyDataSetChanged()
|
if (list.isEmpty()){
|
refreshLayout.finishRefreshWithNoMoreData()
|
} else if (data?.list.isNullOrEmpty())
|
refreshLayout.finishLoadMoreWithNoMoreData()
|
else if (page == 1)
|
refreshLayout.finishRefresh()
|
else
|
refreshLayout.finishLoadMore()
|
}){_,_->
|
if (page == 1)
|
refreshLayout.finishRefresh(false)
|
else
|
refreshLayout.finishLoadMore(false)
|
}
|
}
|
|
companion object{
|
const val STATE_ALL = 1
|
const val STATE_INCOME = 2
|
const val STATE_USE = 3
|
|
fun newInstance(state:Int):WalletDetailFragment{
|
val walletDetailFragment = WalletDetailFragment()
|
walletDetailFragment.arguments = bundleOf("state" to state)
|
return walletDetailFragment
|
}
|
}
|
}
|