调整选择游戏社区的排序,已安装相应游戏的放到最前

This commit is contained in:
chenjuntao
2019-03-22 18:25:14 +08:00
parent 37fc68977c
commit 185ee7f0f4
2 changed files with 33 additions and 5 deletions

View File

@ -405,12 +405,12 @@ class AskFragment : BaseFragment<Any>() {
val view = viewDialog.findViewById<View>(R.id.communities_select_hint)
val cancel = viewDialog.findViewById<View>(R.id.communities_select_cancel)
val title = viewDialog.findViewById<View>(R.id.communities_select_title)
view.setOnClickListener { _ ->
view.setOnClickListener {
dialog.dismiss()
startActivityForResult(CommunitiesSelectActivity.getIntent(context), COMMUNITIES_SELECT_REQUEST)
}
cancel.setOnClickListener { _ -> dialog.dismiss() }
title.setOnClickListener { _ -> dialog.dismiss() }
cancel.setOnClickListener { dialog.dismiss() }
title.setOnClickListener { dialog.dismiss() }
val params = ViewGroup.LayoutParams(resources.displayMetrics.widthPixels, ViewGroup.LayoutParams.WRAP_CONTENT)
dialog.setContentView(viewDialog, params)
}

View File

@ -1,8 +1,10 @@
package com.gh.gamecenter.qa.select
import android.app.Application
import com.gh.common.AppExecutor
import com.gh.common.util.UrlFilterUtils
import com.gh.gamecenter.baselist.ListViewModel
import com.gh.gamecenter.packagehelper.PackageRepository
import com.gh.gamecenter.qa.entity.AskGameSelectEntity
import com.gh.gamecenter.retrofit.RetrofitManager
import com.halo.assistant.HaloApp
@ -10,11 +12,37 @@ import io.reactivex.Observable
class OpenedViewModel(application: Application) : ListViewModel<AskGameSelectEntity, AskGameSelectEntity>(application) {
override fun mergeResultLiveData() {
mResultLiveData.addSource(mListLiveData, { mResultLiveData.postValue(it) })
mResultLiveData.addSource(mListLiveData) {
sortGameOrder(it)
}
}
private fun sortGameOrder(selectList: MutableList<AskGameSelectEntity>?) {
AppExecutor.ioExecutor.execute {
val sortedList = mutableListOf<AskGameSelectEntity>()
selectList?.let {
for (game in selectList) {
var thisGameIsInstalled = false
for (installGame in PackageRepository.gameInstalled) {
if (installGame.id == game.id) {
thisGameIsInstalled = true
break
}
}
if (thisGameIsInstalled) {
sortedList.add(0, game)
} else {
sortedList.add(game)
}
}
}
mResultLiveData.postValue(sortedList)
}
}
// 由于老板说要对可选择的游戏社区排序,将已安装的游戏的社区放到最前面,所以这里的 pageSize 放大到 100
override fun provideDataObservable(page: Int): Observable<List<AskGameSelectEntity>> {
return RetrofitManager.getInstance(getApplication()).api.getAskGameSelect(HaloApp.getInstance().channel
, UrlFilterUtils.getFilterQuery("status", "opened"), page, 20)
, UrlFilterUtils.getFilterQuery("status", "opened"), page, 100)
}
}