From 610a2aedd505bb4d8fb29f0bc6741ced74218bb0 Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期二, 12 十一月 2024 13:46:37 +0800 Subject: [PATCH] fix bugs --- app/src/main/java/com/sinata/xqmuse/MainActivity.kt | 62 ++++++++++++++++++++++++------ 1 files changed, 49 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/sinata/xqmuse/MainActivity.kt b/app/src/main/java/com/sinata/xqmuse/MainActivity.kt index d32c6a6..1bd9cc8 100644 --- a/app/src/main/java/com/sinata/xqmuse/MainActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/MainActivity.kt @@ -5,6 +5,7 @@ import android.os.Looper import android.os.Message import android.util.Log +import android.view.View import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentPagerAdapter import cn.sinata.xldutils.gone @@ -30,6 +31,7 @@ import com.sinata.xqmuse.utils.AudioUtils import com.sinata.xqmuse.utils.Const import com.sinata.xqmuse.utils.event.EmptyEvent +import com.sinata.xqmuse.utils.event.IntEvent import kotlinx.android.synthetic.main.activity_main.* import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe @@ -63,6 +65,9 @@ private var startTime = 0L //开始疗愈的时间戳 + var hasTreeFirstShow = false //此字段用来判断 树苗的首次弹窗是否已经触发,和isFirst字段配合使用 + var isBGMChanged = false //此字段用来判断 在疗愈播放中,修改了背景音乐,在疗愈结束后 需要更新BGM音源 + override fun initClick() { player_close.setOnClickListener { TipDialog.show(supportFragmentManager,"是否关闭当前音频?",object :TipDialog.OnClickCallback{ @@ -94,6 +99,7 @@ thinkHandler?.removeMessages(MSG_PROGRESS) saveThinkRecord() } + (fragments[0] as HomeFragment).refreshTodayPlayingState() } } @@ -106,7 +112,7 @@ if (!intent.getStringExtra("code").isNullOrEmpty()){ startActivity<ShareActivity>("code" to intent.getStringExtra("code")) } - if (isFirst) //解决首次启动eventbus注册慢的问题 + if (isFirst) //解决首次安装启动eventbus注册慢的问题 startActivity<GuideActivity>() thinkHandler = object :Handler(Looper.myLooper()!!){ @@ -209,6 +215,7 @@ player_play.setImageResource(R.mipmap.player_pause) thinkHandler?.sendEmptyMessage(MSG_PROGRESS) startTime = System.currentTimeMillis() //记录开始冥想的时间 + (fragments[0] as HomeFragment).refreshTodayPlayingState() //对比当前音频是否是每日疗愈 } } @@ -220,13 +227,18 @@ voice = null index = 0 finishTime = 0L - thinkBgPlayer?.stopPlayMusic() - thinkPlayer?.stopPlayMusic() + thinkBgPlayer?.stopPlayMusic(true) + thinkPlayer?.stopPlayMusic(true) playing = false thinkHandler?.removeMessages(0) cl_player.gone() - if (JkApplication.isForeground) - bgPlayer?.resume() + (fragments[0] as HomeFragment).refreshTodayPlayingState() //对比当前音频是否是每日疗愈 + if (JkApplication.isForeground){ + if (isBGMChanged) //BGM已经被切换,重新播放新BGM + startBgm() + else //BGM未改变,直接续播 + bgPlayer?.resume() + } } /** @@ -297,7 +309,7 @@ } override fun onTabSelect(position: Int) { - if (position !=0 &&position !=3 && SPUtils.instance().getString(Const.User.TOKEN).isNullOrEmpty()){ + if (position == 4 && SPUtils.instance().getString(Const.User.TOKEN).isNullOrEmpty()){ toast("请先登录") startActivity<LoginActivity>() tab_bar.currentTab = 0 @@ -306,6 +318,15 @@ view_pager.currentItem = position if (position == 2){ (fragments[2] as TreeFragment).getTree() + if (cl_player.visibility == View.VISIBLE){ + cl_player.alpha = 0f + cl_player.gone() + } + }else{ + if (cl_player.alpha == 0f){ + cl_player.visible() + cl_player.alpha = 1f + } } if (position == 4){ (fragments[4] as MineFragment).queryUnread() @@ -334,9 +355,6 @@ }else if (e.code == Const.EventCode.SWITCH_COURSE){ tab_bar.currentTab = 1 onTabSelect(1) - }else if(e.code == Const.EventCode.SWITCH_DISCOVERY){ - tab_bar.currentTab = 2 - onTabSelect(2) }else if(e.code == Const.EventCode.CHANGE_EXPLORE){ tab_bar.currentTab = 3 onTabSelect(3) @@ -345,7 +363,10 @@ }else if(e.code == Const.EventCode.APP_BACKGROUND){ bgPlayer?.pause() }else if(e.code == Const.EventCode.CHANGE_BGM){ - startBgm() + if (voice == null) + startBgm() + else + isBGMChanged = true //正在播放疗愈,无法立即切换背景音乐 (fragments[0] as HomeFragment).changeBg() }else if(e.code == Const.EventCode.START_THINK){ startThink() @@ -364,16 +385,25 @@ thinkPlayer?.pause() }else if(e.code == Const.EventCode.FINISH_GUIDE_AUDIO){ inGuide = false - guidePlayer?.stopPlayMusic() - bgPlayer?.resume() + guidePlayer?.stopPlayMusic(false) if (voice!=null&& playing){ thinkBgPlayer?.resume() thinkPlayer?.resume() } + if (voice == null) + bgPlayer?.resume() }else if(e.code == Const.EventCode.REFRESH_PRIVATE){ //重新答题后,刷新私人定制 (fragments[0] as HomeFragment).getPrivacy() }else if(e.code == Const.EventCode.THINK_TIMER){ //开启倒计时 thinkHandler?.sendEmptyMessage(1) + } + } + + @Subscribe + fun onIntEvent(e:IntEvent){ + if (e.code == Const.EventCode.THINK_SEEK_PROGRESS){ + thinkBgPlayer?.seekTo(e.i) + player_play.callOnClick() } } @@ -407,6 +437,12 @@ } else if (view_pager.currentItem == 2){ (fragments[2] as TreeFragment).getTree() } + if (isFirst&&!hasTreeFirstShow&&!SPUtils.instance().getString(Const.User.ANSWER).isNullOrEmpty()){ //如果是第一次安装并且还没显示树苗打卡引导并且答完题了 就去树苗引导 + tab_bar.currentTab = 2 + onTabSelect(2) + (fragments[2] as TreeFragment).showFirst() + hasTreeFirstShow = true + } } override fun onPause() { @@ -416,7 +452,7 @@ override fun onDestroy() { super.onDestroy() - bgPlayer?.stopPlayMusic() + bgPlayer?.stopPlayMusic(false) EventBus.getDefault().unregister(this) } -- Gitblit v1.7.1