From 718f31c92e2029d05260810435a2c70cef6e6ce5 Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期四, 24 四月 2025 10:45:55 +0800 Subject: [PATCH] save --- app/src/main/java/com/sinata/xqmuse/ui/mine/MineFragment.kt | 202 ++++++++++++++++++++++++++------------------------ 1 files changed, 104 insertions(+), 98 deletions(-) diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/MineFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/MineFragment.kt index b573664..3ca59bf 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/mine/MineFragment.kt +++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/MineFragment.kt @@ -1,149 +1,155 @@ 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.gone import cn.sinata.xldutils.utils.SPUtils -import cn.sinata.xldutils.utils.myToast +import cn.sinata.xldutils.utils.SpanBuilder +import cn.sinata.xldutils.utils.hidePhone +import cn.sinata.xldutils.visible 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.Apis 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.OnlyWebActivity 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.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_center.clickDelay { - startActivity<UserInfoActivity>("user" to userInfo) + tv_watch_his.setOnClickListener { + startActivity<WatchHisActivity>() } - tv_feed.clickDelay { - startActivity<FeedbackActivity>() + tv_collect.setOnClickListener { + startActivity<WatchHisActivity>("type" to WatchHisActivity.COLLECTED) } - tv_about.clickDelay { - HttpManager.getH5(4).requestByF(this){ _, data-> - data?.let { - startActivity<H5Activity>("title" to "关于我们","url" to it) - } - } + tv_has_buy.setOnClickListener { + startActivity<WatchHisActivity>("type" to WatchHisActivity.HAS_BUY) } - tv_contact.clickDelay { - HttpManager.getPhone().requestByF(this){_,data-> - PhoneDialog.show(childFragmentManager,data?:"") - } + bg_vip.setOnClickListener { + startActivity<VipActivity>() } - tv_guide.clickDelay { - startActivity<UseGuideActivity>() + tv_service.setOnClickListener { + startActivity<ServiceActivity>() } - tv_privacy_rule.clickDelay { - HttpManager.getH5(2).requestByF(this){ _, data-> - data?.let { - startActivity<H5Activity>("title" to "隐私协议","url" to it) - } - } + tv_level.setOnClickListener { + startActivity<LevelActivity>() } - 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>("data" to userInfo) } tv_setting.setOnClickListener { - startActivity<SettingActivity>() + iv_setting.callOnClick() } - 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() { - } - }) + tv_share.setOnClickListener { + userInfo?.apply { + startActivity<ShareActivity>("userId" to userInfo?.id) + } } - showUserInfo() + iv_msg.setOnClickListener { + startActivity<MsgActivity>() + } + tv_rank.setOnClickListener { + userInfo?.apply { + startActivity<OnlyWebActivity>("title" to "爱心助力榜单","url" to Apis.RANK.format(id),"type" to 0,"pushList" to Apis.PUSH_LIST.format(id)) + } + } + tv_account.setOnClickListener { + userInfo?.apply { + startActivity<WalletActivity>("userId" to userInfo?.id) + } + } + tv_more_record.setOnClickListener { + startActivity<MyCourseActivity>() + } + tv_study_record.setOnClickListener { + startActivity<MyCourseActivity>() + } } @Subscribe fun refreshInfo(e: EmptyEvent){ - if (e.code == Const.EventCode.REFRESH_USER_INFO){ + if (e.code == Const.EventCode.CHANGE_USER){ + showUserInfo() + } else if (e.code == Const.EventCode.USER_INFO_CHANGED){ 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 + fun showUserInfo() { + if (!isAdded) + return + if (!SPUtils.instance().getString(Const.User.TOKEN).isNullOrEmpty()) + 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 + tv_describe.text = "升级为会员,解锁会员专属体验" + "你还未开通会员服务" + } else{ + bg_vip.backgroundResource = R.mipmap.bg_vip + tv_describe.text = "您将享受所有会员专享音频,尽情畅游泉疗愈世界" + "${vipExpireTime?.substring(0,10)}到期" + } + iv_vip.setImageURI(data.levelIcon) + tv_day.text = cumulative + tv_continue.text = continuity?:"0" + 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() + } + } + else{ + userInfo = null + iv_avatar.setImageURI("") + tv_name.text = "" + tv_phone.text = "" + tv_vip.text = "你还未开通会员服务" + tv_describe.text = "升级为会员,解锁会员专属体验" } + } + + fun queryUnread(){ + if (!SPUtils.instance().getString(Const.User.TOKEN).isNullOrEmpty()) + HttpManager.queryNotice().requestByF(this){_,data-> + if (data == true) iv_unread.visible() else iv_unread.gone() + } } override fun onDestroy() { 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() + } } -- Gitblit v1.7.1