fix
lmw
2024-11-09 d1a9e3312387b6c47e6186af506787a8a66369d1
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
            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} | ${"00:00"}"
                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() {
    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 @@
            }
        }
    }
}