| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | |
| | | private var startTime = 0L //开始疗愈的时间戳 |
| | | |
| | | var hasTreeFirstShow = false //此字段用来判断 树苗的首次弹窗是否已经触发,和isFirst字段配合使用 |
| | | var isBGMChanged = false //此字段用来判断 在疗愈播放中,修改了背景音乐,在疗愈结束后 需要更新BGM音源 |
| | | |
| | | override fun initClick() { |
| | | player_close.setOnClickListener { |
| | | TipDialog.show(supportFragmentManager,"是否关闭当前音频?",object :TipDialog.OnClickCallback{ |
| | |
| | | thinkHandler?.removeMessages(MSG_PROGRESS) |
| | | saveThinkRecord() |
| | | } |
| | | (fragments[0] as HomeFragment).refreshTodayPlayingState() |
| | | } |
| | | } |
| | | |
| | |
| | | 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()!!){ |
| | |
| | | player_play.setImageResource(R.mipmap.player_pause) |
| | | thinkHandler?.sendEmptyMessage(MSG_PROGRESS) |
| | | startTime = System.currentTimeMillis() //记录开始冥想的时间 |
| | | (fragments[0] as HomeFragment).refreshTodayPlayingState() //对比当前音频是否是每日疗愈 |
| | | } |
| | | } |
| | | |
| | |
| | | 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) |
| | | (fragments[0] as HomeFragment).refreshTodayPlayingState() //对比当前音频是否是每日疗愈 |
| | | if (JkApplication.isForeground){ |
| | | if (isBGMChanged) //BGM已经被切换,重新播放新BGM |
| | | startBgm() |
| | | else //BGM未改变,直接续播 |
| | | bgPlayer?.resume() |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | 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 |
| | |
| | | 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() |
| | |
| | | }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_BACKGROUND){ |
| | | bgPlayer?.pause() |
| | | }else if(e.code == Const.EventCode.CHANGE_BGM){ |
| | | if (voice == null) |
| | | startBgm() |
| | | else |
| | | isBGMChanged = true //正在播放疗愈,无法立即切换背景音乐 |
| | | (fragments[0] as HomeFragment).changeBg() |
| | | }else if(e.code == Const.EventCode.START_THINK){ |
| | | startThink() |
| | |
| | | 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() |
| | | } |
| | | } |
| | | |
| | |
| | | } 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() { |
| | |
| | | |
| | | override fun onDestroy() { |
| | | super.onDestroy() |
| | | bgPlayer?.stopPlayMusic() |
| | | bgPlayer?.stopPlayMusic(false) |
| | | EventBus.getDefault().unregister(this) |
| | | } |
| | | |