lmw
2023-06-07 f9dd2cdac746d308d5c4bcfdbea389ab67a66b12
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
107
108
package com.kuanzhai.user.ui.menu
 
import android.webkit.WebChromeClient
import android.webkit.WebSettings
import android.webkit.WebViewClient
import androidx.recyclerview.widget.LinearLayoutManager
import cn.sinata.xldutils.callPhone
import cn.sinata.xldutils.clickDelay
import cn.sinata.xldutils.fragment.BaseFragment
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.kuanzhai.user.R
import com.kuanzhai.user.network.HttpManager
import com.kuanzhai.user.network.requestByF
import com.kuanzhai.user.ui.menu.adapter.LinearImageAdapter
import com.luck.picture.lib.PictureVideoPlayActivity
import kotlinx.android.synthetic.main.fragment_car_info.*
import org.jetbrains.anko.support.v4.runOnUiThread
import org.jetbrains.anko.support.v4.startActivity
 
class CarInfoFragment : BaseFragment() {
    override fun contentViewId() = R.layout.fragment_car_info
 
    private val describeImgs = arrayListOf<String>()
    private val imgAdapter = LinearImageAdapter(describeImgs)
 
    override fun onFirstVisibleToUser() {
        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() {}
        rv_img.layoutManager = LinearLayoutManager(requireContext())
        rv_img.adapter = imgAdapter
        getH5()
        tv_more_info.clickDelay {
            startActivity<CarInfoActivity>("order" to (activity as CarDetailActivity).order)
        }
    }
 
    fun refreshUi(){
        (activity as CarDetailActivity).order?.apply {
            tv_title.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"||userType == 2) tv_verified.visible()
            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)
//                    if (isAdded&&!isDetached)
//                        runOnUiThread {
//                            iv_video.setImageBitmap(f)
//                        }
//                }.start()
            describeImgs.clear()
            describeImgs.addAll(describeImgUrl.split(",").filter { it.isNotEmpty() })
            imgAdapter.notifyDataSetChanged()
            tv_call.clickDelay {
                callPhone(contactsPhone)
            }
            iv_video.setOnClickListener {
                startActivity<PictureVideoPlayActivity>("videoPath" to (videoUrl?:""),"isExternalPreviewVideo" to true)
            }
        }
    }
 
    private fun getH5(){
        HttpManager.getH5(21).requestByF(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")
        }
    }
}