| | |
| | | package com.sinata.xqmuse.ui.mine |
| | | |
| | | import androidx.recyclerview.widget.GridLayoutManager |
| | | import android.app.Activity |
| | | import android.content.Intent |
| | | import cn.sinata.xldutils.fragment.BaseFragment |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import com.sinata.xqmuse.MainActivity |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.utils.SpanBuilder |
| | | import cn.sinata.xldutils.utils.hidePhone |
| | | import cn.sinata.xldutils.visible |
| | | 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.entity.MineInfo |
| | | 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.ui.discovery.MsgActivity |
| | | 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.backgroundResource |
| | | import org.jetbrains.anko.support.v4.startActivity |
| | | import org.jetbrains.anko.support.v4.startActivityForResult |
| | | import org.jetbrains.anko.support.v4.toast |
| | | |
| | | class MineFragment : BaseFragment() { |
| | | override fun contentViewId() = R.layout.fragment_mine |
| | | |
| | | private var userInfo: UserInfo? = null |
| | | |
| | | private val menus = arrayListOf("我的课程","收藏课程","我的动态","个人钱包","成就等级","优惠券管理","银行绑定","好友推广") |
| | | private val adapter = MenuAdapter(menus) |
| | | private var userInfo: MineInfo? = null |
| | | |
| | | 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>() |
| | | queryUnread() |
| | | showUserInfo() |
| | | holder_info.setOnClickListener { |
| | | startActivityForResult<UserInfoActivity>(1) |
| | | } |
| | | tv_watch_his.setOnClickListener { |
| | | startActivity<WatchHisActivity>() |
| | | } |
| | | tv_center.clickDelay { |
| | | startActivity<UserInfoActivity>("user" to userInfo) |
| | | tv_collect.setOnClickListener { |
| | | startActivity<WatchHisActivity>("type" to WatchHisActivity.COLLECTED) |
| | | } |
| | | tv_feed.clickDelay { |
| | | startActivity<FeedbackActivity>() |
| | | tv_has_buy.setOnClickListener { |
| | | startActivity<WatchHisActivity>("type" to WatchHisActivity.HAS_BUY) |
| | | } |
| | | tv_about.clickDelay { |
| | | HttpManager.getH5(4).requestByF(this){ _, data-> |
| | | data?.let { |
| | | startActivity<H5Activity>("title" to "关于我们","url" to it) |
| | | bg_vip.setOnClickListener { |
| | | startActivityForResult<VipActivity>(1) |
| | | } |
| | | tv_service.setOnClickListener { |
| | | startActivity<ServiceActivity>() |
| | | } |
| | | tv_level.setOnClickListener { |
| | | startActivity<LevelActivity>() |
| | | } |
| | | 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>() |
| | | iv_setting.setOnClickListener { |
| | | startActivity<SettingActivity>() |
| | | } |
| | | 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>() |
| | | tv_share.setOnClickListener { |
| | | startActivity<ShareActivity>() |
| | | } |
| | | |
| | | override fun onCancel() { |
| | | iv_msg.setOnClickListener { |
| | | startActivity<MsgActivity>() |
| | | } |
| | | }) |
| | | tv_rank.setOnClickListener { |
| | | toast("H5") |
| | | } |
| | | showUserInfo() |
| | | tv_account.setOnClickListener { |
| | | startActivity<WalletActivity>() |
| | | } |
| | | } |
| | | |
| | | @Subscribe |
| | |
| | | } |
| | | |
| | | 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 |
| | | HttpManager.getUserInfo().requestByF(this){_,data-> |
| | | userInfo = data |
| | | data?.apply { |
| | | iv_avatar.setImageURI(avatar) |
| | | tv_name.text = nickname |
| | | tv_phone.text = cellPhone.hidePhone() |
| | | tv_vip.text = if (isVip == 2){ |
| | | bg_vip.backgroundResource = R.mipmap.no_vip |
| | | "你还未开通会员服务" |
| | | } else{ |
| | | bg_vip.backgroundResource = R.mipmap.bg_vip |
| | | "${vipExpireTime.substring(0,10)}到期" |
| | | } |
| | | tv_day.text = cumulative |
| | | tv_continue.text = continuity |
| | | val format = "%d小时%d分".format(today / 60, today % 60) |
| | | tv_today.text = SpanBuilder(format).size(format.indexOf("小"),format.indexOf("小")+2,11).size(format.length-1,format.length,11).build() |
| | | } |
| | | } |
| | | } |
| | | |
| | | fun queryUnread(){ |
| | | HttpManager.queryNotice().requestByF(this){_,data-> |
| | | if (data == true) iv_unread.visible() else iv_unread.gone() |
| | | } |
| | | } |
| | | |
| | |
| | | super.onDestroy() |
| | | EventBus.getDefault().unregister(this) |
| | | } |
| | | |
| | | override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { |
| | | super.onActivityResult(requestCode, resultCode, data) |
| | | if (resultCode == Activity.RESULT_OK) |
| | | showUserInfo() |
| | | } |
| | | } |