package com.yidianling.user.mine import android.app.Activity import android.content.Intent import android.os.Build import android.text.SpannableStringBuilder import android.text.Spanned import android.text.TextUtils import android.text.method.LinkMovementMethod import android.text.style.ClickableSpan import android.text.style.ForegroundColorSpan import android.view.View import android.widget.LinearLayout import com.alibaba.android.arouter.facade.annotation.Route import com.ydl.webview.H5Params import com.ydl.webview.NewH5Activity import com.ydl.ydl_image.module.GlideApp import com.ydl.ydlcommon.base.BaseActivity import com.ydl.ydlcommon.base.config.HttpConfig import com.ydl.ydlcommon.data.http.GsonProvider import com.ydl.ydlcommon.utils.StatusBarUtils import com.yidianling.common.tools.RxImageTool import com.yidianling.router.app.ReceiveRedPacketParam import com.yidianling.user.R import kotlinx.android.synthetic.main.activity_receive_redpacket.* /** * Created by wi1ls on 2017/1/11. * 此界面可以用ViewStub优化 */ @Route(path = "/user/receiveRedPacket") class ReceiveRedPacketActivity : BaseActivity(),View.OnClickListener { /* internal var status: Int = 0 internal var money: String? = null internal var name: String? = null internal var headUrl: String? = null internal var expertUrl: String? = null internal var expertName: String? = null internal var expertTime: String? = null*/ private lateinit var param: ReceiveRedPacketParam companion object { private const val PARAM = "param" private const val PARAMSTR = "paramStr" /* private const val STATUS = "status" private const val MONEY = "money" private const val NAME = "name" private const val HEAD_URL = "head_url" private const val EXPERT_URL = "expert_url" private const val EXPERT_NAME = "expert_name" private const val EXPERT_TIME = "expert_time"*/ fun newIntent(activity: Activity, param: ReceiveRedPacketParam): Intent { val intent = Intent(activity, ReceiveRedPacketActivity::class.java) intent.putExtra(PARAM, param) return intent } } internal fun init() { GlideApp.with(mContext).load(param.headUrl).into(receive_head!!) title_bar!!.setDivideBg(-0x2ca8b4) when (param.status) { 2//未领取 -> { if (TextUtils.isEmpty(param.name)){ receive_name!!.visibility = View.GONE } receive_name!!.text = param.name + " 的红包" receive_introduce!!.visibility = View.VISIBLE receive_unreceived!!.visibility = View.VISIBLE receive_unreceived!!.text = "红包金额" + param.money + "元,等待对方领取" } 3//已经领取 -> { if (TextUtils.isEmpty(param.name)){ receive_name!!.visibility = View.GONE } receive_name!!.text = param.name + " 的红包" receive_received!!.visibility = View.VISIBLE receive_money!!.text = "一个红包金额" + param.money + "元" GlideApp.with(mContext).load(param.expertUrl).into(expert_header) expert_name!!.text = param.expertName expert_time!!.text = param.expertTime expert_money!!.text = param.money + "元" } 4//超时 -> { receive_name!!.text = "已超时(过期)" receive_name_!!.visibility = View.VISIBLE receive_name_!!.text = "金额" + param.money val st = "已退回账户余额,查看余额" val sub = "查看余额" val ssb = SpannableStringBuilder(st) val index = st.indexOf(sub) val clickableSpan = object : ClickableSpan() { override fun onClick(widget: View) { //进入账户历史金额 startActivity(Intent(mContext, AccountHistoryActivity::class.java)) } } val foregroundColorSpan = ForegroundColorSpan(-0x9d8d75) ssb.setSpan(clickableSpan, index, index + sub.length, Spanned.SPAN_EXCLUSIVE_INCLUSIVE) ssb.setSpan(foregroundColorSpan, index, index + sub.length, Spanned.SPAN_EXCLUSIVE_INCLUSIVE) receive_mind!!.text = ssb receive_mind!!.movementMethod = LinkMovementMethod.getInstance() } } } override fun onClick(view: View) { when (view.id) { R.id.receive_view -> { //进入红包历史H5 val h5Params = H5Params(HttpConfig.H5_URL+ "consult/bonus", null) NewH5Activity.start(mContext, h5Params) } } } override fun layoutResId(): Int { return R.layout.activity_receive_redpacket } /** * 初始化状态栏位置 */ private fun initStatus() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//4.4以下不支持状态栏变色 StatusBarUtils.setTransparentForImageView(this, null) val statusBarHeight = StatusBarUtils.getStatusBarHeight(this) val lp1 = title_bar.layoutParams as LinearLayout.LayoutParams lp1.height = (RxImageTool.dp2px(45f) + statusBarHeight) title_bar.setPadding(0, statusBarHeight, 0, 0) } } override fun initDataAndEvent() { initStatus() if (intent.hasExtra(PARAM)) { param = intent.getParcelableExtra(PARAM) } if (intent.hasExtra(PARAMSTR)) { val str = intent.getStringExtra(PARAMSTR) param = GsonProvider.getGson().fromJson<ReceiveRedPacketParam>(str,ReceiveRedPacketParam::class.java) } receive_view?.setOnClickListener(this) /* var bundle = intent.getBundleExtra("bundle") status = bundle.getInt("status", 0) money = bundle.getString("money") name = bundle.getString("name") headUrl = bundle.getString("headUrl") expertUrl = bundle.getString("expertUrl") expertName = bundle.getString("expertName") expertTime = bundle.getString("expertTime")*/ init() } }