lmw
2025-03-03 08a196e60ed714263d5283f3c0579bb2dcf56e02
app/src/main/java/com/sinata/xqmuse/MainActivity.kt
@@ -8,6 +8,7 @@
import android.provider.Settings
import android.util.Log
import android.view.View
import android.view.WindowManager
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentPagerAdapter
import cn.sinata.xldutils.gone
@@ -57,7 +58,7 @@
    private var thinkHandler:Handler? = null //冥想时间相关
    private var inGuide = false //true 引导中...
    private val isFirst by lazy { intent.getBooleanExtra("isFirst",false) } //首次安装,需要到导师引导页
    private val isFirst by lazy { intent.getBooleanExtra("isFirst", false) } //首次安装,需要到导师引导页
    private val MSG_PROGRESS = 0//疗愈进度+1
    private val MSG_TODAY = 1//今日疗愈更新计时
@@ -72,14 +73,14 @@
    override fun initClick() {
        player_close.setOnClickListener {
            TipDialog.show(supportFragmentManager,"是否关闭当前音频?",object :TipDialog.OnClickCallback{
            TipDialog.show(supportFragmentManager, "是否关闭当前音频?", object : TipDialog.OnClickCallback {
                override fun onOk() {
                    EventBus.getDefault().post(EmptyEvent(Const.EventCode.FINISH_THINK))
                }
                override fun onCancel() {
                }
            },"确认","取消")
            }, "确认", "取消")
        }
        cl_player.setOnClickListener {
@@ -121,24 +122,24 @@
            override fun handleMessage(msg: Message) {
                super.handleMessage(msg)
                when(msg.what){
                    MSG_PROGRESS->{
                        currentPosition = thinkBgPlayer?.currentPosition ?:0
                    MSG_PROGRESS -> {
                        currentPosition = thinkBgPlayer?.currentPosition ?: 0
                        EventBus.getDefault().post(EmptyEvent(Const.EventCode.GOT_THINK_POSITION))
                        sendEmptyMessageDelayed(MSG_PROGRESS,1000)
                        sendEmptyMessageDelayed(MSG_PROGRESS, 1000)
                    }
                    MSG_COUNTDOWN->{
                        if (System.currentTimeMillis()>= finishTime)
                    MSG_COUNTDOWN -> {
                        if (System.currentTimeMillis() >= finishTime)
                            EventBus.getDefault().post(EmptyEvent(Const.EventCode.FINISH_THINK))
                        else
                            sendEmptyMessageDelayed(MSG_COUNTDOWN,1000)
                            sendEmptyMessageDelayed(MSG_COUNTDOWN, 1000)
                    }
                    MSG_TODAY->{
                    MSG_TODAY -> {
                        if (System.currentTimeMillis() - lastTodayTime > 60000) { //距离上次刷新过去了1分钟
                            Log.e(Const.Tag,"已经过1分钟,需要重新获取今日疗愈数据")
                            Log.e(Const.Tag, "已经过1分钟,需要重新获取今日疗愈数据")
                            lastTodayTime = System.currentTimeMillis()
                            (fragments[0] as HomeFragment).getToday()
                        }
                        sendEmptyMessageDelayed(MSG_TODAY,5000)
                        sendEmptyMessageDelayed(MSG_TODAY, 5000)
                    }
                }
            }
@@ -151,29 +152,29 @@
        if (guidePlayer == null)
            guidePlayer = AudioUtils()
        if (guideAudio.isNullOrEmpty())
            HttpManager.getPlan().request(this){_,data->
            HttpManager.getPlan().request(this){ _, data->
                guideAudio = data
                if (inGuide){
                    guidePlayer?.setVolume(0.6f)
                    guidePlayer?.loopPlayMusic(this,data)
                    guidePlayer?.loopPlayMusic(this, data)
                }
            }
        else{
            guidePlayer?.setVolume(0.6f)
            guidePlayer?.loopPlayMusic(this,guideAudio)
            guidePlayer?.loopPlayMusic(this, guideAudio)
        }
    }
    private fun startBgm() {
        HttpManager.getHomeBackgroundMusicByUserId().request(this){_,data->
        HttpManager.getHomeBackgroundMusicByUserId().request(this){ _, data->
            if (!data?.audioFile.isNullOrEmpty()){
                if (bgPlayer == null)
                    bgPlayer = AudioUtils()
                val volume = SPUtils.instance().getInt(Const.User.VOLUME,50)
                bgPlayer?.setVolume(volume.toFloat()/100)
                bgPlayer?.loopPlayMusic(this,data?.audioFile)
                val volume = SPUtils.instance().getInt(Const.User.VOLUME, 50)
                bgPlayer?.setVolume(volume.toFloat() / 100)
                bgPlayer?.loopPlayMusic(this, data?.audioFile)
            }
            (fragments[0] as HomeFragment).changeBg(data?.imageUrl?:"",data?.backUrl?:"")
            (fragments[0] as HomeFragment).changeBg(data?.imageUrl ?: "", data?.backUrl ?: "")
        }
    }
@@ -188,8 +189,8 @@
                thinkBgPlayer = AudioUtils()
                thinkBgPlayer!!.setOnAudioStatusUpdateListener(this)
            }
            val volume = SPUtils.instance().getInt(Const.User.VOLUME_THINK,50)
            thinkBgPlayer?.setVolume(volume.toFloat()/100)
            val volume = SPUtils.instance().getInt(Const.User.VOLUME_THINK, 50)
            thinkBgPlayer?.setVolume(volume.toFloat() / 100)
            thinkBgPlayer?.startPlayMusic(this, voice?.meditationMusicList?.get(index))
            currentDuration = voice?.meditationSecondList?.get(index)?:0
            EventBus.getDefault().post(EmptyEvent(Const.EventCode.GOT_THINK_DURATION))
@@ -233,10 +234,10 @@
            return
        val time = ((System.currentTimeMillis() - startTime) / 1000).toInt()
        startTime = 0L
        HttpManager.saveViewingHistory(voice?.id?:"", time).request(this,false,{ _, _->
            Log.e(Const.Tag,"冥想记录成功:$time 秒")
        }){_,_->
            Log.e(Const.Tag,"冥想记录失败:$time 秒")
        HttpManager.saveViewingHistory(voice?.id ?: "", time).request(this, false, { _, _ ->
            Log.e(Const.Tag, "冥想记录成功:$time 秒")
        }){ _, _->
            Log.e(Const.Tag, "冥想记录失败:$time 秒")
        }
    }
@@ -248,7 +249,7 @@
    }
    private fun initTab() {
        val titles = arrayListOf("疗愈","课程","","疗愈馆","我的")
        val titles = arrayListOf("疗愈", "课程", "", "疗愈馆", "我的")
        val iconChecked = arrayListOf(
            R.mipmap.home_selected,
            R.mipmap.play_selected,
@@ -269,7 +270,7 @@
        fragments.add(DiscoveryFragment())
        fragments.add(MineFragment())
        view_pager.offscreenPageLimit = fragments.size
        view_pager.adapter = object : FragmentPagerAdapter(supportFragmentManager,0) {
        view_pager.adapter = object : FragmentPagerAdapter(supportFragmentManager, 0) {
            override fun getItem(p0: Int): Fragment {
                return fragments[p0]
            }
@@ -327,7 +328,7 @@
    }
    @Subscribe
    fun onEvent(e:EmptyEvent){
    fun onEvent(e: EmptyEvent){
        if (e.code == Const.EventCode.CHANGE_USER){
            tab_bar.currentTab = 0
            onTabSelect(0)
@@ -359,8 +360,8 @@
        }else if(e.code == Const.EventCode.PAUSE_OR_RESUME_THINK){
            player_play.callOnClick()
        }else if(e.code == Const.EventCode.CHANGE_THINK_VOLUME){
            val v = SPUtils.instance().getInt(Const.User.VOLUME_THINK,50)
            thinkBgPlayer?.setVolume(v.toFloat()/100)
            val v = SPUtils.instance().getInt(Const.User.VOLUME_THINK, 50)
            thinkBgPlayer?.setVolume(v.toFloat() / 100)
        }else if(e.code == Const.EventCode.START_GUIDE_AUDIO){
            inGuide = true
            startGuide()
@@ -382,7 +383,7 @@
    }
    @Subscribe
    fun onIntEvent(e:IntEvent){
    fun onIntEvent(e: IntEvent){
        if (e.code == Const.EventCode.THINK_SEEK_PROGRESS){
            thinkBgPlayer?.seekTo(e.i)
            player_play.callOnClick()
@@ -394,12 +395,15 @@
        val answer = SPUtils.instance().getString(Const.User.ANSWER)
        if (!answer.isNullOrEmpty()){ //已登录并且有答案
            val reqAnswer = Gson().fromJson(answer, ReqAnswer::class.java)
            reqAnswer?.device = Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID)
            HttpManager.saveUserAnswers(reqAnswer).request(this,false,success = { _, _->
                SPUtils.instance().put(Const.User.ANSWER,"").apply()
                Log.e(Const.Tag,"私人定制已保存")
            reqAnswer?.device = Settings.Secure.getString(
                contentResolver,
                Settings.Secure.ANDROID_ID
            )
            HttpManager.saveUserAnswers(reqAnswer).request(this, false, success = { _, _ ->
                SPUtils.instance().put(Const.User.ANSWER, "").apply()
                Log.e(Const.Tag, "私人定制已保存")
                (fragments[0] as HomeFragment).getPrivacy()
            }){_,_->
            }){ _, _->
            }
        }
    }