From b8d8f9b855fdd453d06d78d2565f091db208ec8e Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期二, 26 十一月 2024 19:30:59 +0800 Subject: [PATCH] 支付 --- app/src/main/java/com/sinata/xqmuse/MainActivity.kt | 76 +++++++++++++++++++++++++++++-------- 1 files changed, 59 insertions(+), 17 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..f9365a9 100644 --- a/app/src/main/java/com/sinata/xqmuse/MainActivity.kt +++ b/app/src/main/java/com/sinata/xqmuse/MainActivity.kt @@ -1,10 +1,13 @@ package com.sinata.xqmuse +import android.annotation.SuppressLint import android.content.Intent import android.os.Handler import android.os.Looper import android.os.Message +import android.provider.Settings 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 +33,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 +67,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 +101,7 @@ thinkHandler?.removeMessages(MSG_PROGRESS) saveThinkRecord() } + (fragments[0] as HomeFragment).refreshTodayPlayingState() } } @@ -106,7 +114,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 +217,7 @@ player_play.setImageResource(R.mipmap.player_pause) thinkHandler?.sendEmptyMessage(MSG_PROGRESS) startTime = System.currentTimeMillis() //记录开始冥想的时间 + (fragments[0] as HomeFragment).refreshTodayPlayingState() //对比当前音频是否是每日疗愈 } } @@ -220,20 +229,25 @@ 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() + } } /** * 保存冥想记录 */ private fun saveThinkRecord() { - if (voice == null||startTime == 0L) + if (voice == null||startTime == 0L||SPUtils.instance().getString(Const.User.TOKEN).isNullOrEmpty()) return val time = ((System.currentTimeMillis() - startTime) / 1000).toInt() startTime = 0L @@ -297,7 +311,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 +320,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,18 +357,19 @@ }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) }else if(e.code == Const.EventCode.APP_FOREGROUND){ - bgPlayer?.resume() + if (voice==null) + bgPlayer?.resume() }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,23 +388,35 @@ 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) + thinkHandler?.sendEmptyMessage(MSG_COUNTDOWN) } } + @Subscribe + fun onIntEvent(e:IntEvent){ + if (e.code == Const.EventCode.THINK_SEEK_PROGRESS){ + thinkBgPlayer?.seekTo(e.i) + player_play.callOnClick() + } + } + + @SuppressLint("HardwareIds") private fun checkAnswer() { val answer = SPUtils.instance().getString(Const.User.ANSWER) if (!answer.isNullOrEmpty()){ //已登录并且有答案 - HttpManager.saveUserAnswers(Gson().fromJson(answer, ReqAnswer::class.java)).request(this,false,success = { _, _-> + 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,"私人定制已保存") (fragments[0] as HomeFragment).getPrivacy() @@ -407,6 +443,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 +458,7 @@ override fun onDestroy() { super.onDestroy() - bgPlayer?.stopPlayMusic() + bgPlayer?.stopPlayMusic(false) EventBus.getDefault().unregister(this) } -- Gitblit v1.7.1