package com.yidianling.home.event

import android.content.Context
import android.content.Intent
import android.graphics.drawable.AnimationDrawable
import android.net.Uri
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.RecyclerView
import android.text.TextUtils
import android.view.View
import android.widget.ImageView
import android.widget.RelativeLayout
import com.alibaba.android.arouter.launcher.ARouter
import com.ydl.media.audio.AudioPlayer
import com.ydl.media.audio.model.Music
import com.ydl.media.view.PlayTypeEnum
import com.ydl.media.view.PlayerFloatHelper
import com.ydl.media.view.PlayerFloatView
import com.ydl.webview.H5Params
import com.ydl.webview.NewH5Activity
import com.yidianling.home.R
import com.yidianling.home.constract.IHomeContract
import com.yidianling.home.model.bean.*
import com.yidianling.home.ui.view.CouponDialog
import com.ydl.ydl_router.manager.YDLRouterManager
import com.ydl.ydl_router.manager.YDLRouterParams
import com.ydl.ydl_router.util.YDLRouterParamsUrls
import com.ydl.ydlcommon.base.BaseActivity
import com.ydl.ydlcommon.base.config.HttpConfig
import com.ydl.ydlcommon.bean.ShareData
import com.ydl.ydlcommon.data.PlatformRamImpl
import com.ydl.ydlcommon.modular.ModularServiceManager
import com.ydl.ydlcommon.router.IYDLRouterConstant
import com.ydl.ydlcommon.utils.remind.ToastHelper
import com.ydl.ydlcommon.view.dialog.CommonDialog
import com.yidianling.tests.api.service.ITestsApiService
import com.yidianling.user.api.service.IUserService
import org.json.JSONObject


/**
 * @author <a href="https://www.jianshu.com/u/c1e5310dd724">xujian</a>
 * @描述: 首页点击事件实现类
 * @Copyright Copyright (c) 2019
 * @Company 壹点灵
 * @date 2019/02/13
 */
class HomeImpl(context: Context, homeView: IHomeContract.View) : HomeBaseImpl(context, homeView), IHomeEvent {
    private var lastVoiceView: ImageView? = null
    private var floatViewClickListener: PlayerFloatView.FloatViewPlayListener? = null

    override fun clickEnsure(list: List<CouponBean>): CouponDialog.OnClickEnsureListener {
        return object : CouponDialog.OnClickEnsureListener {
            override fun clickEnsure(status: Int) {
                //立即领取
                if (status == CouponDialog.STATUS_RECEIVER) {
                    mHomeView?.receiveCoupon(list)
                }
                //查看我的卡券
                if (status == CouponDialog.STATUS_GET) {
                    ARouter.getInstance().build(IYDLRouterConstant.ROUTER_MINE_REDPACKET)
                            .withString("is_from_main", "1")
                            .navigation()
                }
            }
        }
    }

    override fun confidePlayClick(voiceView: ImageView, bean: HomeConfideBean.BodyBean) {
        val music = Music()
        music.title = bean.confidedName
        music.coverPath = bean.confidedIcon
        AudioPlayer.get().singlePlay(music, false)
        PlayerFloatHelper.playingType = PlayTypeEnum.PLAY_TYPE_CONFIDE

        if (PlayerFloatHelper.isShow(mContext!!)) {
            if (PlayerFloatHelper.playingType == PlayTypeEnum.PLAY_TYPE_CONFIDE) {
                PlayerFloatHelper.removeView(mContext!!)

                PlayerFloatHelper.show(mContext!!)
            } else {
                PlayerFloatHelper.setPlayingState(mContext!!)
            }
        } else {
            mContext?.let { PlayerFloatHelper.show(it) }
        }
        stopPlayAnim()

        var animationDrawable = voiceView?.getDrawable() as AnimationDrawable
        animationDrawable.start()
        lastVoiceView = voiceView

        if (floatViewClickListener == null) {
            floatViewClickListener = object : PlayerFloatView.FloatViewPlayListener {
                override fun onStartClick() {
                    startPlayAnim()
                }

                override fun onPlayFinish() {
                    stopPlayAnim()

                    if (PlayerFloatHelper.isShow(mContext!!)) {
                        PlayerFloatHelper.removeView(mContext!!)
                        AudioPlayer.get().stopPlayer()
                    }
                }

                override fun onPauseClick() {
                    stopPlayAnim()
                }

            }

            PlayerFloatHelper.addClickListener(floatViewClickListener as PlayerFloatView.FloatViewPlayListener)
        }
    }

    private fun stopPlayAnim() {
        if (lastVoiceView != null) {
            var animationDrawable = lastVoiceView?.getDrawable() as AnimationDrawable
            animationDrawable.stop()
            animationDrawable.selectDrawable(3);
        }
    }

    private fun startPlayAnim() {
        if (lastVoiceView != null) {
            var animationDrawable = lastVoiceView?.getDrawable() as AnimationDrawable
            animationDrawable.start()
        }
    }

}