diff --git a/app/src/main/java/com/gh/gamecenter/entity/MeEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/MeEntity.kt index 85b459cedf..6f3364fca1 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/MeEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/MeEntity.kt @@ -118,6 +118,9 @@ class MeEntity(@SerializedName("is_community_voted") @SerializedName("is_follow_bbs") var isFollowForum: Boolean = false, + + @SerializedName("request_version_apk_uploaded") + var requestsVersionApkUploaded: Boolean = false, ) : Parcelable @Parcelize diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java index ad25478be3..3700febd0d 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java @@ -336,7 +336,7 @@ public interface ApiService { /** * 获取投票 游戏求版本列表 */ - @GET("games/{game_id}/platform_requests") + @GET("games/elasticsearch/{game_id}/platform_requests") Observable> getVersionVote(@Path("game_id") String gameId, @Query("page") int page, @Query("keyword") String keyword); /** diff --git a/app/src/main/java/com/gh/gamecenter/vote/VoteAdapter.kt b/app/src/main/java/com/gh/gamecenter/vote/VoteAdapter.kt index 8e5c0efa9e..46c474409d 100644 --- a/app/src/main/java/com/gh/gamecenter/vote/VoteAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/vote/VoteAdapter.kt @@ -32,12 +32,14 @@ import com.gh.gamecenter.entity.MeEntity import com.gh.gamecenter.entity.VersionVoteEntity import com.gh.gamecenter.game.upload.GameUploadFragment import com.gh.gamecenter.suggest.SuggestSelectGameAdapter +import com.lightgame.utils.Utils import splitties.collections.forEachWithIndex class VoteAdapter(context: Context, private val fragment: VoteFragment, private val addVoteCallback: () -> Unit, private val voteCallback: (id: String?) -> Unit) : ListAdapter(context) { var mSelectGameDialog: Dialog? = null + var mUploadPosition = -1 //进度条原始最大宽度 private var mPbWidth = (DisplayUtils.getScreenWidth() - 144F.dip2px()).toFloat() @@ -87,7 +89,7 @@ class VoteAdapter(context: Context, private val fragment: VoteFragment, private val curSize = versionVoteEntity.num.toFloat() var width = curSize / maxSize * mPbWidth if (width < 1) width = 1F - layoutParams.width = width.toInt() + layoutParams.width = if (width > mPbWidth) mPbWidth.toInt() else width.toInt() } else { layoutParams.width = mPbWidth.toInt() } @@ -105,8 +107,16 @@ class VoteAdapter(context: Context, private val fragment: VoteFragment, private R.color.theme_font, false ) { - mContext.ifLogin("下载游戏-求版本-[去上传]") { - versionVoteEntity.id?.let { showSelectDialog(it) } + val isUserUploaded = versionVoteEntity.me?.requestsVersionApkUploaded ?: false + if (isUserUploaded) { + Utils.toast(mContext, "您已上传安装包,正在加急制作中~") + } else { + mContext.ifLogin("下载游戏-求版本-[去上传]") { + versionVoteEntity.id?.let { + mUploadPosition = position + showSelectDialog(it) + } + } } }.build() holder.binding.voteItemReply.movementMethod = CustomLinkMovementMethod.getInstance() @@ -201,6 +211,16 @@ class VoteAdapter(context: Context, private val fragment: VoteFragment, private return mEntityList } + fun updateDataWhenUploadSuccess() { + if (mUploadPosition != -1) { + if (mEntityList[mUploadPosition].me == null) { + mEntityList[mUploadPosition].me = MeEntity(requestsVersionApkUploaded = true) + } else { + mEntityList[mUploadPosition].me?.requestsVersionApkUploaded = true + } + } + } + fun updateHighLightView(versionVoteEntity: VersionVoteEntity, position: Int) { mEntityList.forEachWithIndex { index, entity -> if (entity.isHighLight) { diff --git a/app/src/main/java/com/gh/gamecenter/vote/VoteFragment.kt b/app/src/main/java/com/gh/gamecenter/vote/VoteFragment.kt index d648ae8d1c..7a52bd47e1 100644 --- a/app/src/main/java/com/gh/gamecenter/vote/VoteFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/vote/VoteFragment.kt @@ -84,6 +84,8 @@ class VoteFragment: ListFragment() { if (it) { mUploadDialog.updateProgress(360) // 上传完APK就到100% mUploadDialog.dismiss() + mAdapter.updateDataWhenUploadSuccess() + mApkUrl = "" toast("上传成功,正在加急制作中~") } else { mUploadDialog.uploadFail()