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