lmw
2024-10-23 2f204867ad034d3a95ba9acc112d6507f296447b
app/src/main/java/com/sinata/xqmuse/ui/BGMSettingActivity.kt
@@ -1,16 +1,89 @@
package com.sinata.xqmuse.ui
class BGMSettingActivity :TransparentStatusBarActivity(){
    override fun setContentView(): Int {
        TODO("Not yet implemented")
    }
import android.widget.SeekBar
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.utils.SPUtils
import com.sinata.xqmuse.R
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.entity.BGMBean
import com.sinata.xqmuse.network.request
import com.sinata.xqmuse.ui.home.adapter.BgmBannerAdapter
import com.sinata.xqmuse.utils.AudioUtils
import com.sinata.xqmuse.utils.Const
import kotlinx.android.synthetic.main.activity_bgm.*
import org.jetbrains.anko.toast
class BGMSettingActivity :TransparentStatusBarActivity(), AudioUtils.OnAudioStatusUpdateListener {
    override fun setContentView() = R.layout.activity_bgm
    private val list = arrayListOf<BGMBean>()
    private val cardBannerAdapter by lazy { BgmBannerAdapter(list,this) }
    private val player by lazy { AudioUtils() }
    override fun initClick() {
        TODO("Not yet implemented")
        iv_back.setOnClickListener { finish() }
        iv_silent.setOnClickListener {
            sb_voice.progress = 0
        }
        banner_landscape.setOnBannerListener { data, position ->
            cardBannerAdapter.playPosition = position
            cardBannerAdapter.notifyItemChanged(position)
            player.startPlayMusic(this,list[position].audioFile)
        }
        sb_voice.setOnSeekBarChangeListener(object :SeekBar.OnSeekBarChangeListener{
            override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
                player.setVolume(progress.toFloat()/100)
            }
            override fun onStartTrackingTouch(seekBar: SeekBar?) {
            }
            override fun onStopTrackingTouch(seekBar: SeekBar?) {
            }
        })
        tv_action.setOnClickListener {
            SPUtils.instance().put(Const.User.VOLUME,sb_voice.progress).put(Const.User.BGM,list[banner_landscape.currentItem].audioFile).apply()
            toast("保存成功")
            player.startPlayMusic(this,list[banner_landscape.currentItem].audioFile)
        }
    }
    override fun initView() {
        TODO("Not yet implemented")
        titleBar.gone()
        banner_landscape.adapter = cardBannerAdapter
        banner_landscape.setBannerGalleryEffect(110,12,0.85f)
        player.setOnAudioStatusUpdateListener(this)
        sb_voice.progress = SPUtils.instance().getInt(Const.User.VOLUME,50)
        getData()
    }
    private fun getData(){
        HttpManager.getHomeBackgroun().request(this){_,data->
            list.clear()
            list.addAll(data?: arrayListOf())
            val bgm = SPUtils.instance().getString(Const.User.BGM)
            val indexOf = list.map { it.audioFile }.indexOf(bgm)
            if (indexOf>=0){
                banner_landscape.currentItem = indexOf
            }
            cardBannerAdapter.notifyDataSetChanged()
        }
    }
    override fun onUpdate(db: Double, time: Long) {
    }
    override fun onStop(filePath: String?) {
    }
    override fun onStartPlay() {
    }
    override fun onFinishPlay() {
        val p = cardBannerAdapter.playPosition
        cardBannerAdapter.playPosition = -1
        cardBannerAdapter.notifyItemChanged(p)
    }
}