Merge branch 'fix-GHZS-1966' into 'dev'
fix: 首页轮播图样式改版-前端部分—0331测试(0406测试2) https://jira.shanqu.cc/browse/GHZS-1966 See merge request halo/android/assistant-android!882
This commit is contained in:
@ -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<DiscoveryGameCardEntity>() {
|
||||
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<DiscoveryGameCardEntity>() {
|
||||
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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user