lmw
2023-06-20 7e4a923b472a1ffb9d6deeb80302551ba4178ca3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package com.fanghua.driver.ui.mine.money_bag
 
import android.view.View
import androidx.core.content.ContextCompat
import androidx.core.os.bundleOf
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import cn.sinata.xldutils.utils.TimeUtils
import cn.sinata.xldutils.utils.clickDelay
import com.fanghua.driver.R
import com.fanghua.driver.base.BaseRecyclerActivity
import com.fanghua.driver.base.BaseRvAdapter
import com.fanghua.driver.bean.BalanceDetail
import com.fanghua.driver.bean.BalanceDetailBean
import com.fanghua.driver.dialog.TypeDialog
import com.fanghua.driver.netUtls.Api
import com.fanghua.driver.netUtls.getMapByAny
import com.fanghua.driver.ui.adapter.BalanceDetailAdapter
import com.fanghua.driver.utils.citypickerview.picker.widget.builder.TimePickerBuilder
import com.fanghua.driver.utils.citypickerview.picker.widget.configure.TimePickerType
import com.fanghua.driver.utils.citypickerview.picker.widget.listener.OnTimeSelectListener
import com.google.gson.Gson
import kotlinx.android.synthetic.main.activity_base_recycler.*
import kotlinx.android.synthetic.main.header_balance_detail.view.*
import org.jetbrains.anko.startActivity
import java.util.*
 
class BalanceDetailActivity: BaseRecyclerActivity<BalanceDetail>() {
    private val header by lazy {
        layoutInflater.inflate(R.layout.header_balance_detail,topView,false)
    }
 
    private var type = 0 //1=收入,3=充值,4=支出,7=优惠券,8=保险
 
    override fun initView() {
        setTitleText("钱包")
        header.tv_time.text = TimeUtils.getTimeYM(System.currentTimeMillis())
        addTopView(header)
    }
 
    override fun setOnclick() {
        header.tv_time.clickDelay {
            showTimePicker()
        }
        header.tv_type.clickDelay {
            val typeDialog = TypeDialog()
            typeDialog.arguments = bundleOf("type" to header.tv_type.text.toString())
            typeDialog.setCallback(object :TypeDialog.OnOkClick{
                override fun onOk(name: String, type: Int) {
                    header.tv_type.text = name
                    this@BalanceDetailActivity.type = type
                    smart_refresh_layout.autoRefresh()
                }
            })
            typeDialog.show(supportFragmentManager,"type")
        }
    }
 
    override fun getDatas(t: String?): List<BalanceDetail> {
        val fromJson = Gson().fromJson(t, BalanceDetailBean::class.java)
        if (fromJson.resultUtil.code == 10000){
            return fromJson.resultUtil.data
        }else{
            showToast(fromJson.resultUtil.msg)
            return emptyList()
        }
    }
 
    override fun pathUrl(): String = Api.queryBalanceDetail
 
    override fun mapObject(): HashMap<String?, Any?>? {
        val map = getMapByAny()
        map["time"] = header.tv_time.text.toString()
        if (type != 0)
            map["type"] = type
        return map
    }
 
    override fun getAdapter(): BaseRvAdapter<BalanceDetail> = BalanceDetailAdapter()
 
    override fun getlayoutManager(): RecyclerView.LayoutManager? {
        return LinearLayoutManager(this)
    }
 
    override fun setOnItemClickListener(view: View?, position: Int) {
        val data = adapters?.data?.get(position)
        if (data?.type == 8){
            startActivity<InsureDetailActivity>("data" to data)
        }
    }
 
    fun showTimePicker() {
        var startCalendar = Calendar.getInstance()
        var endCalendar = Calendar.getInstance()
        var nowCalendar = Calendar.getInstance()
        startCalendar.set(2023, 1, 1)
        nowCalendar.set(Calendar.YEAR,header.tv_time.text.toString().substring(0,4).toInt())
        nowCalendar.set(Calendar.MONTH,header.tv_time.text.toString().substring(5,7).toInt()-1)
        var timePic = TimePickerBuilder(this,
            OnTimeSelectListener { date, v ->
                header.tv_time.text = TimeUtils.getTimeYM(date.time)
                smart_refresh_layout.autoRefresh()
            })
            .setTitleText("")
            .setBgColor(ContextCompat.getColor(this, R.color.white))
            .setCancelColor(ContextCompat.getColor(this, R.color.black_333333))
            .setSubmitColor(ContextCompat.getColor(this, R.color.main_yellow_shen))
            .setRangDate(startCalendar, endCalendar)
            .setDate(nowCalendar)
            .setType(TimePickerType.YM)
            .setSubmitText("确认")
            .setLineSpacingMultiplier(2f)
            .build()
        timePic.show()
    }
}