lmw
2024-05-27 c00669a852702e1aa1326872bb916f9a079b57e2
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
package com.future.driver.ui.main.add_order
 
import android.app.Activity
import android.content.Intent
import androidx.recyclerview.widget.LinearLayoutManager
import cn.sinata.xldutils.utils.clickDelay
import cn.sinata.xldutils.utils.setTextChange
import com.amap.api.services.help.Inputtips
import com.amap.api.services.help.Tip
 
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.ui.adapter.SearchSitedapter
import com.future.driver.ui.main.ChooseCityActivity
import com.future.driver.utils.Cache.CacheKey
import kotlinx.android.synthetic.main.activity_search_site.*
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.startActivityForResult
 
/**
 * @ClassName SearchSiteActivity
 * @Description 搜索地点
 * @Author Administrator
 * @Date 2020/10/9 10:09
 * @Version 1.0
 */
class SearchSiteActivity: MyBaseActivity() {
 
    var currentCityName:String? = ""
 
    val siteSearchAdapter by lazy {
        SearchSitedapter()
    }
 
    val type by lazy {
        intent.getStringExtra("type") //1起点 2终点 3专车补全目的地
    }
 
    override fun setContentView() {
        setContentView(R.layout.activity_search_site)
    }
 
    override fun initView() {
        setTitleText(if (type == "3") "设置目的地" else "搜索地点")
        recycler_view_site.layoutManager = LinearLayoutManager(this)
        recycler_view_site.adapter = siteSearchAdapter
        siteSearchAdapter.data.addAll(CacheKey.getSiteList(type))
        siteSearchAdapter.notifyDataSetChanged()
 
        if (type == "3"){
            setTitleText("设置目的地")
            tv_city_name.setCompoundDrawablesRelativeWithIntrinsicBounds(0,0,R.mipmap.icon_arrow_open_black,0)
            tv_city_name.setOnClickListener {
                startActivityForResult<ChooseCityActivity>(1,"currentCityName" to currentCityName)
            }
        }
    }
 
    override fun setOnclick() {
        currentCityName = intent.getStringExtra("currentCityName")
        tv_city_name.text = currentCityName
 
        tv_search.setTextChange {
            if (it.isNotEmpty()){
                AMapKit.searchSite(this,it,currentCityName!!,object : Inputtips.InputtipsListener {
                    override fun onGetInputtips(p0: MutableList<Tip>?, p1: Int) {
                        if (!p0.isNullOrEmpty()){
                            siteSearchAdapter.data.clear()
                            siteSearchAdapter.data.addAll(siteSearchAdapter.setDateSite(p0))
                            siteSearchAdapter.notifyDataSetChanged()
                        }
                    }
 
                })
            }
        }
 
        siteSearchAdapter.setOnItemClickListener { view, position ->
            CacheKey.saveSiteList(siteSearchAdapter.data[position],type)
            EventBus.getDefault().post(BaseEvent(BaseEvent.SELECT_SEARCH_SITE,siteSearchAdapter.data[position].lat.toString()
                ,siteSearchAdapter.data[position].lng.toString(),siteSearchAdapter.data[position].site+","+siteSearchAdapter.data[position].siteDetail))
            finish()
        }
 
        tv_cancel.clickDelay {
            onBackPressed()
        }
 
        tv_clear.clickDelay {
            CacheKey.putKeyStr("searchSite","")
            siteSearchAdapter.data.clear()
            siteSearchAdapter.notifyDataSetChanged()
        }
 
    }
 
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == Activity.RESULT_OK&&data!=null) {
            currentCityName = data.getStringExtra("name")
            tv_city_name.text = currentCityName
        }
    }
}