fix:【光环助手V5.11.0】多版本下载面板-求版本优化(0622测试1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1893

This commit is contained in:
leafwai
2022-06-23 17:46:34 +08:00
parent cc34fc3a29
commit ea0633e903
4 changed files with 29 additions and 4 deletions

View File

@ -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

View File

@ -336,7 +336,7 @@ public interface ApiService {
/**
* 获取投票 游戏求版本列表
*/
@GET("games/{game_id}/platform_requests")
@GET("games/elasticsearch/{game_id}/platform_requests")
Observable<List<VersionVoteEntity>> getVersionVote(@Path("game_id") String gameId, @Query("page") int page, @Query("keyword") String keyword);
/**

View File

@ -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<VersionVoteEntity>(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) {

View File

@ -84,6 +84,8 @@ class VoteFragment: ListFragment<VersionVoteEntity, VoteViewModel>() {
if (it) {
mUploadDialog.updateProgress(360) // 上传完APK就到100%
mUploadDialog.dismiss()
mAdapter.updateDataWhenUploadSuccess()
mApkUrl = ""
toast("上传成功,正在加急制作中~")
} else {
mUploadDialog.uploadFail()