From ab2842d427504c531c79ddb9c5a9ef1df7833014 Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期四, 06 二月 2025 10:11:44 +0800 Subject: [PATCH] save --- app/src/main/java/com/sinata/xqmuse/ui/home/HomeFragment.kt | 135 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 107 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/com/sinata/xqmuse/ui/home/HomeFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/home/HomeFragment.kt index 1eb42a5..ac82404 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/home/HomeFragment.kt @@ -1,47 +1,33 @@ 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.ui.mine.VipActivity 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.startActivity 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 @@ -61,15 +47,97 @@ 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() + } + + 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 (data?.chargeType == 2&&data.isVip != 1){ //会员免费 + startActivity<VipActivity>() + }else if (data?.chargeType == 3&&data.isBuy != 1){ //单独收费且未购买 + startActivity<BuyVoiceActivity>("id" to data.id) + }else{ + 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(bg:String){ + if (!bg.isNullOrEmpty()) + iv_home.setImageURI(bg) } private fun getTopMenu(){ @@ -91,16 +159,28 @@ } } - 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()) @@ -118,5 +198,4 @@ } } } - } \ No newline at end of file -- Gitblit v1.7.1