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
package com.kuanzhai.user.ui.menu
 
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.utils.myToast
import cn.sinata.xldutils.view.SwipeRefreshRecyclerLayout
import com.kuanzhai.user.R
import com.kuanzhai.user.dialog.TipDialog
import com.kuanzhai.user.interfaces.StringCallback
import com.kuanzhai.user.network.HttpManager
import com.kuanzhai.user.network.entity.RentBean
import com.kuanzhai.user.network.requestByF
import com.kuanzhai.user.ui.menu.adapter.RentAdapter
import org.jetbrains.anko.support.v4.find
import org.jetbrains.anko.support.v4.startActivityForResult
 
class MyRentFragment:BaseFragment(),StringCallback {
    override fun contentViewId() = R.layout.base_recyclerview_layout
 
    private val swipeRefreshLayout by lazy { find<SwipeRefreshRecyclerLayout>(R.id.swipeRefreshLayout) }
    private var page = 1
    private val list = arrayListOf<RentBean>()
    private val adapter = RentAdapter(list,this)
 
    override fun onFirstVisibleToUser() {
        swipeRefreshLayout.setLayoutManager(LinearLayoutManager(requireContext()))
        swipeRefreshLayout.setAdapter(adapter)
        swipeRefreshLayout.setOnRefreshListener(object :SwipeRefreshRecyclerLayout.OnRefreshListener{
            override fun onRefresh() {
                page = 1
                getData()
            }
 
            override fun onLoadMore() {
                page++
                getData()
            }
        })
        getData()
        adapter.setOnItemClickListener { view, position ->
            startActivityForResult<RentDetailActivity>(1,"id" to list[position].id)
        }
    }
 
    private fun getData(){
        HttpManager.getMyCarRentalList(page).requestByF(this,true,{ _, data ->
            swipeRefreshLayout.isRefreshing = false
            if (page == 1)
                list.clear()
            list.addAll(data ?: emptyList())
            adapter.notifyDataSetChanged()
        }){_,_->
            swipeRefreshLayout.isRefreshing = false
        }
    }
 
    override fun onRlt(rlt: String) {
        val tipDialog = TipDialog()
        tipDialog.arguments = bundleOf("msg" to "删除后数据将不会恢复,确认删除?","ok" to "确认","cancel" to "取消")
        tipDialog.setCallback(object :TipDialog.OnClickCallback{
            override fun onOk() {
                HttpManager.delete(list[rlt.toInt()].id,1).requestByF(this@MyRentFragment){_,_->
                    myToast("删除成功")
                    list.removeAt(rlt.toInt())
                    adapter.notifyDataSetChanged()
                }
            }
 
            override fun onCancel() {
            }
        })
        tipDialog.show(childFragmentManager,"del")
    }
 
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == Activity.RESULT_OK){
            swipeRefreshLayout.isRefreshing = true
            page = 1
            getData()
        }
    }
}