| | |
| | | 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 |
| | |
| | | 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//今日疗愈更新计时 |
| | |
| | | |
| | | 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 { |
| | |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | |
| | | 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 ?: "") |
| | | } |
| | | } |
| | | |
| | |
| | | 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)) |
| | |
| | | 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 秒") |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | private fun initTab() { |
| | | val titles = arrayListOf("疗愈","课程","","疗愈馆","我的") |
| | | val titles = arrayListOf("疗愈", "课程", "", "疗愈馆", "我的") |
| | | val iconChecked = arrayListOf( |
| | | R.mipmap.home_selected, |
| | | R.mipmap.play_selected, |
| | |
| | | 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] |
| | | } |
| | |
| | | } |
| | | |
| | | @Subscribe |
| | | fun onEvent(e:EmptyEvent){ |
| | | fun onEvent(e: EmptyEvent){ |
| | | if (e.code == Const.EventCode.CHANGE_USER){ |
| | | tab_bar.currentTab = 0 |
| | | onTabSelect(0) |
| | |
| | | }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() |
| | |
| | | } |
| | | |
| | | @Subscribe |
| | | fun onIntEvent(e:IntEvent){ |
| | | fun onIntEvent(e: IntEvent){ |
| | | if (e.code == Const.EventCode.THINK_SEEK_PROGRESS){ |
| | | thinkBgPlayer?.seekTo(e.i) |
| | | player_play.callOnClick() |
| | |
| | | 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() |
| | | }){_,_-> |
| | | }){ _, _-> |
| | | } |
| | | } |
| | | } |