package com.future.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.future.driver.R
|
import com.future.driver.base.BaseEvent
|
import com.future.driver.base.MyBaseActivity
|
import com.future.driver.base.gaode.AMapKit
|
import com.future.driver.bean.PhoneCheckBean
|
import com.future.driver.bean.SelectClassBean
|
import com.future.driver.netUtls.Api
|
import com.future.driver.netUtls.callNet
|
import com.future.driver.netUtls.getMapByAny
|
import com.future.driver.ui.DialogUtil
|
import com.future.driver.ui.adapter.SelectClassAdapter
|
import com.future.driver.ui.adapter.TimeSelectAdapter
|
import com.future.driver.utils.BottomBarUtils
|
import com.future.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,5)
|
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(ll_city,0,0)
|
}
|
|
fun getNavHeight():Int{
|
var h = BottomBarUtils.getInstans().getNavigationBarHeightIfRoom(this)
|
if (h == 0) {
|
h = BottomBarUtils.getInstans().getNavigationBarHeight(this) - 10
|
} else {
|
h = 0
|
}
|
return h
|
}
|
}
|