From d1a9e3312387b6c47e6186af506787a8a66369d1 Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期六, 09 十一月 2024 18:40:36 +0800
Subject: [PATCH] fix

---
 app/src/main/java/com/sinata/xqmuse/ui/home/HomeFragment.kt |   92 ++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 76 insertions(+), 16 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 98a243d..172db4f 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
@@ -3,11 +3,14 @@
 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.ellipsize
+import cn.sinata.xldutils.visible
+import com.sinata.xqmuse.MainActivity
 import com.sinata.xqmuse.R
-import com.sinata.xqmuse.dialog.LoginRuleDialog
 import com.sinata.xqmuse.network.HttpManager
 import com.sinata.xqmuse.network.entity.*
-import com.sinata.xqmuse.network.request
 import com.sinata.xqmuse.network.requestByF
 import com.sinata.xqmuse.ui.BGMSettingActivity
 import com.sinata.xqmuse.ui.H5Activity
@@ -15,9 +18,14 @@
 import com.sinata.xqmuse.ui.home.adapter.HomeAdapter
 import com.sinata.xqmuse.ui.home.adapter.HomeBannerAdapter
 import com.sinata.xqmuse.ui.home.adapter.TopMenuAdapter
+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.interfaces.StringCallback
 import kotlinx.android.synthetic.main.fragment_home.*
-import org.jetbrains.anko.startActivityForResult
+import org.greenrobot.eventbus.EventBus
 import org.jetbrains.anko.support.v4.startActivity
+import org.jetbrains.anko.support.v4.toast
 
 class HomeFragment : BaseFragment() {
     override fun contentViewId() = R.layout.fragment_home
@@ -37,12 +45,30 @@
         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() {
@@ -53,11 +79,14 @@
             startActivity<GuideActivity>()
         }
         iv_guide.setOnClickListener {
-            HttpManager.getH5(LoginRuleDialog.TYPE_PRIVACY).requestByF(this){ _, data->
+            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>()
@@ -67,9 +96,32 @@
         }
         iv_today.setOnClickListener {
             if (today!=null){
-                startActivity<VoiceDetailActivity>("id" to today!!.id)
+                showDialog()
+                HttpManager.getMeditationDetails(today!!.meditationId).requestByF(this,success = {_,data->
+                    dismissDialog()
+                    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(){
@@ -91,21 +143,30 @@
         }
     }
 
-    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?.clientMeditationVO?.backgroundUrl)
+                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}人已参加学习"
+            }
         }
     }
 
-    private fun getPrivacy() {
-        HttpManager.getPersonalityPlan().requestByF(this){_,data->
-            privacy.clear()
-            privacy.addAll(data?: arrayListOf())
-            privacyAdapter.notifyDataSetChanged()
-        }
+    fun getPrivacy() {
+        if (!SPUtils.instance().getString(Const.User.TOKEN).isNullOrEmpty()) {
+            gp_pri_empty.gone()
+            HttpManager.getPersonalityPlan().requestByF(this){_,data->
+                privacy.clear()
+                privacy.addAll(data?: arrayListOf())
+                privacyAdapter.notifyDataSetChanged()
+            }
+        }else
+            gp_pri_empty.visible()
     }
 
     private fun getList() {
@@ -118,5 +179,4 @@
             }
         }
     }
-
 }
\ No newline at end of file

--
Gitblit v1.7.1