package com.dollearn.student.ui.welfare
|
|
import android.app.Activity
|
import android.content.Intent
|
import android.graphics.Paint
|
import android.webkit.WebChromeClient
|
import android.webkit.WebViewClient
|
import androidx.core.os.bundleOf
|
import com.dollearn.student.R
|
import com.dollearn.student.dialog.TipDialog
|
import com.dollearn.student.network.HttpManager
|
import com.dollearn.student.network.entity.Banner
|
import com.dollearn.student.network.entity.GoodsDetail
|
import com.dollearn.student.network.request
|
import com.dollearn.student.ui.TransparentStatusBarActivity
|
import com.dollearn.student.ui.home.PayResultActivity
|
import com.dollearn.student.ui.shop.ExchangeActivity
|
import com.dollearn.student.ui.shop.adapter.ShopBannerAdapter
|
import com.dollearn.student.utils.pay.PayListener
|
import com.dollearn.student.utils.pay.PayUtil
|
import com.youth.banner.indicator.CircleIndicator
|
import kotlinx.android.synthetic.main.activity_goods_detail.*
|
import kotlinx.android.synthetic.main.activity_goods_detail.tv_score
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.startActivityForResult
|
|
class GoodsDetailActivity : TransparentStatusBarActivity(), PayListener {
|
override fun setContentView() = R.layout.activity_goods_detail
|
|
private val id by lazy { intent.getStringExtra("id")?:"" }
|
private var goods: GoodsDetail? = null
|
|
private var score = 0
|
|
private val bannerImg = arrayListOf<Banner>()
|
private val bannerAdapter by lazy {
|
ShopBannerAdapter(bannerImg, this)
|
}
|
|
override fun initClick() {
|
tv_action.setOnClickListener {
|
if (score<goods?.good?.integral?:0){
|
val tipDialog = TipDialog()
|
tipDialog.arguments = bundleOf("isAlert" to true,"msg" to "兑换失败,当前剩余积分不足!","ok" to "关闭")
|
tipDialog.show(supportFragmentManager,"tip")
|
return@setOnClickListener
|
}
|
tv_action.isEnabled = false
|
showDialog()
|
HttpManager.redeemNow(id).request(this,false, {_,data->
|
tv_action.isEnabled = true
|
startActivity<ExchangeActivity>("order" to data)
|
}){_,msg->
|
val tipDialog = TipDialog()
|
tipDialog.arguments = bundleOf("isAlert" to true,"msg" to msg,"ok" to "关闭")
|
tipDialog.show(supportFragmentManager,"tip")
|
tv_action.isEnabled = true
|
}
|
}
|
}
|
|
override fun initView() {
|
banner.adapter = bannerAdapter
|
banner.indicator = CircleIndicator(this)
|
val settings = webView.settings
|
settings.javaScriptEnabled = true
|
settings.javaScriptCanOpenWindowsAutomatically = true
|
settings.defaultTextEncodingName = "utf-8"
|
settings.domStorageEnabled = true
|
webView.webChromeClient = object : WebChromeClient() {}
|
webView.webViewClient = object : WebViewClient() {}
|
PayUtil.addPayListener(this)
|
getData()
|
getScore()
|
}
|
|
private fun getScore() {
|
HttpManager.getIntegralStudy().request(this){_,data->
|
score = data?:0
|
tv_balance.text = "剩余积分:$score"
|
}
|
}
|
|
private fun getData() {
|
HttpManager.goodDetail(id).request(this) { _, data ->
|
goods = data
|
goods?.apply {
|
tv_score.text = good.integral.toString()
|
bannerImg.addAll((good.detailImg.split(",")).map { Banner(url = it) })
|
bannerAdapter.notifyDataSetChanged()
|
banner.currentItem = 1
|
tv_price.text = good.integral.toString()
|
tv_value.text = "¥%.2f".format(good.price)
|
tv_value.paintFlags = tv_value.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
|
tv_name.text = good.name
|
tv_category.text = goodTypes?.joinToString ("|"){ it.name }
|
tv_sold.text = "%s%s%d人已换".format(if (residueNumber == null) "" else "剩余数量:${residueNumber}|",if (good.userCount == null) "" else "可换数量:${good.userCount}|", exchangeNumber)
|
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 + good.detail, "text/html", "utf-8", null)
|
}
|
}
|
}
|
|
override fun onPaySuccess() {
|
startActivityForResult<PayResultActivity>(1, "type" to PayResultActivity.TYPE_EXCHANGE_SUC)
|
}
|
|
override fun onPayCancel() {
|
}
|
|
override fun onPayError(msg: String) {
|
startActivityForResult<PayResultActivity>(
|
1,
|
"type" to PayResultActivity.TYPE_EXCHANGE_FAILED,
|
"msg" to msg
|
)
|
}
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
super.onActivityResult(requestCode, resultCode, data)
|
if (resultCode == Activity.RESULT_OK) {
|
tv_action.postDelayed({
|
}, 500)
|
}
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
PayUtil.removePayListener(this)
|
PayUtil.unregisterApp()
|
}
|
}
|