package com.sinata.xqmuse.ui.discovery
|
|
import android.view.inputmethod.EditorInfo
|
import androidx.recyclerview.widget.GridLayoutManager
|
import com.sinata.xqmuse.XQApplication
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.network.HttpManager
|
import com.sinata.xqmuse.network.entity.Place
|
import com.sinata.xqmuse.network.request
|
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
|
import com.sinata.xqmuse.ui.discovery.adapter.PlaceAdapter
|
import kotlinx.android.synthetic.main.activity_search_place.*
|
import org.jetbrains.anko.startActivity
|
|
class SearchPlaceActivity : TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_search_place
|
|
private val list = arrayListOf<Place>()
|
private val adapter = PlaceAdapter(list)
|
private var page = 1
|
var search: String? = null //搜索
|
|
override fun initClick() {
|
tv_cancel.setOnClickListener { finish() }
|
et_search.setOnEditorActionListener { v, actionId, event ->
|
if (actionId == EditorInfo.IME_ACTION_SEARCH){
|
val s = et_search.text.toString()
|
search = if (s.isNullOrEmpty()) null else s
|
hideInputMethod()
|
refreshLayout.autoRefresh()
|
}
|
return@setOnEditorActionListener false
|
}
|
}
|
|
override fun initView() {
|
rv_result.layoutManager = GridLayoutManager(this,2)
|
rv_result.adapter = adapter
|
adapter.setOnItemClickListener { view, position ->
|
startActivity<PlaceDetailActivity>("id" to list[position].id)
|
}
|
refreshLayout.setOnRefreshListener {
|
val s = et_search.text.toString()
|
search = if (s.isNullOrEmpty()) null else s
|
page = 1
|
getData()
|
}
|
refreshLayout.setOnLoadMoreListener {
|
page++
|
getData()
|
}
|
}
|
|
private fun getData(){
|
HttpManager.getMeditationPage(page,search, XQApplication.lat, XQApplication.lon).request(this,success = { _, data->
|
if (page == 1)
|
list.clear()
|
list.addAll(data?.list?: arrayListOf())
|
adapter.notifyDataSetChanged()
|
if (list.isEmpty())
|
refreshLayout.finishRefreshWithNoMoreData()
|
else if (data?.list?.isNullOrEmpty() == true)
|
refreshLayout.finishLoadMoreWithNoMoreData()
|
else if (page == 1)
|
refreshLayout.finishRefresh()
|
else
|
refreshLayout.finishLoadMore()
|
}){_,_->
|
if (page == 1)
|
refreshLayout.finishRefresh(false)
|
else
|
refreshLayout.finishLoadMore(false)
|
}
|
}
|
|
}
|