diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt index dd6d739f6b..8e24c80a07 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt @@ -43,6 +43,7 @@ class GameCollectionEditActivity : ToolBarActivity() { private var mPatchCommitCount = 0 private var mActivityId = "" private var mActivityName = "" + private var mGameEntity: GameEntity? = null override fun getLayoutId(): Int = R.layout.activity_game_collection_edit @@ -70,14 +71,17 @@ class GameCollectionEditActivity : ToolBarActivity() { val gameId = intent.getStringExtra(EntranceConsts.KEY_GAMEID) ?: "" if (gameId.isNotEmpty()) { mViewModel.getGameDigest(gameId) { - mChooseGamesViewModel.chooseGamesLiveData.run { - if (it != null) { - val gamesList = ArrayList() - if (!value.isNullOrEmpty()) { - gamesList.addAll(value!!) + if (it != null) { + val gamesList = ArrayList() + val simpleGames = mViewModel.gameCollectionPatch?.games?.map { game -> game.toGameEntity() } + if (!simpleGames.isNullOrEmpty()) { + simpleGames.map { gameEntity -> + if (gameEntity.id == gameId) return@getGameDigest } - postValue(gamesList.apply { add(it) }) + gamesList.addAll(simpleGames) } + mGameEntity = it + mChooseGamesViewModel.chooseGamesLiveData.postValue(gamesList.apply { add(it) }) } } } @@ -248,7 +252,11 @@ class GameCollectionEditActivity : ToolBarActivity() { mViewModel.tags = tags ?: arrayListOf() initTagsUI(mViewModel.tags) val simpleGames = games?.map { game -> game.toGameEntity() } - mChooseGamesViewModel.chooseGamesLiveData.postValue(ArrayList(simpleGames)) + mChooseGamesViewModel.chooseGamesLiveData.postValue(ArrayList(simpleGames).apply { + if (mGameEntity != null) { + add(mGameEntity) + } + }) } if (!it.activityTags.isNullOrEmpty()) { if (mActivityId.isEmpty() && mActivityName.isEmpty()) {