lmw
2024-09-25 92778728b83ce1a34ba21bcdb061afdeca16cce5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
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)
    }
}