From 7cc7bb54d05bd6295a156e14e413e490c50c8d55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E5=AD=90=E7=BB=B4?= Date: Thu, 6 Apr 2023 15:24:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=A6=96=E9=A1=B5=E8=BD=AE=E6=92=AD?= =?UTF-8?q?=E5=9B=BE=E6=A0=B7=E5=BC=8F=E6=94=B9=E7=89=88-=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E9=83=A8=E5=88=86=E2=80=940331=E6=B5=8B=E8=AF=95(0406?= =?UTF-8?q?=E6=B5=8B=E8=AF=952)=20https://jira.shanqu.cc/browse/GHZS-1966?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/gamecenter/home/HomeViewModel.kt | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt index fcf1ee5bf2..809f0c1a05 100644 --- a/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt @@ -118,7 +118,6 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { mHomeRecommends.addAll(it.homeRecommend) mHomeContents.addAll(it.homeContent) mHomeSubSlides.addAll(it.homeSubSlide) - getHomeSubSlideDiscoverGame() transformRawDataIntoItemDataWithThrottle(mHomeContents) mContentPage = 2 loadStatus.postValue(LoadStatus.INIT_LOADED) @@ -388,28 +387,30 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { } } - private fun getHomeSubSlideDiscoverGame(callback: (() -> Unit)? = null) { + private fun getHomeSubSlideDiscoverGame() { if (mHomeSubSlides.isNotEmpty()) { val firstCardRepeatCount = (mHomeSlideFirstCardPosition / mHomeSubSlides.size) + 1 val secondCardRepeatCount = ((mHomeSlideFirstCardPosition + 1) / mHomeSubSlides.size) + 1 - mHomeSubSlides.forEach { homeSubSlide -> - if (homeSubSlide.cardType == "game_explore") { - val newPage = min(firstCardRepeatCount, secondCardRepeatCount) - if (mHomeSlideDiscoveryGamesPage != newPage) { - mApi.getDiscoveryGames(newPage, mapOf("page_size" to 3)) - .compose(observableToMain()) - .subscribe(object : Response() { - override fun onResponse(response: DiscoveryGameCardEntity?) { - response?.run { - mHomeSubSlideDiscoveryGames = RegionSettingHelper.filterGame(games) - mHomeSlideDiscoveryGamesPage = newPage - } - callback?.invoke() - } - }) - } + val newPage = min(firstCardRepeatCount, secondCardRepeatCount) + if (mHomeSlideDiscoveryGamesPage != newPage) { + val paramsMap = if (SPUtils.getBoolean(Constants.SP_DISCOVER_FORCE_REFRESH)) { + mapOf("page_size" to 3, "view" to "sub_slide", "refresh" to "true") + } else { + mapOf("page_size" to 3, "view" to "sub_slide") } + mApi.getDiscoveryGames(1, paramsMap) + .compose(observableToMain()) + .subscribe(object : Response() { + override fun onResponse(response: DiscoveryGameCardEntity?) { + response?.run { + SPUtils.setBoolean(Constants.SP_DISCOVER_FORCE_REFRESH, false) + mHomeSubSlideDiscoveryGames = RegionSettingHelper.filterGame(games) + mHomeSlideDiscoveryGamesPage = newPage + } + transformRawDataIntoItemDataWithThrottle(mHomeContents) + } + }) } } } @@ -631,12 +632,9 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { var discoveryIndex = -1 mHomeSubSlides.forEachIndexed { index, homeSubSlide -> if (homeSubSlide.cardType == "game_explore") { - if (mHomeSubSlideDiscoveryGames == null) { - getHomeSubSlideDiscoverGame { - transformRawDataIntoItemDataWithThrottle(mHomeContents) - } - } else if (mHomeSubSlideDiscoveryGames!!.isNotEmpty()) { - homeSubSlide.cardData.games = mHomeSubSlideDiscoveryGames!! + getHomeSubSlideDiscoverGame() + if (!mHomeSubSlideDiscoveryGames.isNullOrEmpty() || mHomeSlideDiscoveryGamesPage == 0) { + mHomeSubSlideDiscoveryGames?.let { homeSubSlide.cardData.games = it } } else { isDiscoveryGameEmpty = true discoveryIndex = index @@ -646,10 +644,12 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { } } if (isDiscoveryGameEmpty) mHomeSubSlides.removeAt(discoveryIndex) - val firstSubSlidePosition = mHomeSlideFirstCardPosition % mHomeSubSlides.size - val secondSubSlidePosition = (mHomeSlideFirstCardPosition + 1) % mHomeSubSlides.size - slideItem.homeSubSlides = - listOf(mHomeSubSlides[firstSubSlidePosition], mHomeSubSlides[secondSubSlidePosition]) + if (mHomeSubSlides.size > 1) { + val firstSubSlidePosition = mHomeSlideFirstCardPosition % mHomeSubSlides.size + val secondSubSlidePosition = (mHomeSlideFirstCardPosition + 1) % mHomeSubSlides.size + slideItem.homeSubSlides = + listOf(mHomeSubSlides[firstSubSlidePosition], mHomeSubSlides[secondSubSlidePosition]) + } } mSnapshotItemList.add(slideItem) }