package com.dollearn.student.ui.course
|
|
import android.annotation.SuppressLint
|
import android.graphics.Paint
|
import android.view.View
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.*
|
import cn.sinata.xldutils.visible
|
import com.dollearn.student.R
|
import com.dollearn.student.WeparkApplication
|
import com.dollearn.student.dialog.MapTypeDialog
|
import com.dollearn.student.network.HttpManager
|
import com.dollearn.student.network.entity.Banner
|
import com.dollearn.student.network.entity.Course
|
import com.dollearn.student.network.request
|
import com.dollearn.student.ui.TransparentStatusBarActivity
|
import com.dollearn.student.ui.home.adapter.HomeBannerAdapter
|
import com.dollearn.student.utils.Const
|
import com.dollearn.student.utils.ThirdPartyMapsGuide
|
import com.dollearn.student.utils.event.EmptyEvent
|
import com.dollearn.student.utils.extention.clickDelay
|
import com.dollearn.student.utils.extention.loadLongImage
|
import com.dollearn.student.utils.interfaces.StringCallback
|
import kotlinx.android.synthetic.main.activity_course_deatil.*
|
import kotlinx.android.synthetic.main.dialog_pay.*
|
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.Subscribe
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.textColorResource
|
|
class CourseDetailActivity : TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_course_deatil
|
|
private val id by lazy { intent.getStringExtra("id")?:"" }
|
|
private var course: Course? = null
|
|
private val bannerImg = arrayListOf<Banner>()
|
private val bannerAdapter by lazy {
|
HomeBannerAdapter(bannerImg, this)
|
}
|
|
override fun initClick() {
|
tv_address.clickDelay {
|
course?.let {
|
if (it.lat.isNotEmpty()){
|
val mapTypeDialog = MapTypeDialog()
|
mapTypeDialog.callback = object : StringCallback {
|
override fun onResult(rst: String) {
|
if(rst == "b"){
|
ThirdPartyMapsGuide.goToBaiduActivity(this@CourseDetailActivity,it.storeName,it.lon.toDouble(),it.lat.toDouble())
|
}else if (rst == "a"){
|
ThirdPartyMapsGuide.goToGaoDeMap(this@CourseDetailActivity,it.storeName,it.lon,it.lat)
|
}else{
|
ThirdPartyMapsGuide.goToTencentMap(this@CourseDetailActivity,it.storeName,it.lon.toDouble(),it.lat.toDouble())
|
}
|
}
|
}
|
mapTypeDialog.showAllowingStateLoss(supportFragmentManager,"map")
|
}
|
|
}
|
}
|
tv_action.clickDelay {
|
if (course != null)
|
startActivity<JoinCourseActivity>("course" to course)
|
}
|
}
|
|
override fun initView() {
|
banner.adapter = bannerAdapter
|
getDetail()
|
EventBus.getDefault().register(this)
|
}
|
|
@Subscribe
|
fun onSwitch(e: EmptyEvent) {
|
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
EventBus.getDefault().unregister(this)
|
}
|
|
@SuppressLint("SetTextI18n")
|
private fun getDetail() {
|
HttpManager.queryCourseInfo(id, WeparkApplication.lat, WeparkApplication.lon)
|
.request(this) { _, data ->
|
course = data
|
data?.apply {
|
val tag = type?.let {
|
when (it) {
|
1 -> {
|
mll_class_yxq.gone()
|
"常规班"
|
}
|
2 -> {
|
//ll_bottom.gone()
|
mll_class_yxq.visible()
|
mtv_class_yxq.text = time
|
"假期班"
|
}
|
3 -> {
|
//ll_bottom.gone()
|
class_time.gone()
|
mll_class_yxq.visible()
|
mtv_class_yxq.text = "购买当天有效"
|
"体验班"
|
}
|
else -> ""
|
}
|
}
|
mtvtag.visibility = if (tag.isNullOrEmpty()) View.GONE else View.VISIBLE
|
mtvtag.text = tag
|
bannerImg.addAll(detailDrawing.split(",").map { Banner(url = it) })
|
bannerAdapter.notifyDataSetChanged()
|
banner.currentItem = 1
|
tv_name.text = name
|
tv_address.text = "${storeName}(${storeAddress})"
|
tv_distance.text = "距离我${distance}km"
|
tv_week.text = "毎${weeks.joinToString("、") { it }}"
|
times?.let {
|
tv_time.text = times.joinToString(" | ")
|
}
|
if (!introduceDrawing.isNullOrEmpty()) {
|
introduceDrawing.loadLongImage(this@CourseDetailActivity,iv_introduction)
|
}
|
list.firstOrNull()?.apply {
|
//1.是否有玩湃币价格 —— 独立判断
|
if (playPaiCoin == 0)
|
tv_coin_price.gone()
|
else
|
tv_coin_price.text = SpanBuilder("玩湃币:%d币".format(playPaiCoin))
|
.color(this@CourseDetailActivity, 0, 4, R.color.textColor)
|
.build()
|
//2.支付价 —— 独立判断
|
if (paymentPrice == 0.0||paymentPrice==null){ //没有支付价
|
tv_price.gone()
|
tv_vip_price.gone()
|
} else{ //有支付价,显示支付价,并判断是否有会员价或划线价
|
tv_price.text = "¥%s".format(paymentPrice.toString())
|
//3.会员价或划线价
|
if (paymentPrice <= vipPrice?:0.0){ //a.支付价==会员价,说明我是会员,展示划线价; b.支付价小于会员价,说明是折扣价,展示划线价
|
if (originalPrice?:0.0!=0.0&&originalPrice!=paymentPrice){ //有划线价且划线价不等于支付价,才显示划线价
|
tv_vip_price.text = "¥%s".format(originalPrice.toString())
|
tv_vip_price.textColorResource = R.color.textColor66
|
tv_vip_price.paintFlags = tv_vip_price.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
|
}else //否则啥也不展示
|
tv_vip_price.gone()
|
}else if (vipPrice?:0.0 != 0.0){
|
tv_vip_price.text =
|
SpanBuilder("会员价:¥%s".format(vipPrice.toString())).color(
|
this@CourseDetailActivity,
|
0,
|
4,
|
R.color.textColor
|
).build()
|
}else
|
tv_vip_price.gone()
|
}
|
}
|
}
|
}
|
}
|
|
}
|