调整选择游戏社区的排序,已安装相应游戏的放到最前
This commit is contained in:
@ -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)
|
||||
}
|
||||
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user