package com.sinata.xqmuse.ui.mine
|
|
import androidx.recyclerview.widget.GridLayoutManager
|
import cn.sinata.xldutils.fragment.BaseFragment
|
import cn.sinata.xldutils.utils.SPUtils
|
import cn.sinata.xldutils.utils.myToast
|
import com.sinata.xqmuse.MainActivity
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.JkApplication
|
import com.sinata.xqmuse.dialog.PhoneDialog
|
import com.sinata.xqmuse.dialog.SingleWheelDialog
|
import com.sinata.xqmuse.dialog.TipDialog
|
import com.sinata.xqmuse.network.HttpManager
|
import com.sinata.xqmuse.network.entity.UserInfo
|
import com.sinata.xqmuse.network.requestByF
|
import com.sinata.xqmuse.ui.H5Activity
|
import com.sinata.xqmuse.ui.course.MyCourseActivity
|
import com.sinata.xqmuse.ui.course.ReceiveGiftActivity
|
import com.sinata.xqmuse.ui.login.LoginActivity
|
import com.sinata.xqmuse.ui.mine.adapter.MenuAdapter
|
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.interfaces.StringCallback
|
import kotlinx.android.synthetic.main.fragment_mine.*
|
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.Subscribe
|
import org.jetbrains.anko.support.v4.startActivity
|
|
class MineFragment : BaseFragment() {
|
override fun contentViewId() = R.layout.fragment_mine
|
|
private var userInfo: UserInfo? = null
|
|
private val menus = arrayListOf("我的课程","收藏课程","我的动态","个人钱包","成就等级","优惠券管理","银行绑定","好友推广")
|
private val adapter = MenuAdapter(menus)
|
|
override fun onFirstVisibleToUser() {
|
EventBus.getDefault().register(this)
|
rv_menu.layoutManager = GridLayoutManager(requireContext(),4)
|
rv_menu.adapter = adapter
|
adapter.setOnItemClickListener { view, position ->
|
when(position){
|
0->startActivity<MyCourseActivity>()
|
1->startActivity<CollectedCourseActivity>()
|
2->startActivity<MyDynamicActivity>()
|
3->startActivity<WalletActivity>()
|
4->startActivity<LevelActivity>("count" to (userInfo?.clockIn?:0))
|
5->startActivity<CouponActivity>()
|
6->startActivity<BindCardActivity>()
|
7->startActivity<ShareActivity>()
|
}
|
}
|
tv_center.clickDelay {
|
startActivity<UserInfoActivity>("user" to userInfo)
|
}
|
tv_feed.clickDelay {
|
startActivity<FeedbackActivity>()
|
}
|
tv_about.clickDelay {
|
HttpManager.getH5(4).requestByF(this){ _, data->
|
data?.let {
|
startActivity<H5Activity>("title" to "关于我们","url" to it)
|
}
|
}
|
}
|
tv_contact.clickDelay {
|
HttpManager.getPhone().requestByF(this){_,data->
|
PhoneDialog.show(childFragmentManager,data?:"")
|
}
|
}
|
tv_guide.clickDelay {
|
startActivity<UseGuideActivity>()
|
}
|
tv_privacy_rule.clickDelay {
|
HttpManager.getH5(2).requestByF(this){ _, data->
|
data?.let {
|
startActivity<H5Activity>("title" to "隐私协议","url" to it)
|
}
|
}
|
}
|
tv_user_rule.clickDelay {
|
HttpManager.getH5(1).requestByF(this){ _, data->
|
data?.let {
|
startActivity<H5Activity>("title" to "用户协议","url" to it)
|
}
|
}
|
}
|
tv_set_unit.clickDelay {
|
SingleWheelDialog.show(childFragmentManager,"APP体重单位", arrayListOf("斤","公斤","磅"),object :StringCallback{
|
override fun onResult(rst: String) {
|
HttpManager.setUnit(if (rst == "斤") 2 else if (rst == "公斤") 1 else 3).requestByF(this@MineFragment){_,_->
|
myToast("设置成功")
|
EventBus.getDefault().post(EmptyEvent(Const.EventCode.USER_INFO_CHANGED))
|
}
|
}
|
})
|
}
|
tv_address.clickDelay {
|
startActivity<ReceiveGiftActivity>()
|
}
|
tv_setting.setOnClickListener {
|
startActivity<SettingActivity>()
|
}
|
tv_logout.setOnClickListener {
|
TipDialog.show(childFragmentManager,"确认退出登录吗?",object : TipDialog.OnClickCallback{
|
override fun onOk() {
|
SPUtils.instance().put(Const.User.TOKEN,"").put(Const.User.USER_ID,"")
|
.put("isHint",false)
|
.put("MsgTime","")
|
.apply()
|
(requireActivity().application as JkApplication).exit()
|
startActivity<LoginActivity>()
|
}
|
|
override fun onCancel() {
|
}
|
})
|
}
|
showUserInfo()
|
}
|
|
@Subscribe
|
fun refreshInfo(e: EmptyEvent){
|
if (e.code == Const.EventCode.REFRESH_USER_INFO){
|
showUserInfo()
|
}
|
}
|
|
private fun showUserInfo() {
|
userInfo = (requireActivity() as MainActivity).homeData
|
userInfo?.apply {
|
iv_avatar.setImageURI(headImg)
|
tv_name.text = name
|
iv_level.setImageResource(getLevelRes())
|
tv_invite_code.text = "邀请码:${code}"
|
tv_height.text = height
|
tv_weight.text = weight
|
tv_bmi.text = bMI
|
tv_unit.text = getUnitName()
|
tv_fat_state.text = bMIInfo
|
}
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
EventBus.getDefault().unregister(this)
|
}
|
}
|