package com.yidianling.user.mine

import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.text.TextUtils
import android.view.View
import android.widget.ImageView
import android.widget.RelativeLayout
import com.alibaba.android.arouter.facade.annotation.Route
import com.ydl.ydl_image.config.SimpleImageOpConfiger
import com.ydl.ydl_image.manager.YDLImageCacheManager
import com.ydl.ydlcommon.base.BaseActivity
import com.ydl.ydlcommon.bean.StatusBarOptions
import com.yidianling.common.tools.RxImageTool
import com.yidianling.common.tools.ToastUtil
import com.yidianling.user.R
import com.yidianling.user.mine.bean.FeedBackDetailBean
import com.yidianling.user.mine.data.AppDataManager
import com.yidianling.user.mine.view.FeedBackPointDrawable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
import kotlinx.android.synthetic.main.user_mine_activity_my_feed_back.*

/**
 * @author jiucheng
 * @描述:我的反馈
 * @Copyright Copyright (c) 2018
 * @Company 壹点灵
 * @date 2018/12/15
 */
@Route(path = "/mine/MyFeedBackActivity")
class MyFeedBackActivity : BaseActivity() {
    private var feedBackId: String? = null
    private var leftView: ImageView? = null
    private var rightView: ImageView? = null

    companion object {
        private const val INTENT_ID = "intent_id"
        fun start(activity: Context, id: String) {
            var intent = Intent(activity, MyFeedBackActivity::class.java)
            intent.putExtra(INTENT_ID, id)
            activity.startActivity(intent)
        }
    }

    override fun getStatusViewOptions(): StatusBarOptions {
        return StatusBarOptions(true, true)
    }
    override fun layoutResId(): Int {
        return R.layout.user_mine_activity_my_feed_back
    }

    override fun initDataAndEvent() {
        feedBackId = intent.getStringExtra(INTENT_ID)

        if (TextUtils.isEmpty(feedBackId)) {
            ToastUtil.toastShort("参数错误,请重试")
            return
        }

        tb_title.setOnRightTextClick { _, _ ->
            run {
                startActivity(FeedBackActivity.newIntent(this))
            }
        }

        leftView = ImageView(this)
        leftView!!.setImageDrawable(FeedBackPointDrawable(true))
        rl_root_view.addView(leftView)

        rightView = ImageView(this)
        rightView!!.setImageDrawable(FeedBackPointDrawable(false))
        rl_root_view.addView(rightView)

        rl_root_view.post {
            setImageView(leftView!!, rightView!!)
        }
        getData()
    }

    private fun setImageView(leftView: ImageView, rightView: ImageView) {
        var left = rl_content.left
        var top = iv_line.top
        var leftLayoutParams = RelativeLayout.LayoutParams(RxImageTool.dp2px(12f), RxImageTool.dp2px(12f))
        leftLayoutParams.topMargin = top + rl_content.top - RxImageTool.dp2px(6f)
        leftLayoutParams.leftMargin = left - RxImageTool.dp2px(6f)
        leftView.layoutParams = leftLayoutParams

        var rightLayoutParams = RelativeLayout.LayoutParams(RxImageTool.dp2px(12f), RxImageTool.dp2px(12f))
        rightLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT)
        rightLayoutParams.topMargin = top + rl_content.top - RxImageTool.dp2px(6f)
        rightLayoutParams.rightMargin = left - RxImageTool.dp2px(6f)
        rightView.layoutParams = rightLayoutParams
    }

    @SuppressLint("CheckResult")
    private fun getData() {
        showProgressDialog()
        AppDataManager.getHttp().getFeedBackDetail(feedBackId!!)
//                .compose(RxUtils.resultData())
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe({
                    dismissProgressDialog()
                    if (it.data != null) {
                        updateUi(it.data)
                    }
                }, {
                    dismissProgressDialog()
                    ToastUtil.toastShort(it.message)
                })
    }

    private fun updateUi(bean: FeedBackDetailBean) {
        tv_creat_time.text = bean.createTime
        tv_content.text = bean.content
        tv_name.text = bean.operator
        tv_finish_time.text = bean.finishTime
        tv_result.text = bean.processResult

        var option = SimpleImageOpConfiger()
        option.errorPic = R.drawable.platform_head_place_hold_pic
        option.loadingPic = R.drawable.platform_head_place_hold_pic
        option.transform = 0
        YDLImageCacheManager.showImage(this, "http://static.yidianling.com/mobile/images/avatar_girl_app.png", iv_head, option)
        if (!TextUtils.isEmpty(bean.image)) {
            iv_image.visibility = View.VISIBLE
            var imageOption = SimpleImageOpConfiger()
            imageOption.radius = RxImageTool.dp2px(5f)
            YDLImageCacheManager.showImage(this, bean.image, iv_image, imageOption)
        }
        rl_root_view.post {
            setImageView(leftView!!, rightView!!)
        }
    }
}