lmw
2023-06-13 adf8013576cbdd12e5ebea8ff7e32baf5d558b27
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
package com.kuanzhai.user.ui.mine
 
import android.app.Activity
import android.content.Intent
import androidx.core.os.bundleOf
import androidx.recyclerview.widget.LinearLayoutManager
import cn.sinata.xldutils.fragment.BaseFragment
import cn.sinata.xldutils.view.SwipeRefreshRecyclerLayout
import com.kuanzhai.user.R
import com.kuanzhai.user.interfaces.OnDelCallback
import com.kuanzhai.user.network.HttpManager
import com.kuanzhai.user.network.entity.Coupon
import com.kuanzhai.user.network.requestByF
import com.kuanzhai.user.dialog.TipDialog
import com.kuanzhai.user.ui.mine.adapter.MyCouponAdapter
import com.kuanzhai.user.ui.trip.ChooseCouponActivity
import kotlinx.android.synthetic.main.fragment_my_coupon.*
import org.jetbrains.anko.startActivityForResult
import org.jetbrains.anko.support.v4.find
import org.jetbrains.anko.support.v4.startActivityForResult
 
class CouponFragment : BaseFragment() {
 
    private val swipeRefreshLayout by lazy {
        find<SwipeRefreshRecyclerLayout>(R.id.swipeRefreshLayout)
    }
    private val datas = arrayListOf<Coupon>()
    private val adapter by lazy {
        MyCouponAdapter(datas,object : OnDelCallback {
            override fun onDel(position: Int) {
                val tipDialog = TipDialog()
                tipDialog.arguments = bundleOf("msg" to "是否确认删除该优惠券?")
                tipDialog.setCallback(object :TipDialog.OnClickCallback{
                    override fun onOk() {
                        HttpManager.delMyCoupon(datas[position].id).requestByF(this@CouponFragment){_,_->
                            refresh()
                        }
                    }
 
                    override fun onCancel() {
                    }
                })
                tipDialog.show(fragmentManager!!,"del")
            }
        })
    }
    private var page = 1
    override fun contentViewId() = R.layout.fragment_my_coupon
 
    override fun onFirstVisibleToUser() {
        swipeRefreshLayout.setLayoutManager(LinearLayoutManager(activity))
        swipeRefreshLayout.setAdapter(adapter)
        swipeRefreshLayout.setOnRefreshListener(object :SwipeRefreshRecyclerLayout.OnRefreshListener{
            override fun onRefresh() {
                page = 1
                getData()
            }
 
            override fun onLoadMore() {
                page++
                getData()
            }
        })
        swipeRefreshLayout.isRefreshing = true
        getData()
        rg_type.setOnCheckedChangeListener { group, checkedId ->
            adapter.type = if (checkedId == R.id.rb_useful) 1 else 2
            refresh()
        }
        tv_send.setOnClickListener {
            startActivityForResult<ChooseCouponActivity>(1,"isPay" to false)
        }
    }
 
    fun refresh(){
        swipeRefreshLayout.isRefreshing = true
        page = 1
        getData()
    }
 
    private fun getData(){
        HttpManager.queryMyCoupons(page,adapter.type).requestByF(this,success = {_,data->
            swipeRefreshLayout.isRefreshing = false
            data?.let {
                if (page == 1)
                    datas.clear()
                datas.addAll(it)
                if (datas.isEmpty())
                    swipeRefreshLayout.setLoadMoreText("暂无优惠券")
                else if (it.isEmpty())
                    swipeRefreshLayout.setLoadMoreText("没有更多")
                adapter.notifyDataSetChanged()
            }
        },error = {_,_->
            swipeRefreshLayout.isRefreshing = false
        })
    }
 
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == 1&&resultCode == Activity.RESULT_OK){
            refresh()
        }
    }
}