From 185ee7f0f4757f7a88cfdedde339cc079f6b68bd Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Fri, 22 Mar 2019 18:25:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=80=89=E6=8B=A9=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E7=A4=BE=E5=8C=BA=E7=9A=84=E6=8E=92=E5=BA=8F=EF=BC=8C?= =?UTF-8?q?=E5=B7=B2=E5=AE=89=E8=A3=85=E7=9B=B8=E5=BA=94=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E7=9A=84=E6=94=BE=E5=88=B0=E6=9C=80=E5=89=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/qa/AskFragment.kt | 6 ++-- .../gamecenter/qa/select/OpenedViewModel.kt | 32 +++++++++++++++++-- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/qa/AskFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/AskFragment.kt index ead1f59931..d08a9c4810 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/AskFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/AskFragment.kt @@ -405,12 +405,12 @@ class AskFragment : BaseFragment() { val view = viewDialog.findViewById(R.id.communities_select_hint) val cancel = viewDialog.findViewById(R.id.communities_select_cancel) val title = viewDialog.findViewById(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) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/OpenedViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/select/OpenedViewModel.kt index 777c4c42f0..dc0c5492b3 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/select/OpenedViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/select/OpenedViewModel.kt @@ -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(application) { override fun mergeResultLiveData() { - mResultLiveData.addSource(mListLiveData, { mResultLiveData.postValue(it) }) + mResultLiveData.addSource(mListLiveData) { + sortGameOrder(it) + } } + private fun sortGameOrder(selectList: MutableList?) { + AppExecutor.ioExecutor.execute { + val sortedList = mutableListOf() + 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> { return RetrofitManager.getInstance(getApplication()).api.getAskGameSelect(HaloApp.getInstance().channel - , UrlFilterUtils.getFilterQuery("status", "opened"), page, 20) + , UrlFilterUtils.getFilterQuery("status", "opened"), page, 100) } } \ No newline at end of file