[1.0.10]首页通知轮询逻辑修改

This commit is contained in:
zhanglei
2026-02-12 10:37:39 +08:00
parent f095e182e5
commit 960791ff4d
7 changed files with 73 additions and 35 deletions
@@ -16,7 +16,6 @@ import com.xjjk.healthyclients.base.BaseVMBFragment
import com.xjjk.healthyclients.bean.guidance.GuidanceListBean import com.xjjk.healthyclients.bean.guidance.GuidanceListBean
import com.xjjk.healthyclients.databinding.FragmentHomeBinding import com.xjjk.healthyclients.databinding.FragmentHomeBinding
import com.xjjk.healthyclients.event.HomeTabChangeEvent import com.xjjk.healthyclients.event.HomeTabChangeEvent
import com.xjjk.healthyclients.event.RefreshEvent
import com.xjjk.healthyclients.superfuntion.initColors import com.xjjk.healthyclients.superfuntion.initColors
import com.xjjk.healthyclients.superfuntion.showBanner import com.xjjk.healthyclients.superfuntion.showBanner
import com.xjjk.healthyclients.superfuntion.startAppointmentWaitAffirmActivity import com.xjjk.healthyclients.superfuntion.startAppointmentWaitAffirmActivity
@@ -47,6 +46,10 @@ class HomeFragment :
var mDoctorList = arrayListOf<GuidanceListBean>() var mDoctorList = arrayListOf<GuidanceListBean>()
var mGuidanceFragmentDoctorAdapter: GuidanceFragmentDoctorAdapter? = null var mGuidanceFragmentDoctorAdapter: GuidanceFragmentDoctorAdapter? = null
var REQUEST_DURATION = 1000 * 120L
var noticeTime = REQUEST_DURATION
override fun initView(root: View?, savedInstanceState: Bundle?) { override fun initView(root: View?, savedInstanceState: Bundle?) {
mBinding.swipeRefresh.initColors() mBinding.swipeRefresh.initColors()
@@ -119,7 +122,8 @@ class HomeFragment :
} }
mBinding.apply { mBinding.apply {
addClickViews(layoutItem4.imgLeft, layoutItem4.imgRight, addClickViews(
layoutItem4.imgLeft, layoutItem4.imgRight,
layoutItem1.homeHeadTab1, layoutItem1.homeHeadTab2, layoutItem1.homeHeadTab3, layoutItem1.homeHeadTab1, layoutItem1.homeHeadTab2, layoutItem1.homeHeadTab3,
layoutItem1.homeHeadTab4, layoutItem3.tvDoctorMore layoutItem1.homeHeadTab4, layoutItem3.tvDoctorMore
) )
@@ -156,6 +160,13 @@ class HomeFragment :
val bundle = Bundle() val bundle = Bundle()
bundle.putString("title", "健康银行") bundle.putString("title", "健康银行")
toActivity(EmptyActivity::class.java, bundle) toActivity(EmptyActivity::class.java, bundle)
//
// if (DataStoreManager.isLogin()) {
// requireContext().startWebActivity(UrlConfig.getHomeBankH5Url(), myTitle = "健康银行")
// } else {
// startLoginActivity(requireContext())
// }
} }
R.id.home_head_tab3 -> { R.id.home_head_tab3 -> {
@@ -187,10 +198,10 @@ class HomeFragment :
super.onResume() super.onResume()
if (DataStoreManager.isLogin()) { if (DataStoreManager.isLogin()) {
mBinding.tvHi.visibility = View.VISIBLE mBinding.tvHi.visibility = View.VISIBLE
mBinding.layoutNotice.visibility = View.VISIBLE // mBinding.layoutNotice.visibility = View.VISIBLE
mBinding.tvHi.text = "hi~ ${DataStoreManager.getUserInfo().realname}" mBinding.tvHi.text = "hi~ ${DataStoreManager.getUserInfo().realname}"
} else { } else {
mBinding.layoutNotice.visibility = View.GONE // mBinding.layoutNotice.visibility = View.GONE
mBinding.tvHi.visibility = View.GONE mBinding.tvHi.visibility = View.GONE
} }
} }
@@ -252,20 +263,21 @@ class HomeFragment :
mViewModel.homeNoticeRepeat.collectLatest { mViewModel.homeNoticeRepeat.collectLatest {
stringList.clear() stringList.clear()
if (it.isNullOrEmpty()) { if (it.isNullOrEmpty()) {
stringList.add("暂无通知") mBinding.layoutNotice.visibility = View.GONE
} else { } else {
it.forEach { noticeData -> it.forEach { noticeData ->
stringList.add(noticeData.title) stringList.add(noticeData.title)
} }
mBinding.layoutNotice.visibility = View.VISIBLE
} }
mBinding.homeMarqueeView.stopFlipping() mBinding.homeMarqueeView.stopFlipping()
delay(100) delay(100)
mBinding.homeMarqueeView.startWithList(stringList) mBinding.homeMarqueeView.startWithList(stringList)
delay(1000 * 120) // getNoticeMessage()
mViewModel.getHomeNoticeListRepeat()
} }
} }
} }
lifecycleScope.launch { lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.CREATED) { repeatOnLifecycle(Lifecycle.State.CREATED) {
mViewModel.mDoctorList.collectLatest { list -> mViewModel.mDoctorList.collectLatest { list ->
@@ -290,24 +302,35 @@ class HomeFragment :
override fun initData() { override fun initData() {
onRefresh() mViewModel.getHomeBannerList()
if (ConstantUtils.mCheckToken) {
mViewModel.selectDoctorRecommendHome()
} }
if (DataStoreManager.isLogin()) {
homeNoticeStartRepeat()
}
}
private fun homeNoticeStartRepeat() {
lifecycleScope.launch {
repeat(100) {
mViewModel.getHomeNoticeListRepeat()
delay(noticeTime)
}
}
}
override fun onRefresh() { override fun onRefresh() {
mBinding.swipeRefresh.isRefreshing = false mBinding.swipeRefresh.isRefreshing = false
mViewModel.getHomeBannerList() mViewModel.getHomeBannerList()
if (ConstantUtils.mCheckToken) { if (ConstantUtils.mCheckToken) {
mViewModel.selectDoctorRecommendHome() mViewModel.selectDoctorRecommendHome()
} }
} if (DataStoreManager.isLogin()) {
override fun onMessageEvent(event: Any?) {
if (event is RefreshEvent) {
mViewModel.getHomeNoticeListRepeat() mViewModel.getHomeNoticeListRepeat()
onRefresh()
}
super.onMessageEvent(event)
} }
} }
}
@@ -28,9 +28,10 @@ object UrlConfig {
// 安眼修改密码 // 安眼修改密码
const val ANYAN_CHANGE_PASSWORD_H5 = "https://sso.iosp.ydpt.tech/SSOManageClient/userController/changePassword" const val ANYAN_CHANGE_PASSWORD_H5 = "https://sso.iosp.ydpt.tech/SSOManageClient/userController/changePassword"
private const val HOME_BANK_H5 = "https://gstest.superwx.cn/healthbank/index.html"
val baseUrlType: BaseUrlType = BaseUrlType.TEST val baseUrlType: BaseUrlType = BaseUrlType.PRODUCT
var isOpenIm: Boolean = true var isOpenIm: Boolean = true
@@ -98,6 +99,18 @@ object UrlConfig {
return getH5BaseUrl(baseUrlType) + "/static/monitor/index.html?" return getH5BaseUrl(baseUrlType) + "/static/monitor/index.html?"
} }
/**
* 手机银行外链h5
*/
fun getHomeBankH5Url(): String{
var httpUrl = getDefaultBaseUrl().toHttpUrl()
return HOME_BANK_H5+"?scheme=" + httpUrl.scheme +
"&host=" + httpUrl.host +
"&tokenF=" + DataStoreManager.getToken()
}
/** /**
* 获取评估报告模块地址 * 获取评估报告模块地址
@@ -90,7 +90,7 @@ class HomeViewModel : BaseViewModel() {
showDialog = false, showDialog = false,
{ {
handleRequest( handleRequest(
HomeRepository.getHomeNoticeList(1, 10), HomeRepository.getHomeNoticeList(1, 20),
successBlock = { successBlock = {
homeNoticeRepeat.emit(it.result) homeNoticeRepeat.emit(it.result)
}) })
@@ -31,6 +31,7 @@
android:id="@+id/rv_list" android:id="@+id/rv_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:paddingBottom="20dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
<include <include
@@ -41,6 +41,7 @@
android:orientation="vertical"> android:orientation="vertical">
<com.allen.library.shape.ShapeRelativeLayout <com.allen.library.shape.ShapeRelativeLayout
android:visibility="gone"
android:id="@+id/layout_notice" android:id="@+id/layout_notice"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="40dp" android:layout_height="40dp"
@@ -21,7 +21,7 @@
android:id="@+id/tv_title" android:id="@+id/tv_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="30dp" android:layout_marginLeft="28dp"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="2" android:maxLines="2"
android:textColor="@color/color_theme_or_black_33" android:textColor="@color/color_theme_or_black_33"
+2 -2
View File
@@ -2,8 +2,8 @@ ext {
minSdkVersion = 26 minSdkVersion = 26
targetSdkVersion = 32 targetSdkVersion = 32
compileSdkVersion = 33 compileSdkVersion = 33
versionCode = 109 versionCode = 1010
versionName = "1.0.9" versionName = "1.0.10"
//Dependencies //Dependencies
junitVersion = "4.12" junitVersion = "4.12"
lifecycleVersion = "2.6.0-alpha01" lifecycleVersion = "2.6.0-alpha01"