lmw
2024-10-23 2f204867ad034d3a95ba9acc112d6507f296447b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package com.sinata.xqmuse.ui.home
 
import androidx.core.os.bundleOf
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.utils.SPUtils
import cn.sinata.xldutils.utils.showAllowingStateLoss
import com.sinata.xqmuse.R
import com.sinata.xqmuse.dialog.CommentDialog
import com.sinata.xqmuse.dialog.ShareDialog
import com.sinata.xqmuse.dialog.TimeSettingDialog
import com.sinata.xqmuse.dialog.VolumeDialog
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.entity.VoiceDetail
import com.sinata.xqmuse.network.request
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
import com.sinata.xqmuse.utils.AudioUtils
import com.sinata.xqmuse.utils.Const
import com.sinata.xqmuse.utils.interfaces.StringCallback
import kotlinx.android.synthetic.main.activity_voice_detail.*
import org.jetbrains.anko.toast
 
class VoiceDetailActivity:TransparentStatusBarActivity() {
    override fun setContentView() = R.layout.activity_voice_detail
 
    private val id by lazy { intent.getStringExtra("id")?:"" }
    private var voiceDetail:VoiceDetail? = null
    private val player by lazy {
        AudioUtils()
    }
    private var index = 0
    private var isRecycle = true //true列表循环播放
 
    override fun initClick() {
        iv_back.setOnClickListener { finish() }
        iv_collect.setOnClickListener {
            collect()
        }
 
        iv_play.setOnClickListener {
            if (voiceDetail!=null)
                player.startPlayMusic(this,voiceDetail?.meditationMusicList!![index])
        }
 
        iv_share.setOnClickListener {
            val shareDialog = ShareDialog()
            shareDialog.callback = object :StringCallback{
                override fun onResult(rst: String) {
                    if (rst == "wx"){
                        toast("微信分享")
                    }else{
                        toast("朋友圈分享")
                    }
                }
            }
            shareDialog.showAllowingStateLoss(supportFragmentManager,"share")
        }
 
        iv_time.setOnClickListener {
            val timeSettingDialog = TimeSettingDialog()
            timeSettingDialog.callback = object :StringCallback{
                override fun onResult(rst: String) {
                    toast("设置倒计时$rst")
                }
            }
            timeSettingDialog.showAllowingStateLoss(supportFragmentManager,"time")
        }
 
        iv_recycle.setOnClickListener {
            isRecycle = !isRecycle
            iv_recycle.setImageResource(if (isRecycle) R.mipmap.ic_recycle else R.mipmap.danquxunhuan)
            toast(if (isRecycle) "当前播放模式已设置为顺序播放" else "当前播放模式已设置为单曲循环")
        }
        tv_comment.setOnClickListener {
            val commentDialog = CommentDialog()
            commentDialog.arguments = bundleOf("id" to id)
            commentDialog.showAllowingStateLoss(supportFragmentManager,"comment")
        }
        iv_volume.setOnClickListener {
            val volumeDialog = VolumeDialog()
            volumeDialog.showAllowingStateLoss(supportFragmentManager,"vol")
        }
    }
 
    override fun initView() {
        titleBar.gone()
        isRecycle = SPUtils.instance().getBoolean(Const.User.IS_RECYCLE,true)
        getDetail()
    }
 
    private fun getDetail() {
        HttpManager.getMeditationDetails(id).request(this){_,data->
            this.voiceDetail = data
            data?.apply {
                iv_collect.setImageResource(if (favorite == 1) R.mipmap.collected else R.mipmap.uncollect)
                iv_bg.setImageURI(backgroundUrl)
                tv_name.text = meditationTitle
                tv_subtitle.text = detailDescription
                tv_comment.text = questionCount
            }
        }
    }
 
    private fun collect(){
        HttpManager.favorite(id).request(this){_,data->
            voiceDetail?.favorite = if (voiceDetail?.favorite == 1) 2 else 1
            iv_collect.setImageResource(if (voiceDetail?.favorite == 1) R.mipmap.collected else R.mipmap.uncollect)
        }
    }
 
}