package com.kuanzhai.user.ui.menu
|
|
import android.util.Log
|
import android.view.animation.AnimationUtils
|
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import cn.sinata.xldutils.clickDelay
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.view.SwipeRefreshRecyclerLayout
|
import cn.sinata.xldutils.visible
|
import com.kuanzhai.user.R
|
import com.kuanzhai.user.network.HttpManager
|
import com.kuanzhai.user.network.entity.Brand
|
import com.kuanzhai.user.network.entity.City
|
import com.kuanzhai.user.network.entity.RentBean
|
import com.kuanzhai.user.network.request
|
import com.kuanzhai.user.ui.TransparentStatusBarActivity
|
import com.kuanzhai.user.ui.charter.adapter.StringAdapter
|
import com.kuanzhai.user.ui.menu.adapter.FilterStringAdapter
|
import com.kuanzhai.user.ui.menu.adapter.FilterGridAdapter
|
import com.kuanzhai.user.ui.menu.adapter.RentAdapter
|
import kotlinx.android.synthetic.main.activity_buy_car.*
|
import org.jetbrains.anko.startActivity
|
|
class RentCarActivity : TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_buy_car
|
|
private val list = arrayListOf<RentBean>()
|
private val adapter = RentAdapter(list)
|
private var page = 1
|
|
private val brands = arrayListOf<Brand>()
|
private var brandAdapter:StringAdapter? = null
|
|
private val provinces = arrayListOf<City>()
|
private val cities = arrayListOf<City>()
|
private val cityStrings = arrayListOf<String>()
|
private var provinceAdapter:FilterStringAdapter? = null
|
private val cityAdapter = FilterStringAdapter(cityStrings)
|
|
private val prices = arrayListOf("价格不限","¥100以下","¥100-200","¥200-300","¥300-400","¥400以上")
|
private val priceAdapter = FilterGridAdapter(prices)
|
private val license = arrayListOf("不限","身份证","驾驶证","驾驶员资格证")
|
private val licenseAdapter = FilterGridAdapter(license)
|
|
//筛选参数
|
private var brandId:Int? = null
|
private var type:Int? = null
|
private var cityCode:String? = null
|
private var provinceCode:String? = null
|
private var pickUpCarCarCertificates:String? = null
|
private var startRentMoney:Double? = null
|
private var endRentMoney:Double? = null
|
|
override fun initClick() {
|
adapter.setOnItemClickListener { view, position ->
|
startActivity<RentCarDetailActivity>("id" to list[position].id)
|
}
|
bg_shadow.setOnClickListener { closeFilter() }
|
fl_search1.setOnClickListener {
|
if (tv_search1.isSelected)
|
closeFilter()
|
else{
|
closeFilter()
|
tv_search1.isSelected = true
|
bg_shadow.visible()
|
rv_brand.visible()
|
val loadAnimation = AnimationUtils.loadAnimation(this, R.anim.nemu_top_in)
|
rv_brand.startAnimation(loadAnimation)
|
}
|
}
|
fl_search2.setOnClickListener {
|
if (tv_search2.isSelected)
|
closeFilter()
|
else{
|
closeFilter()
|
tv_search2.isSelected = true
|
bg_shadow.visible()
|
ll_type.visible()
|
val loadAnimation = AnimationUtils.loadAnimation(this, R.anim.nemu_top_in)
|
ll_type.startAnimation(loadAnimation)
|
}
|
}
|
fl_search3.setOnClickListener {
|
if (tv_search_region.isSelected)
|
closeFilter()
|
else{
|
closeFilter()
|
tv_search_region.isSelected = true
|
bg_shadow.visible()
|
ll_region.visible()
|
val loadAnimation = AnimationUtils.loadAnimation(this, R.anim.nemu_top_in)
|
ll_region.startAnimation(loadAnimation)
|
}
|
}
|
fl_search4.setOnClickListener {
|
if (tv_search4.isSelected)
|
closeFilter()
|
else{
|
closeFilter()
|
tv_search4.isSelected = true
|
bg_shadow.visible()
|
ll_more_rent.visible()
|
val loadAnimation = AnimationUtils.loadAnimation(this, R.anim.nemu_top_in)
|
ll_more_rent.startAnimation(loadAnimation)
|
}
|
}
|
|
tv_null.clickDelay {
|
tv_search2.text = "车辆类型"
|
type = null
|
closeFilter()
|
refresh()
|
}
|
tv_company.clickDelay {
|
tv_search2.text = "企业车辆"
|
type = 2
|
closeFilter()
|
refresh()
|
}
|
tv_personal.clickDelay {
|
tv_search2.text = "个人车辆"
|
type = 1
|
closeFilter()
|
refresh()
|
}
|
|
cityAdapter.setOnItemClickListener { view, position ->
|
cityAdapter.checked = position
|
cityAdapter.notifyDataSetChanged()
|
closeFilter()
|
cityCode = if (position == 0){
|
tv_search_region.text = provinces[provinceAdapter?.checked?:0].name
|
null
|
} else{
|
tv_search_region.text = cityStrings[position]
|
cities[position].code
|
}
|
val cityName = provinces[provinceAdapter?.checked?:0].name + cityStrings[position]
|
Log.e("mmp","筛选地区:$cityName")
|
refresh()
|
}
|
|
priceAdapter.setOnItemClickListener { view, position ->
|
priceAdapter.checked = position
|
priceAdapter.notifyDataSetChanged()
|
}
|
licenseAdapter.setOnItemClickListener { view, position ->
|
licenseAdapter.checked = position
|
licenseAdapter.notifyDataSetChanged()
|
}
|
|
tv_reset2.setOnClickListener {
|
priceAdapter.checked = 0
|
priceAdapter.notifyDataSetChanged()
|
licenseAdapter.checked = 0
|
licenseAdapter.notifyDataSetChanged()
|
}
|
tv_ok2.setOnClickListener {
|
pickUpCarCarCertificates = if (licenseAdapter.checked == 0) null else license[licenseAdapter.checked]
|
when(priceAdapter.checked){
|
0->{
|
startRentMoney = null
|
endRentMoney = null
|
}
|
1->{
|
startRentMoney = null
|
endRentMoney = 100.0
|
}
|
2->{
|
startRentMoney = 100.0
|
endRentMoney = 200.0
|
}
|
3->{
|
startRentMoney = 200.0
|
endRentMoney = 300.0
|
}
|
4->{
|
startRentMoney = 300.0
|
endRentMoney = 400.0
|
}
|
5->{
|
startRentMoney = 400.0
|
endRentMoney = null
|
}
|
}
|
closeFilter()
|
refresh()
|
}
|
|
bg_search.clickDelay {
|
closeFilter()
|
startActivity<SearchCarActivity>("type" to SearchCarActivity.TYPE_RENT)
|
}
|
}
|
|
override fun initView() {
|
title = "司机车辆承包"
|
tv_search2.text = "车辆类型"
|
tv_search4.text = "筛选"
|
swipeRefreshLayout.setLayoutManager(LinearLayoutManager(this))
|
swipeRefreshLayout.setAdapter(adapter)
|
swipeRefreshLayout.setOnRefreshListener(object :SwipeRefreshRecyclerLayout.OnRefreshListener{
|
override fun onRefresh() {
|
page = 1
|
getData()
|
}
|
|
override fun onLoadMore() {
|
page++
|
getData()
|
}
|
})
|
//品牌
|
rv_brand.layoutManager = LinearLayoutManager(this)
|
getBrands()
|
//地区
|
rv_province.layoutManager = LinearLayoutManager(this)
|
rv_city.layoutManager = LinearLayoutManager(this)
|
rv_city.adapter = cityAdapter
|
cityStrings.add("不限")
|
cityAdapter.notifyDataSetChanged()
|
getProvince()
|
//更多
|
rv_price_rent.layoutManager = GridLayoutManager(this,4)
|
rv_price_rent.adapter = priceAdapter
|
rv_license.layoutManager = GridLayoutManager(this,4)
|
rv_license.adapter = licenseAdapter
|
getData()
|
}
|
|
private fun getData(){
|
HttpManager.getCarRentalList(brandId,null,provinceCode,cityCode,pickUpCarCarCertificates,
|
type,startRentMoney,endRentMoney,page).request(this,success = {_,data->
|
swipeRefreshLayout.isRefreshing = false
|
if (page == 1)
|
list.clear()
|
list.addAll(data?: emptyList())
|
adapter.notifyDataSetChanged()
|
}){_,_->
|
swipeRefreshLayout.isRefreshing = false
|
}
|
}
|
|
private fun getBrands(){
|
HttpManager.queryAllBrand().request(this,false){_,data->
|
brands.clear()
|
brands.add(Brand(0,name = "不限"))
|
brands.addAll(data?: arrayListOf())
|
val arrayListOf = arrayListOf<String>()
|
arrayListOf.addAll(brands.map { it.name })
|
brandAdapter = StringAdapter(arrayListOf)
|
rv_brand.adapter = brandAdapter
|
brandAdapter?.setOnItemClickListener { view, position ->
|
brandId = if (brands[position].id == 0) null else brands[position].id
|
tv_search1.text = brands[position].name
|
refresh()
|
closeFilter()
|
}
|
}
|
}
|
|
private fun getProvince(provinceId:Int = 0) {
|
HttpManager.queryRegions(provinceId).request(this, false) { _, data ->
|
if (provinceId != 0) {
|
cities.addAll(data?: emptyList())
|
cityStrings.clear()
|
cityStrings.addAll(cities.map { it.name })
|
cityAdapter.notifyDataSetChanged()
|
} else {
|
provinces.add(City(name = "全国"))
|
provinces.addAll(data ?: arrayListOf())
|
val arrayListOf = arrayListOf<String>()
|
arrayListOf.addAll(provinces.map { it.name })
|
provinceAdapter = FilterStringAdapter(arrayListOf)
|
provinceAdapter!!.setOnItemClickListener { view, position ->
|
provinceAdapter!!.checked = position
|
provinceAdapter!!.notifyDataSetChanged()
|
cityAdapter.checked = 0
|
cities.clear()
|
cities.add(City(name="不限"))
|
cityCode = null
|
provinceCode = if (position == 0){
|
cityAdapter.notifyDataSetChanged()
|
null
|
} else{
|
getProvince(provinces[position].id)
|
provinces[position].code
|
}
|
}
|
rv_province.adapter = provinceAdapter
|
}
|
}
|
}
|
|
|
private fun closeFilter() {
|
bg_shadow.gone()
|
rv_brand.gone()
|
ll_type.gone()
|
ll_region.gone()
|
ll_more_rent.gone()
|
tv_search1.isSelected = false
|
tv_search2.isSelected = false
|
tv_search_region.isSelected = false
|
tv_search4.isSelected = false
|
}
|
|
private fun refresh(){
|
swipeRefreshLayout.isRefreshing = true
|
page = 1
|
getData()
|
}
|
}
|