package com.kuanzhai.user.ui.menu
|
|
import android.app.Activity
|
import android.content.Intent
|
import android.view.View
|
import android.webkit.WebChromeClient
|
import android.webkit.WebSettings
|
import android.webkit.WebViewClient
|
import android.widget.TextView
|
import androidx.core.os.bundleOf
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import cn.sinata.xldutils.callPhone
|
import cn.sinata.xldutils.clickDelay
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.FileUtils
|
import cn.sinata.xldutils.utils.SpanBuilder
|
import cn.sinata.xldutils.utils.optString
|
import cn.sinata.xldutils.visible
|
import com.github.zackratos.ultimatebar.UltimateBar
|
import com.kuanzhai.user.R
|
import com.kuanzhai.user.dialog.TipDialog
|
import com.kuanzhai.user.network.HttpManager
|
import com.kuanzhai.user.network.entity.RentBean
|
import com.kuanzhai.user.network.entity.SaleBean
|
import com.kuanzhai.user.network.request
|
import com.kuanzhai.user.ui.TransparentStatusBarActivity
|
import com.kuanzhai.user.ui.menu.adapter.CarBannerAdapter
|
import com.kuanzhai.user.ui.menu.adapter.LinearImageAdapter
|
import com.luck.picture.lib.PictureVideoPlayActivity
|
import com.youth.banner.indicator.CircleIndicator
|
import com.youth.banner.listener.OnPageChangeListener
|
import kotlinx.android.synthetic.main.activity_sale_detail.*
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.startActivityForResult
|
|
class SaleDetailActivity:TransparentStatusBarActivity(), View.OnClickListener {
|
override fun setContentView() = R.layout.activity_sale_detail
|
|
private val id by lazy { intent.getLongExtra("id",0L) }
|
private var order:SaleBean? = null
|
private val bannerImgs = arrayListOf<String>()
|
private val describeImgs = arrayListOf<String>()
|
private val imgAdapter = LinearImageAdapter(describeImgs)
|
|
override fun initClick() {
|
iv_back.setOnClickListener { finish() }
|
iv_video.setOnClickListener {
|
startActivity<PictureVideoPlayActivity>("videoPath" to (order?.videoUrl?:""),"isExternalPreviewVideo" to true)
|
}
|
tv_left.setOnClickListener(this)
|
tv_right.setOnClickListener(this)
|
tv_more_info.clickDelay {
|
startActivity<CarInfoActivity>("order" to order)
|
}
|
}
|
|
override fun initView() {
|
titleBar.gone()
|
UltimateBar.with(this)
|
.statusDark(false)
|
.create().immersionBar() //沉浸状态栏
|
banner.indicator = CircleIndicator(this)
|
banner.addOnPageChangeListener(object :OnPageChangeListener{
|
override fun onPageScrolled(
|
position: Int,
|
positionOffset: Float,
|
positionOffsetPixels: Int
|
) {
|
|
}
|
|
override fun onPageSelected(position: Int) {
|
tv_banner.text = "${position+1}/${bannerImgs.size}"
|
}
|
|
override fun onPageScrollStateChanged(state: Int) {
|
}
|
})
|
rv_img.layoutManager = LinearLayoutManager(this)
|
rv_img.adapter = imgAdapter
|
getSaleDetail()
|
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() {}
|
getH5()
|
}
|
|
private fun getSaleDetail(){
|
HttpManager.getSellingCarDetail(id).request(this){_,data->
|
order = data
|
data?.apply {
|
bannerImgs.clear()
|
bannerImgs.addAll(imgUrl.split(",").filter { it.isNotEmpty() })
|
banner.adapter = CarBannerAdapter(bannerImgs)
|
tv_banner.text = "1/${bannerImgs.size}"
|
tv_type.text = if (userType == 3) "企业车辆" else "个人车辆"
|
tv_title_1.text = title
|
tv_trade_type.text = if (remainingOperationTime.isNullOrEmpty()) "非营运车辆" else "营运车辆"
|
tv_price.text = "%.2f万".format(transferPrice/10000)
|
tv_origin.text = (if (newCarPrice.isNullOrEmpty()||newCarPrice.toDouble() == 0.0) "" else "新车含税价格:${newCarPrice.toDouble()/10000}万/")+
|
if (includingTransferFee == 1) "包含过户费" else "不包含过户费"
|
val brand = "所属厂商\n${brandName}"
|
tv_brand.text = SpanBuilder(brand).size(4,brand.length,13).bold(4,brand.length).build()
|
val mile = "表显里程\n${mileage}万公里"
|
tv_mile.text = SpanBuilder(mile).size(4,mile.length,13).bold(4,mile.length).build()
|
val pai = "排量\n${displacement}"
|
tv_pai.text = SpanBuilder(pai).size(2,pai.length,13).bold(2,pai.length).build()
|
val change = "变速箱\n${transmissionCase}"
|
tv_change.text = SpanBuilder(change).size(3,change.length,13).bold(3,change.length).build()
|
val location = "牌照地\n${provinceName}"
|
tv_location.text = SpanBuilder(location).size(3,location.length,13).bold(3,location.length).build()
|
val count = "过户次数\n${transferTimes}"
|
tv_count.text = SpanBuilder(count).size(4,count.length,13).bold(4,count.length).build()
|
val level = "级别\n${level}"
|
tv_level.text = SpanBuilder(level).size(2,level.length,13).bold(2,level.length).build()
|
val time = "上牌时间\n${licensingTime}"
|
tv_time.text = SpanBuilder(time).size(4,time.length,13).bold(4,time.length).build()
|
tv_name.text = contactsName
|
if (isAuth == "2") tv_verified.visible()
|
iv_call.clickDelay {
|
callPhone(contactsPhone)
|
}
|
tv_address.text = "联系地址:${provinceName}${cityName}${addres}"
|
tv_describe.text = describe
|
if (videoUrl.isNullOrEmpty()){
|
iv_video.gone()
|
iv_play.gone()
|
}else
|
Thread{
|
val f = FileUtils.createVideoThumbnail(videoUrl)
|
runOnUiThread {
|
iv_video.setImageBitmap(f)
|
}
|
}.start()
|
describeImgs.clear()
|
describeImgs.addAll(describeImgUrl.split(",").filter { it.isNotEmpty() })
|
imgAdapter.notifyDataSetChanged()
|
tv_refused.text = authRemark
|
refreshButton()
|
}
|
}
|
}
|
|
private fun getH5(){
|
HttpManager.getH5(21).request(this){_,data->
|
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.loadData(sHead+(data?.optString("content")?:""), "text/html; charset=utf-8", "utf-8")
|
}
|
}
|
|
private fun refreshButton() {
|
tv_left.gone()
|
tv_right.gone()
|
tv_refused.gone()
|
when (order?.status) { //1=待审核,2=已上架,3=已下架,4=审核通过待上架,5=已拒绝
|
1 -> {
|
tv_left.visible()
|
tv_left.text = "审核中"
|
}
|
2 -> {
|
tv_right.visible()
|
tv_right.text = "下架"
|
}
|
3, 4 -> {
|
tv_left.visible()
|
tv_right.visible()
|
tv_left.text = "编辑"
|
tv_right.text = "上架"
|
}
|
5 -> {
|
tv_left.visible()
|
tv_left.text = "编辑"
|
tv_refused.visible()
|
}
|
}
|
}
|
|
override fun onClick(v: View) {
|
val action = (v as TextView).text.toString()
|
when(action){
|
// "审核中"->{ } //无事件
|
"编辑"->{
|
startActivityForResult<SaleMyCarActivity>(1,"data" to order)
|
}
|
else->{
|
val tipDialog = TipDialog()
|
tipDialog.arguments = bundleOf("msg" to "是否确认${action}?")
|
tipDialog.setCallback(object :TipDialog.OnClickCallback{
|
override fun onOk() {
|
val isUp = action == "上架"
|
HttpManager.operateMenuOrder(isUp,id,2).request(this@SaleDetailActivity){ _, _->
|
order?.status = if (isUp) 2 else 3
|
refreshButton()
|
setResult(Activity.RESULT_OK)
|
}
|
}
|
|
override fun onCancel() {
|
}
|
})
|
tipDialog.show(supportFragmentManager,"action")
|
}
|
}
|
}
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
super.onActivityResult(requestCode, resultCode, data)
|
if (resultCode == Activity.RESULT_OK){
|
setResult(Activity.RESULT_OK)
|
getSaleDetail()
|
}
|
}
|
}
|