| | |
| | | package com.sinata.xqmuse.ui.home |
| | | |
| | | import android.graphics.Color |
| | | import androidx.recyclerview.widget.GridLayoutManager |
| | | import androidx.recyclerview.widget.LinearLayoutManager |
| | | import cn.sinata.xldutils.fragment.BaseFragment |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.SpanBuilder |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import cn.sinata.xldutils.utils.toTime |
| | | import cn.sinata.xldutils.utils.ellipsize |
| | | import cn.sinata.xldutils.visible |
| | | import com.github.mikephil.charting.components.XAxis |
| | | import com.github.mikephil.charting.components.YAxis |
| | | import com.github.mikephil.charting.data.Entry |
| | | import com.github.mikephil.charting.data.LineData |
| | | import com.github.mikephil.charting.data.LineDataSet |
| | | import com.github.mikephil.charting.formatter.ValueFormatter |
| | | import com.github.mikephil.charting.interfaces.datasets.ILineDataSet |
| | | import com.sinata.xqmuse.MainActivity |
| | | import com.sinata.xqmuse.R |
| | | import com.sinata.xqmuse.dialog.ChooseStarDialog |
| | | import com.sinata.xqmuse.dialog.ChooseWeightDialog |
| | | import com.sinata.xqmuse.dialog.NoticeDialog |
| | | import com.sinata.xqmuse.network.HttpManager |
| | | import com.sinata.xqmuse.network.entity.* |
| | | import com.sinata.xqmuse.network.requestByF |
| | | import com.sinata.xqmuse.ui.BGMSettingActivity |
| | | import com.sinata.xqmuse.ui.H5Activity |
| | | import com.sinata.xqmuse.ui.guide.GuideActivity |
| | | import com.sinata.xqmuse.ui.home.adapter.HomeAdapter |
| | | import com.sinata.xqmuse.ui.home.adapter.HomeBannerAdapter |
| | | import com.sinata.xqmuse.ui.home.adapter.LuckAdapter |
| | | import com.sinata.xqmuse.ui.home.adapter.TopMenuAdapter |
| | | import com.sinata.xqmuse.ui.mine.UserInfoActivity |
| | | import com.sinata.xqmuse.ui.login.LoginActivity |
| | | import com.sinata.xqmuse.utils.Const |
| | | import com.sinata.xqmuse.utils.event.EmptyEvent |
| | | import com.sinata.xqmuse.utils.extention.clickDelay |
| | | import com.sinata.xqmuse.utils.extention.getArrowIcon |
| | | import com.sinata.xqmuse.utils.extention.getStarIcon |
| | | import com.sinata.xqmuse.utils.interfaces.StringCallback |
| | | import kotlinx.android.synthetic.main.fragment_home.* |
| | | import org.greenrobot.eventbus.EventBus |
| | | import org.greenrobot.eventbus.Subscribe |
| | | import org.jetbrains.anko.support.v4.startActivity |
| | | import java.util.* |
| | | import kotlin.math.absoluteValue |
| | | import org.jetbrains.anko.support.v4.toast |
| | | |
| | | class HomeFragment : BaseFragment() { |
| | | override fun contentViewId() = R.layout.fragment_home |
| | |
| | | banner_privacy.adapter = privacyAdapter |
| | | rv_list.layoutManager = LinearLayoutManager(requireContext()) |
| | | rv_list.adapter = adapter |
| | | adapter.callback = object :StringCallback{ |
| | | override fun onResult(rst: String) { |
| | | showDialog() |
| | | HttpManager.getMeditationDetails(rst).requestByF(this@HomeFragment,success = {_,data-> |
| | | dismissDialog() |
| | | data?.goDetail(requireContext()) |
| | | }){_,_-> |
| | | dismissDialog() |
| | | } |
| | | } |
| | | } |
| | | getTopMenu() |
| | | getToday() |
| | | getPrivacy() |
| | | getList() |
| | | getBottomMenu() |
| | | initClick() |
| | | changeBg() |
| | | } |
| | | |
| | | fun refreshData(){ |
| | | getToday() |
| | | getPrivacy() |
| | | getList() |
| | | } |
| | | |
| | | private fun initClick() { |
| | | iv_search.setOnClickListener { |
| | | startActivity<SearchActivity>() |
| | | } |
| | | iv_privacy.setOnClickListener { |
| | | startActivity<GuideActivity>() |
| | | } |
| | | iv_guide.setOnClickListener { |
| | | HttpManager.getH5(4).requestByF(this){ _, data-> |
| | | data?.let { |
| | | startActivity<H5Activity>("title" to "新手冥想指南","url" to it.content) |
| | | } |
| | | } |
| | | } |
| | | iv_daily_empty.setOnClickListener { |
| | | toast("平台暂未设置今日疗愈") |
| | | } |
| | | iv_voice.setOnClickListener { |
| | | startActivity<BGMSettingActivity>() |
| | | } |
| | | topMenuAdapter.setOnItemClickListener { view, position -> |
| | | startActivity<TypeVoiceActivity>("title" to topMenu[position].categoryName,"id" to topMenu[position].id) |
| | | } |
| | | iv_today.setOnClickListener { |
| | | if (today!=null){ |
| | | if (MainActivity.voice?.id == today?.meditationId){ |
| | | EventBus.getDefault().post(EmptyEvent(Const.EventCode.PAUSE_OR_RESUME_THINK)) |
| | | if (MainActivity.playing) //播放中 |
| | | iv_play_today.setImageResource(R.mipmap.player_pause) |
| | | else |
| | | iv_play_today.setImageResource(R.mipmap.play) |
| | | }else{ |
| | | showDialog() |
| | | HttpManager.getMeditationDetails(today!!.meditationId).requestByF(this,success = {_,data-> |
| | | dismissDialog() |
| | | if (MainActivity.playing) |
| | | EventBus.getDefault().post(EmptyEvent(Const.EventCode.FINISH_THINK)) |
| | | MainActivity.voice = data |
| | | EventBus.getDefault().post(EmptyEvent(Const.EventCode.START_THINK)) |
| | | }){_,_-> |
| | | dismissDialog() |
| | | } |
| | | } |
| | | } |
| | | } |
| | | banner_privacy.setOnBannerListener { data, position -> |
| | | showDialog() |
| | | HttpManager.getMeditationDetails(privacy[position].id).requestByF(this,success = {_,data-> |
| | | dismissDialog() |
| | | data?.goDetail(requireContext()) |
| | | }){_,_-> |
| | | dismissDialog() |
| | | } |
| | | } |
| | | iv_pri_empty.setOnClickListener { startActivity<LoginActivity>() } |
| | | } |
| | | |
| | | fun changeBg(){ |
| | | val bg = SPUtils.instance().getString(Const.User.BG) |
| | | if (!bg.isNullOrEmpty()) |
| | | iv_home.setImageURI(bg) |
| | | } |
| | | |
| | | private fun getTopMenu(){ |
| | |
| | | } |
| | | } |
| | | |
| | | private fun getToday() { |
| | | fun getToday() { |
| | | HttpManager.getTodayMeditation().requestByF(this){_,data-> |
| | | today = data |
| | | iv_today.setImageURI(today?.clientMeditationVO?.backgroundUrl) |
| | | tv_length_today.text = "${today?.clientMeditationVO?.meditationTitle} | ${"00:00"}" |
| | | tv_today_count.text = "${today?.clientMeditationVO?.realLearnedNum}人已参加学习" |
| | | if (today?.clientMeditationVO?.backgroundUrl.isNullOrEmpty()){ |
| | | iv_daily_empty.visible() |
| | | }else{ |
| | | iv_daily_empty.gone() |
| | | iv_today.setImageURI(today?.imageUrl) |
| | | tv_length_today.text = "${today?.clientMeditationVO?.meditationTitle?.ellipsize(12)} | ${"%02d:%02d".format((data?.time?:0)/60,(data?.time?:0)%60)}" |
| | | tv_today_count.text = "${(today?.clientMeditationVO?.realLearnedNum?:0)+(today?.clientMeditationVO?.virtualLearnedNum?:0)}人已参加学习" |
| | | } |
| | | } |
| | | } |
| | | |
| | | private fun getPrivacy() { |
| | | fun refreshTodayPlayingState(){ |
| | | if (MainActivity.voice?.id == today?.meditationId&&MainActivity.playing) |
| | | iv_play_today.setImageResource(R.mipmap.player_pause) |
| | | else |
| | | iv_play_today.setImageResource(R.mipmap.play) |
| | | } |
| | | |
| | | fun getPrivacy() { |
| | | HttpManager.getPersonalityPlan().requestByF(this){_,data-> |
| | | privacy.clear() |
| | | privacy.addAll(data?: arrayListOf()) |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |