lmw
2023-04-03 16ea883d3c03fd8b910f9282aa1bc08378d40d54
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
package com.zhaoyang.driver.ui.main.add_order
 
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import cn.sinata.xldutils.utils.callPhone
import cn.sinata.xldutils.utils.clickDelay
import com.amap.api.location.AMapLocationListener
import com.zhaoyang.driver.R
import com.zhaoyang.driver.base.BaseEvent
import com.zhaoyang.driver.base.MyBaseActivity
import com.zhaoyang.driver.base.gaode.AMapKit
import com.zhaoyang.driver.bean.PhoneCheckBean
import com.zhaoyang.driver.bean.SelectClassBean
import com.zhaoyang.driver.netUtls.Api
import com.zhaoyang.driver.netUtls.callNet
import com.zhaoyang.driver.netUtls.getMapByAny
import com.zhaoyang.driver.ui.DialogUtil
import com.zhaoyang.driver.ui.adapter.SelectClassAdapter
import com.zhaoyang.driver.ui.adapter.TimeSelectAdapter
import com.zhaoyang.driver.utils.BottomBarUtils
import com.zhaoyang.driver.utils.DateUtil
import kotlinx.android.synthetic.main.activity_select_class.*
import kotlinx.android.synthetic.main.pop_item_select_time.view.*
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.toast
import java.util.*
 
/**
 * @ClassName SelectClassActivity
 * @Description TODO
 * @Author Administrator
 * @Date 2020/10/7 16:24
 * @Version 1.0
 */
class SelectClassActivity: MyBaseActivity() {
 
    val startCityName by lazy {
        intent.getStringExtra("startCityName")
    }
 
    val endCityName by lazy {
        intent.getStringExtra("endCityName")
    }
 
    val lineId by lazy {
       intent.getStringExtra("lineId")
    }
 
    val contentAdapter by lazy {
        SelectClassAdapter()
    }
 
    val timeSelectAdapter by lazy {
        TimeSelectAdapter()
    }
 
    override fun setContentView() {
        setContentView(R.layout.activity_select_class)
    }
 
    var cityCode = ""
 
    override fun initView() {
        setTitleText("选择乘车班次")
        tv_line.text = startCityName
        tv_line_two.text = endCityName
        recycler_view_content.layoutManager = LinearLayoutManager(this)
        recycler_view_content.adapter = contentAdapter
 
        recycler_view_time.layoutManager = GridLayoutManager(this,6)
        timeSelectAdapter.data.addAll(timeSelectAdapter.getAllDate(Calendar.getInstance()))
        recycler_view_time.adapter = timeSelectAdapter
        timeSelectAdapter.setOnItemClickListener { view, position ->
            timeSelectAdapter.selectPosition = position
            timeSelectAdapter.notifyDataSetChanged()
            callClass(timeSelectAdapter.data[position])
        }
        callClass(Calendar.getInstance())
       getCityCode()
 
        contentAdapter.setOnItemClickListener { view, position ->
            var item = contentAdapter.data[position]
//            var startTime = item!!.startTime.replace(":",".").toDouble()
//            var nowTime = Calendar.getInstance().get(Calendar.HOUR_OF_DAY)
//            if (timeSelectAdapter.selectPosition == 0 && startTime < nowTime){
//                toast("班次时间已过")
//                return@setOnItemClickListener
//            }
            if (item.carLicensePlate.isNullOrEmpty()){
                callPhoneNet()
                return@setOnItemClickListener
            }
            item.allTime = DateUtil.getTime(DateUtil.TYPE1,timeSelectAdapter.data[timeSelectAdapter.selectPosition].timeInMillis)+" "+item.startTime
            EventBus.getDefault().post(BaseEvent(BaseEvent.SELECT_CLASS_SITE,gson.toJson(item)))
            onBackPressed()
        }
    }
 
    private fun callPhoneNet() {
        if (cityCode.isEmpty()){
            toast("资源正在初始化")
            return
        }
        var map = getMapByAny()
        map["code"] = cityCode
        callNet(Api.queryCustomerPhone,map){
            var bean = gson.fromJson<PhoneCheckBean>(it,PhoneCheckBean::class.java)
            var dialog = DialogUtil.getDelAndSureDialog(this,"是否需要为您调度车辆?",{}){
                callPhone(this,bean.data.scheduling)
            }
        }
    }
 
    private fun getCityCode() {
        AMapKit.initLocation(this, AMapLocationListener {
            if (it.errorCode == 0) {
                AMapKit.getAddress(this,it.latitude,it.longitude){
                    cityCode = it
                }
            }
        })
    }
 
    private fun callClass(calendar: Calendar) {
        var map = getMapByAny()
        map["day"] = DateUtil.getTime(DateUtil.TYPE1,calendar.timeInMillis)
        map["lineId"] = lineId
        callNet(Api.queryDriver,map){
            var bean = gson.fromJson<SelectClassBean>(it,SelectClassBean::class.java)
            contentAdapter.data.clear()
            contentAdapter.data.addAll(bean.data)
            contentAdapter.notifyDataSetChanged()
        }
 
    }
 
    override fun setOnclick() {
        tv_more_time.clickDelay {
            showTimeSelect()
        }
    }
 
    private fun showTimeSelect() {
        var pop =  DialogUtil.getPopupwindow(this,R.layout.pop_item_select_time)
        pop.contentView.tv_time_center.text = pop.contentView.calendarView.date
        pop.contentView.iv_last_time.clickDelay {
            pop.contentView.calendarView.setLastMonth()
            pop.contentView.tv_time_center.text = pop.contentView.calendarView.date
        }
        pop.contentView.iv_next_time.clickDelay {
            pop.contentView.calendarView.setNextMonth()
            pop.contentView.tv_time_center.text = pop.contentView.calendarView.date
        }
        pop.contentView.calendarView.setOnClickDate {
            var timeList = it.split("-")
            var calendar = Calendar.getInstance()
            calendar.set(timeList[0].toInt(),timeList[1].toInt()-1,timeList[2].toInt())
            timeSelectAdapter.data.clear()
            timeSelectAdapter.data.addAll(timeSelectAdapter.getAllDate(calendar))
            timeSelectAdapter.selectPosition = 0
            timeSelectAdapter.notifyDataSetChanged()
            callClass(calendar)
            pop.dismiss()
        }
        pop.contentView.view_back.clickDelay {
            pop.dismiss()
        }
 
        pop.showAsDropDownmain(recycler_view_time,getNavHeight(),0)
    }
 
    fun getNavHeight():Int{
        var h = BottomBarUtils.getInstans().getNavigationBarHeightIfRoom(this)
        if (h == 0) {
            h = BottomBarUtils.getInstans().getNavigationBarHeight(this) - 10
        } else {
            h = 0
        }
        return h
    }
}