package com.sinata.xqmuse.ui.discovery
|
|
import android.webkit.WebChromeClient
|
import android.webkit.WebSettings
|
import android.webkit.WebViewClient
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.showAllowingStateLoss
|
import com.google.android.material.appbar.AppBarLayout
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.dialog.MapTypeDialog
|
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.BannerAdapter
|
import com.sinata.xqmuse.utils.AppBarStateChangeListener
|
import com.sinata.xqmuse.utils.ThirdPartyMapsGuide
|
import com.sinata.xqmuse.utils.interfaces.StringCallback
|
import com.youth.banner.indicator.CircleIndicator
|
import com.youth.banner.indicator.RectangleIndicator
|
import com.youth.banner.indicator.RoundLinesIndicator
|
import kotlinx.android.synthetic.main.activity_place_detail.*
|
import org.jetbrains.anko.backgroundColor
|
import org.jetbrains.anko.imageResource
|
import org.jetbrains.anko.textColorResource
|
|
class PlaceDetailActivity:TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_place_detail
|
|
private val id by lazy { intent.getStringExtra("id") }
|
private val bannerImg = arrayListOf<String>()
|
private val bannerAdapter by lazy {
|
BannerAdapter(bannerImg, this)
|
}
|
private var place:Place? = null
|
|
override fun initClick() {
|
iv_back.setOnClickListener { finish() }
|
tv_address.setOnClickListener {
|
val mapTypeDialog = MapTypeDialog()
|
mapTypeDialog.callback = object : StringCallback {
|
override fun onResult(rst: String) {
|
if(rst == "b"){
|
ThirdPartyMapsGuide.goToBaiduActivity(this@PlaceDetailActivity,place?.hallName,place!!.longitude,place!!.latitude)
|
}else if (rst == "a"){
|
ThirdPartyMapsGuide.goToGaoDeMap(this@PlaceDetailActivity,place?.hallName,place!!.longitude.toString(),place!!.latitude.toString())
|
}else{
|
ThirdPartyMapsGuide.goToTencentMap(this@PlaceDetailActivity,place?.hallName,place!!.longitude,place!!.latitude)
|
}
|
}
|
}
|
mapTypeDialog.showAllowingStateLoss(supportFragmentManager,"map")
|
}
|
}
|
|
override fun initView() {
|
titleBar.gone()
|
banner.adapter = bannerAdapter
|
banner.indicator = RectangleIndicator(this)
|
val settings = webView.settings
|
settings.javaScriptEnabled = true
|
settings.javaScriptCanOpenWindowsAutomatically = true
|
settings.defaultTextEncodingName = "utf-8"
|
settings.domStorageEnabled = true
|
settings.setSupportZoom(true)
|
// settings.textZoom = 200
|
settings.useWideViewPort = true
|
settings.loadWithOverviewMode = true
|
settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING
|
webView.webChromeClient = object : WebChromeClient() {}
|
webView.webViewClient = object : WebViewClient() {}
|
webView.backgroundColor = 0
|
appbar.addOnOffsetChangedListener(object : AppBarStateChangeListener() {
|
override fun onStateChanged(appBarLayout: AppBarLayout?, state: State?, ratio:Double) {
|
bg.alpha = if(ratio<0.2) 0f else ((ratio-0.2)/0.8).toFloat()
|
when (state) {
|
State.EXPANDED -> {
|
//展开状态
|
iv_back.imageResource = R.mipmap.icon_back_white
|
tvTitle.textColorResource = R.color.white
|
}
|
State.COLLAPSED -> {
|
//折叠状态
|
iv_back.imageResource = R.mipmap.back
|
tvTitle.textColorResource = R.color.textColor
|
}
|
}
|
}
|
})
|
getData()
|
}
|
|
private fun getData() {
|
HttpManager.getMeditationInfo(id?:"").request(this){_,data->
|
place = data
|
data?.apply {
|
bannerImg.clear()
|
bannerImg.addAll(detailBannerUrl.split(",").filter { !it.isNullOrEmpty() })
|
bannerAdapter.notifyDataSetChanged()
|
banner.currentItem = 1
|
tv_name.text = hallName
|
tv_phone.text = contactNumber
|
tv_address.text = address
|
tv_time.text = "营业时间:$businessHours"
|
val sHead =
|
"<html><head><meta name=\"viewport\" content=\"width=device-width, " + "initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes\" />" + "<style>img{max-width:100% !important;height:auto !important;}</style>" + "<style>body{max-width:100% !important;}</style>" + "</head><body>"
|
webView!!.loadDataWithBaseURL(
|
null,
|
sHead + briefIntroduction,
|
"text/html",
|
"utf-8",
|
null
|
)
|
}
|
}
|
}
|
|
}
|