From 101aa118551cc8821e95997f1ea571b385ebf442 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E5=AD=90=E7=BB=B4?= Date: Thu, 8 May 2025 16:26:55 +0800 Subject: [PATCH 1/9] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E8=A7=86=E9=A2=91=E4=B8=BB=E5=8A=A8?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E6=97=B6=E9=80=80=E5=87=BA=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=81=9C=E6=AD=A2=E6=92=AD=E6=94=BE=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gamecenter/gamedetail/detail/GameDetailFragment.kt | 3 ++- .../detail/adapter/GameDetailCoverAdapter.kt | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/detail/GameDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/detail/GameDetailFragment.kt index 99b3daff7c..9c73f7d44f 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/detail/GameDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/detail/GameDetailFragment.kt @@ -86,7 +86,8 @@ class GameDetailFragment : LazyFragment(), IScrollable { GameDetailCoverAdapter( requireContext(), this@GameDetailFragment, - viewModel + viewModel, + scrollCalculatorHelper ) { binding.coverSfv.isVisible = shouldShowCoverFilter && it } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/detail/adapter/GameDetailCoverAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/detail/adapter/GameDetailCoverAdapter.kt index 17102cb23d..40a9418bf6 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/detail/adapter/GameDetailCoverAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/detail/adapter/GameDetailCoverAdapter.kt @@ -23,6 +23,7 @@ import com.gh.gamecenter.databinding.ItemGameCoverVideoBinding import com.gh.gamecenter.gamedetail.GameDetailViewModel import com.gh.gamecenter.gamedetail.detail.GameDetailFragment import com.gh.gamecenter.gamedetail.entity.CoverEntity +import com.gh.gamecenter.gamedetail.video.GameDetailScrollCalculatorHelper import com.gh.gamecenter.gamedetail.video.TopVideoView import com.lightgame.adapter.BaseRecyclerAdapter import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder @@ -33,6 +34,7 @@ class GameDetailCoverAdapter( context: Context, private val fragment: GameDetailFragment, private val viewModel: GameDetailViewModel, + private val scrollCalculatorHelper: GameDetailScrollCalculatorHelper, private val showOrHideCoverFilter: ((Boolean) -> Unit) ) : BaseRecyclerAdapter(context) { @@ -108,6 +110,14 @@ class GameDetailCoverAdapter( .setAutoFullWithSize(true) .setDismissControlTime(5000) .setVideoAllCallBack(object : GSYSampleCallBack() { + override fun onClickStartIcon(url: String?, vararg objects: Any?) { + scrollCalculatorHelper.currentPlayer = holder.binding.player + } + + override fun onClickResume(url: String?, vararg objects: Any?) { + scrollCalculatorHelper.currentPlayer = holder.binding.player + } + override fun onQuitFullscreen(url: String?, vararg objects: Any) { orientationUtils.backToProtVideo() holder.binding.player.uploadVideoStreamingPlaying("退出全屏") From 065ebe32ed5488332de710a80c291c7f8b5bac8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E5=AD=90=E7=BB=B4?= Date: Thu, 8 May 2025 16:49:09 +0800 Subject: [PATCH 2/9] =?UTF-8?q?fix:=20=E8=AF=84=E8=AE=BA=E5=8C=BA=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7=E6=98=BE=E7=A4=BA=E4=BC=98=E5=8C=96-?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=20https://jira.shanqu.cc/browse/GHZ?= =?UTF-8?q?SCY-7951?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rating/RatingCommentItemViewHolder.kt | 6 ++-- .../RatingDetailCommentItemViewHolder.kt | 36 +++++++++++++++++-- app/src/main/res/drawable/ic_phone.xml | 14 ++++++++ app/src/main/res/drawable/ic_version.xml | 19 ++++++++++ .../layout/item_article_detail_comment.xml | 29 +++++++++------ .../main/res/layout/rating_comment_item.xml | 24 ++++++++----- .../src/main/res/layout/reuse_toolbar.xml | 1 + 7 files changed, 106 insertions(+), 23 deletions(-) create mode 100644 app/src/main/res/drawable/ic_phone.xml create mode 100644 app/src/main/res/drawable/ic_version.xml diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingCommentItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingCommentItemViewHolder.kt index 2b43ba4a00..ffb45ae168 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingCommentItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingCommentItemViewHolder.kt @@ -30,7 +30,9 @@ import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.common.view.CustomLinkMovementMethod import com.gh.gamecenter.common.view.DrawableView -import com.gh.gamecenter.core.utils.* +import com.gh.gamecenter.core.utils.CenterImageSpan +import com.gh.gamecenter.core.utils.NumberUtils +import com.gh.gamecenter.core.utils.SpanBuilder import com.gh.gamecenter.databinding.RatingCommentItemBinding import com.gh.gamecenter.entity.RatingComment import com.gh.gamecenter.feature.entity.GameEntity @@ -249,7 +251,7 @@ class RatingCommentItemViewHolder(val binding: RatingCommentItemBinding, val pat if (game.getApk().size > 0 && game.getApk()[0].version == commentData.gameVersion) { version.text = "当前版本" } else { - version.text = ("版本:" + commentData.gameVersion) + version.text = commentData.gameVersion } } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingDetailCommentItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingDetailCommentItemViewHolder.kt index f48c813e93..828160ef82 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingDetailCommentItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingDetailCommentItemViewHolder.kt @@ -7,6 +7,7 @@ import android.text.Spanned import android.text.TextPaint import android.text.method.LinkMovementMethod import android.text.style.ClickableSpan +import android.view.Gravity import android.view.LayoutInflater import android.view.View import android.widget.LinearLayout @@ -15,6 +16,7 @@ import android.widget.TextView import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.core.content.ContextCompat +import androidx.core.view.updateLayoutParams import com.gh.common.util.* import com.gh.common.util.NewFlatLogUtils import com.gh.common.util.NewLogUtils @@ -27,7 +29,8 @@ import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.common.utils.* import com.gh.gamecenter.common.view.DrawableView -import com.gh.gamecenter.core.utils.* +import com.gh.gamecenter.core.utils.NumberUtils +import com.gh.gamecenter.core.utils.SpanBuilder import com.gh.gamecenter.databinding.ItemArticleDetailCommentBinding import com.gh.gamecenter.entity.RatingComment import com.gh.gamecenter.gamedetail.rating.edit.RatingEditActivity @@ -165,7 +168,36 @@ class RatingDetailCommentItemViewHolder(val binding: ItemArticleDetailCommentBin if (game != null && game.getApk().size > 0 && game.getApk()[0].version == commentData.gameVersion) { version.text = "当前版本" } else { - version.text = ("版本:" + commentData.gameVersion) + version.text = commentData.gameVersion + } + version.buttonDrawable = R.drawable.ic_version.toDrawable(context) + version.post { + ConstraintSet().apply { + clone(bottomContainer) + if ((version.layout?.lineCount ?: 1) > 1) { + version.gravity = Gravity.TOP + connect(version.id, ConstraintSet.START, device.id, ConstraintSet.START) + connect(version.id, ConstraintSet.TOP, device.id, ConstraintSet.BOTTOM, 6F.dip2px()) + connect(version.id, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, 16F.dip2px()) + connect(device.id, ConstraintSet.BOTTOM, version.id, ConstraintSet.TOP) + connect(device.id, ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, 16F.dip2px()) + clear(device.id, ConstraintSet.END) + clear(likeCountTv.id, ConstraintSet.TOP) + connect(likeCountTv.id, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, 4F.dip2px()) + bottomContainer.updateLayoutParams { height = ConstraintLayout.LayoutParams.WRAP_CONTENT } + } else { + version.gravity = Gravity.CENTER_VERTICAL + connect(version.id, ConstraintSet.START, device.id, ConstraintSet.END) + connect(version.id, ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, 0) + connect(version.id, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, 0) + connect(device.id, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM) + connect(device.id, ConstraintSet.END, version.id, ConstraintSet.START) + connect(device.id, ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, 0) + connect(likeCountTv.id, ConstraintSet.TOP, timeTv.id, ConstraintSet.TOP, 0) + connect(likeCountTv.id, ConstraintSet.BOTTOM, timeTv.id, ConstraintSet.BOTTOM, 0) + bottomContainer.updateLayoutParams { height = 48F.dip2px() } + } + }.applyTo(bottomContainer) } if (commentData.me.isCommented) { diff --git a/app/src/main/res/drawable/ic_phone.xml b/app/src/main/res/drawable/ic_phone.xml new file mode 100644 index 0000000000..2489ee787c --- /dev/null +++ b/app/src/main/res/drawable/ic_phone.xml @@ -0,0 +1,14 @@ + + + + diff --git a/app/src/main/res/drawable/ic_version.xml b/app/src/main/res/drawable/ic_version.xml new file mode 100644 index 0000000000..96fe526557 --- /dev/null +++ b/app/src/main/res/drawable/ic_version.xml @@ -0,0 +1,19 @@ + + + + diff --git a/app/src/main/res/layout/item_article_detail_comment.xml b/app/src/main/res/layout/item_article_detail_comment.xml index ddc4efdac4..f5cb8f67c5 100644 --- a/app/src/main/res/layout/item_article_detail_comment.xml +++ b/app/src/main/res/layout/item_article_detail_comment.xml @@ -415,15 +415,16 @@ android:id="@+id/device" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:drawableLeft="@drawable/rating_phone_icon" - android:drawablePadding="4dp" + android:drawablePadding="2dp" android:ellipsize="end" android:gravity="center" + android:includeFontPadding="false" android:maxLines="1" - android:paddingRight="8dp" + android:paddingEnd="8dp" android:textColor="@color/text_tertiary" - android:textSize="10sp" + android:textSize="@dimen/tag_text_size" android:visibility="gone" + app:drawableStartCompat="@drawable/ic_phone" app:layout_constrainedWidth="true" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/version" @@ -433,19 +434,27 @@ app:layout_constraintTop_toTopOf="parent" tools:text="小米2S" /> - + app:layout_goneMarginStart="8dp" + tools:text="版本号" /> + app:layout_goneMarginStart="16dp" + tools:text="版本号版本号版本号版本号版本号版本号版本号版本号" /> From 764402b701f20bb0e7eeb41bdcfc411e2e993fad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E5=AD=90=E7=BB=B4?= Date: Thu, 8 May 2025 18:15:34 +0800 Subject: [PATCH 3/9] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E8=A7=86=E9=A2=91=E4=B8=BB=E5=8A=A8?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E6=97=B6=E9=80=80=E5=87=BA=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=81=9C=E6=AD=A2=E6=92=AD=E6=94=BE=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gamedetail/detail/adapter/GameDetailCoverAdapter.kt | 1 + .../java/com/gh/gamecenter/gamedetail/video/TopVideoView.kt | 2 ++ 2 files changed, 3 insertions(+) diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/detail/adapter/GameDetailCoverAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/detail/adapter/GameDetailCoverAdapter.kt index 40a9418bf6..313e5d68aa 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/detail/adapter/GameDetailCoverAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/detail/adapter/GameDetailCoverAdapter.kt @@ -127,6 +127,7 @@ class GameDetailCoverAdapter( holder.binding.player.viewModel = viewModel holder.binding.player.showOrHideCoverFilter = showOrHideCoverFilter + holder.binding.player.scrollCalculatorHelper = scrollCalculatorHelper holder.binding.player.video = topVideo holder.binding.player.updateThumb(topVideo.poster) diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/video/TopVideoView.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/video/TopVideoView.kt index 242b6ae965..9ec2815288 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/video/TopVideoView.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/video/TopVideoView.kt @@ -50,6 +50,7 @@ class TopVideoView @JvmOverloads constructor(context: Context, attrs: AttributeS private var mLastGetContentLengthTime = 0L var showOrHideCoverFilter: ((Boolean) -> Unit)? = null + var scrollCalculatorHelper: GameDetailScrollCalculatorHelper? = null init { post { @@ -256,6 +257,7 @@ class TopVideoView @JvmOverloads constructor(context: Context, attrs: AttributeS // 不需要弹弹窗,直接播放 override fun showWifiDialog() { + scrollCalculatorHelper?.currentPlayer = this startPlayLogic(false) //val trafficVideo = PreferenceManager.getDefaultSharedPreferences(context).getBoolean(SettingsFragment.TRAFFIC_VIDEO_SP_KEY, false) //if (trafficVideo) { From 1552a3e95d6c2a619cba0e60b75f20425f1eac9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=99=A8?= Date: Thu, 8 May 2025 14:15:54 +0800 Subject: [PATCH 4/9] =?UTF-8?q?fix:=E3=80=90=E5=85=89=E7=8E=AF=E5=8A=A9?= =?UTF-8?q?=E6=89=8B=E3=80=91V5.41.0=E7=89=88=E6=9C=AC=E5=87=BA=E5=8C=85-0?= =?UTF-8?q?5/08=E6=B5=8B=E8=AF=95-=E5=AE=A2=E6=88=B7=E7=AB=AF=20https://ji?= =?UTF-8?q?ra.shanqu.cc/browse/GHZSCY-7961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gh/common/util/DetailDownloadUtils.java | 2 ++ .../adapter/viewholder/DetailViewHolder.kt | 9 +++----- .../GameDetailAcceleratorUiHelper.kt | 21 ++++++++++++------- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java b/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java index c05fa421a0..472be7bb60 100644 --- a/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java +++ b/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java @@ -55,6 +55,8 @@ public class DetailDownloadUtils { } viewHolder.setSpeedViewsVisible(false); + // 默认为显示状态 + viewHolder.getDownloadPb().setVisibility(View.VISIBLE); // 根据预置的配置更新 ViewHolder 的状态 (譬如青少年模式、下载内容为空等) if (updateViewHolderWithPredefinedConfig(viewHolder, gameEntity)) { diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.kt b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.kt index 1d0725bd8a..9c04597c66 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.kt @@ -233,7 +233,6 @@ class DetailViewHolder( getDownloadBtnText(context, gameEntity, false, true, PluginLocation.only_game) when { localText.contains(com.gh.gamecenter.feature.R.string.update.toResString()) -> { // 本地游戏需要更新 - localDownloadButton?.goneIf(true) localDownloadContainer?.goneIf(true) downloadPb.goneIf(true) overlayTv?.goneIf(true) @@ -250,7 +249,6 @@ class DetailViewHolder( localText.contains(com.gh.gamecenter.feature.R.string.launch.toResString()) && downloadText == "更新" -> { // 畅玩游戏需要更新:显示 加速/更新 localDownloadContainer?.goneIf(true) - localDownloadButton?.goneIf(true) downloadPb.goneIf(true) overlayTv?.goneIf(true) @@ -263,7 +261,6 @@ class DetailViewHolder( } localText.contains(com.gh.gamecenter.feature.R.string.launch.toResString()) -> { // 本地游戏为启动状态:显示 加速/畅玩 - localDownloadButton?.goneIf(true) localDownloadContainer?.goneIf(true) downloadPb.goneIf(true) overlayTv?.goneIf(true) @@ -288,20 +285,20 @@ class DetailViewHolder( val downloadText = getDownloadBtnText(context, gameEntity, false, false, PluginLocation.only_game) when { downloadText.contains(com.gh.gamecenter.feature.R.string.launch.toResString()) -> { - localDownloadButton?.goneIf(true) localDownloadContainer?.goneIf(true) downloadPb.goneIf(true) true } - downloadText == com.gh.gamecenter.feature.R.string.launch.toResString() -> true + downloadText.contains(R.string.update.toResString()) -> true + else -> false } } else -> false } - it.checkIfShowSpeedUi(showSpeedUi) + it.checkIfShowSpeedUi(showSpeedUi, showDualDownloadButton) } } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/accelerator/GameDetailAcceleratorUiHelper.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/accelerator/GameDetailAcceleratorUiHelper.kt index aaa6ca106a..c0ee073bac 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/accelerator/GameDetailAcceleratorUiHelper.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/accelerator/GameDetailAcceleratorUiHelper.kt @@ -55,6 +55,8 @@ class GameDetailAcceleratorUiHelper(private val binding: DetailDownloadItemBindi private var hasAnyAcctRecord = false + private var showDualDownloadButton: Boolean = false + private val accelerationListener = object : OnAccelerateListener { override fun onStateChanged(state: AccelerateState) { when (state) { @@ -131,13 +133,17 @@ class GameDetailAcceleratorUiHelper(private val binding: DetailDownloadItemBindi val isCurrentGameAccelerating = AcceleratorDataHolder.instance.isCurrentGameAccelerating(game.id) - when { - isCurrentGameAccelerating -> {// 如果当前游戏正处于加速状态,则需要隐藏当前下载按钮 - binding.detailProgressbar.goneIf(true) - } + if (!showDualDownloadButton) { + when { + isCurrentGameAccelerating -> {// 如果当前游戏正处于加速状态,则需要隐藏当前下载按钮 + binding.detailProgressbar.goneIf(true) + } - binding.detailProgressbar.text == "更新" -> { // 游戏没有处于加速状态,如果 下载按钮为 “更新” 状态,则需要显示出来 - binding.detailProgressbar.goneIf(false) + binding.detailProgressbar.text == "更新" -> { // 游戏没有处于加速状态,如果 下载按钮为 “更新” 状态,则需要显示出来 + binding.detailProgressbar.setBackgroundResource(com.gh.gamecenter.common.R.drawable.bg_common_button_light_fill_blue) + binding.detailProgressbar.setTextColor(com.gh.gamecenter.common.R.color.text_theme.toColor(context)) + binding.detailProgressbar.goneIf(false) + } } } @@ -152,7 +158,8 @@ class GameDetailAcceleratorUiHelper(private val binding: DetailDownloadItemBindi } ?: R.string.network_acceleration.toResString() } - fun checkIfShowSpeedUi(show: Boolean) { + fun checkIfShowSpeedUi(show: Boolean, showDualDownloadButton: Boolean) { + this.showDualDownloadButton = showDualDownloadButton if (!isInit) { return } From 391eb64df130bf4455be45b06f6a5d5bde85f979 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=99=A8?= Date: Fri, 9 May 2025 11:16:32 +0800 Subject: [PATCH 5/9] fix:https://sentry.shanqu.cc/organizations/lightgame/issues/445867/?project=22... --- .../main/java/com/gh/gamecenter/login/user/UserRepository.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module_login/src/main/java/com/gh/gamecenter/login/user/UserRepository.java b/module_login/src/main/java/com/gh/gamecenter/login/user/UserRepository.java index cf7be197f1..0a01a0e0d6 100644 --- a/module_login/src/main/java/com/gh/gamecenter/login/user/UserRepository.java +++ b/module_login/src/main/java/com/gh/gamecenter/login/user/UserRepository.java @@ -662,7 +662,7 @@ public class UserRepository { String userInfo = mPreferences.getString(Constants.USER_INFO_KEY, null); if (!TextUtils.isEmpty(userInfo)) { UserInfoEntity infoEntity = GsonUtils.fromJson(userInfo, UserInfoEntity.class); - setAcceleratorToken(infoEntity.getUserId(), null); + setAcceleratorToken(infoEntity.getUserId(), () -> null); } } From 9bb20ca41fa3fe89abd45066c6ec1098321333c5 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Fri, 9 May 2025 18:36:59 +0800 Subject: [PATCH 6/9] =?UTF-8?q?hotfix:=20=E4=BF=AE=E5=A4=8D=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E9=A1=B5=E4=B8=8B=E8=BD=BD=E9=97=AA=E9=80=80=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/search/SearchGameResultAdapter.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameResultAdapter.kt b/app/src/main/java/com/gh/gamecenter/search/SearchGameResultAdapter.kt index 4f5b16ce25..338baa0b1f 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameResultAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameResultAdapter.kt @@ -527,7 +527,7 @@ class SearchGameResultAdapter( for (key in positionAndPackageMap.keys) { if (key.contains(download.packageName) && key.contains(download.gameId)) { val position = positionAndPackageMap[key] - if (position != null && getItemViewType(position) == ItemViewType.GAME_SUBJECT) { + if (position != null && position < itemCount && getItemViewType(position) == ItemViewType.GAME_SUBJECT) { val view = _recyclerView?.layoutManager?.findViewByPosition(position) val adapter = view?.findViewById(R.id.subjectRv)?.adapter if (adapter != null && adapter is SearchSubjectAdapter) { From b3ee742fafae12766de030acf0107dcfffab766b Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Fri, 9 May 2025 18:38:25 +0800 Subject: [PATCH 7/9] =?UTF-8?q?chore:=20=E7=89=88=E6=9C=AC=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=87=B3=205.41.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index ee599355c5..d1ef609b78 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 30 // 升级targetSdkVersion到 34 时需要根据官方文档补全前台服务的权限类型。比如 NDownloadService,KeepAliveService // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 1170 - versionName = "5.41.0" + versionCode = 1171 + versionName = "5.41.1" applicationId = "com.gh.gamecenter" applicationIdGat = "com.gh.gamecenter.intl" From 676e7a4d94b687c24397d62d7f15f2609750c1fe Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Tue, 13 May 2025 16:35:08 +0800 Subject: [PATCH 8/9] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E9=A1=B5=E9=85=8D=E7=BD=AE=E7=9A=84=E6=90=9C=E7=B4=A2=E4=B8=93?= =?UTF-8?q?=E9=A2=98=E6=97=A0=E6=B3=95=E6=AD=A3=E5=B8=B8=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/gamecenter/search/SearchGameResultViewModel.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameResultViewModel.kt b/app/src/main/java/com/gh/gamecenter/search/SearchGameResultViewModel.kt index a02ed3b19a..a828e395ac 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameResultViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameResultViewModel.kt @@ -97,9 +97,11 @@ class SearchGameResultViewModel( // 数据源来自于第三方的专题列表,包括 CPM 专题和 DSP 专题 val thirdPartySearchSubjectList = mutableListOf() - // 避免重复添加同一个 location 位置的专题 for (item in mutableList) { - if (!mSearchSubjects.any { it.location == item.location }) { + // 避免同一个位置重复的专题 + if (!mSearchSubjects.any { + it.location == item.location && it.columnId == item.columnId + }) { mSearchSubjects.add(item) } } From e4cf36d1b8576e694bb7f3d4e73770f7d565f70f Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Tue, 13 May 2025 16:35:34 +0800 Subject: [PATCH 9/9] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=BC=B9=E8=B5=B7=20DSP=20=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E5=BC=B9=E7=AA=97=E7=9A=84=E6=97=B6=E5=80=99?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gh/gamecenter/adapter/viewholder/DetailViewHolder.kt | 2 +- .../java/com/gh/gamecenter/common/utils/Extensions.kt | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.kt b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.kt index 9c04597c66..46118cf452 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.kt @@ -217,7 +217,7 @@ class DetailViewHolder( } private fun restoreDialogFragment() { - val gamePermissionDialogFragment = (context as AppCompatActivity).supportFragmentManager.findFragmentByTag( + val gamePermissionDialogFragment = (context.getActivity() as? AppCompatActivity)?.supportFragmentManager?.findFragmentByTag( GamePermissionDialogFragment::class.java.name ) as DialogFragment? gamePermissionDialogFragment?.dismissAllowingStateLoss() diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt index fa3a1cf51e..e80126a86d 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt @@ -6,6 +6,7 @@ import android.app.Activity import android.content.ClipData import android.content.ClipboardManager import android.content.Context +import android.content.ContextWrapper import android.content.res.Configuration import android.graphics.Bitmap import android.graphics.Canvas @@ -424,6 +425,13 @@ fun Context.ifLogin(entrance: String, action: (() -> Unit)? = null) { checkLoginConfig?.checkLogin(this, entrance, action) } +fun Context.getActivity(): Activity? { + return when (this) { + is Activity -> this + is ContextWrapper -> this.baseContext.getActivity() + else -> null + } +} /** * Gson related extensions.