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.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.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.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
|
|
class HomeFragment : BaseFragment() {
|
override fun contentViewId() = R.layout.fragment_home
|
|
private val topMenu = arrayListOf<Menu>()
|
private val topMenuAdapter = TopMenuAdapter(topMenu)
|
private var today:HomeItem? = null //今日冥想
|
private val privacy = arrayListOf<CommonItemBean>() //私人订制
|
private val privacyAdapter by lazy { HomeBannerAdapter(privacy,requireContext()) }
|
|
private val list = arrayListOf<HomeListBean>()
|
private val adapter = HomeAdapter(list)
|
|
override fun onFirstVisibleToUser() {
|
rv_menu.layoutManager = GridLayoutManager(requireContext(),4)
|
rv_menu.adapter = topMenuAdapter
|
banner_privacy.adapter = privacyAdapter
|
rv_list.layoutManager = LinearLayoutManager(requireContext())
|
rv_list.adapter = adapter
|
getTopMenu()
|
getToday()
|
getPrivacy()
|
getList()
|
getBottomMenu()
|
}
|
|
private fun initClick() {
|
|
}
|
|
private fun getTopMenu(){
|
HttpManager.getCategoryListByType(1).requestByF(this){_,data->
|
topMenu.clear()
|
topMenu.addAll(data?: arrayListOf())
|
topMenuAdapter.notifyDataSetChanged()
|
}
|
}
|
|
private fun getBottomMenu(){
|
HttpManager.getCategoryListByType(2).requestByF(this){_,data->
|
adapter.menus.clear()
|
adapter.menus.addAll(data?: arrayListOf())
|
if (list.isNotEmpty()){
|
list.add(1, HomeListBean(null, arrayListOf()))
|
adapter.notifyDataSetChanged()
|
}
|
}
|
}
|
|
private 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}人已参加学习"
|
}
|
}
|
|
private fun getPrivacy() {
|
HttpManager.getPersonalityPlan().requestByF(this){_,data->
|
privacy.clear()
|
privacy.addAll(data?: arrayListOf())
|
privacyAdapter.notifyDataSetChanged()
|
}
|
}
|
|
private fun getList() {
|
HttpManager.getMeditationAndCateList().requestByF(this){_,data->
|
list.clear()
|
list.addAll(data?: arrayListOf())
|
if (adapter.menus.isNotEmpty()){
|
list.add(1, HomeListBean(null, arrayListOf()))
|
adapter.notifyDataSetChanged()
|
}
|
}
|
}
|
|
}
|