diff --git a/app/src/main/java/com/gh/common/util/EntranceUtils.java b/app/src/main/java/com/gh/common/util/EntranceUtils.java index 1cdbcca290..cbfca1ebcf 100644 --- a/app/src/main/java/com/gh/common/util/EntranceUtils.java +++ b/app/src/main/java/com/gh/common/util/EntranceUtils.java @@ -277,6 +277,11 @@ public class EntranceUtils { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Object object = bundle.get(key); if (object instanceof Parcelable) { + if (object.toString().toLowerCase().contains("gameentity")) { + Utils.toast(HaloApp.getInstance().getApplication(), "暂不支持带游戏实体的页面保存捷径"); + return; + } + String parcelableName = key + ":parcelable"; String parcelableType = object.getClass().getName(); String objectJsonString = GsonUtils.toJson(object); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java index f7a6ec8d21..c18edffe57 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java @@ -60,6 +60,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; +import kotlin.text.StringsKt; import retrofit2.HttpException; /** @@ -282,7 +283,7 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { } else { viewHolder.thumb.displayGameIcon(mConcernEntity.getGameIcon(), null); } - viewHolder.title.setText(mConcernEntity.getGameName()); + viewHolder.title.setText(StringsKt.removeSuffix(mConcernEntity.getGameName(), ".")); NewsUtils.setNewsPublishOn(viewHolder.time, mConcernEntity.getTime()); viewHolder.share.setOnClickListener(v -> { diff --git a/app/src/main/java/com/gh/gamecenter/entity/AmwayCommentEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/AmwayCommentEntity.kt index deef73cac3..b20ead2e9c 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/AmwayCommentEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/AmwayCommentEntity.kt @@ -2,6 +2,7 @@ package com.gh.gamecenter.entity import android.os.Parcelable import com.google.gson.annotations.SerializedName +import kotlinx.android.parcel.IgnoredOnParcel import kotlinx.android.parcel.Parcelize @Parcelize @@ -21,11 +22,17 @@ data class AmwayCommentEntity( var rawIcon: String? = null, @SerializedName("icon_subscript") var iconSubscript: String? = "", - var name: String, - @SerializedName(value="new_tag_style") + @SerializedName("name") + private var mName: String, + @SerializedName(value = "new_tag_style") var tag: List? = arrayListOf(), var star: Float) : Parcelable { - fun toGameEntity() : GameEntity { + + @IgnoredOnParcel + val name: String? + get() = mName.removeSuffix(".") + + fun toGameEntity(): GameEntity { val gameEntity = GameEntity() gameEntity.id = id gameEntity.name = name diff --git a/app/src/main/java/com/gh/gamecenter/entity/ForumEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/ForumEntity.kt index 9c58d8a06e..c01948177a 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/ForumEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/ForumEntity.kt @@ -8,12 +8,14 @@ data class ForumEntity( @SerializedName("game_id") var gameId: String = "", @SerializedName("game_name") - var gameName: String = "", + var mGameName: String = "", @SerializedName("game_icon") var gameIcon: String = "", @SerializedName("is_follow") - var isFollow: Boolean = false -) + var isFollow: Boolean = false) { + val gameName: String? + get() = mGameName.removeSuffix(".") +} data class ForumCategoryEntity( @SerializedName("_id") diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt index cd4abceced..1d3754f974 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt @@ -584,7 +584,8 @@ data class GameEntity( data class SimpleGame( @SerializedName("_id") var id: String? = null, - var name: String? = "", + @SerializedName("name") + var mName: String? = "", @SerializedName("name_suffix") var nameSuffix: String? = null, @SerializedName("icon") @@ -593,6 +594,11 @@ data class SimpleGame( private var mRawIcon: String? = null, @SerializedName("icon_subscript") var iconSubscript: String? = null) : Parcelable { + + @IgnoredOnParcel + val name: String? + get() = mName?.removeSuffix(".") + fun getIcon(): String { return mRawIcon ?: mIcon ?: "" } diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescViewModel.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescViewModel.kt index 83886acaf8..e4589bb937 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescViewModel.kt @@ -269,6 +269,11 @@ class DescViewModel(application: Application, hasShownCustomColumnTagsExpandHint = true } + // 不存在缩起正文的自定义栏目默认全显示 + if (TextUtils.isEmpty(rawItem.customColumn?.desBrief) && rawItem.customColumn?.name != "游戏简介") { + rawItem.customColumn?.showDesType = "all" + } + // 将自定义栏目正文内容里低版本 android 系统不支持的 HTML Tag 转为手动处理 if (!TextUtils.isEmpty(rawItem.customColumn?.desBrief)) { rawItem.customColumn?.desFull = rawItem.customColumn?.desFull?.replaceUnsupportedHtmlTag() diff --git a/app/src/main/java/com/gh/gamecenter/info/ConcernAdapter.java b/app/src/main/java/com/gh/gamecenter/info/ConcernAdapter.java index 02e8e8b740..7880ec4f31 100644 --- a/app/src/main/java/com/gh/gamecenter/info/ConcernAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/info/ConcernAdapter.java @@ -51,6 +51,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.functions.Consumer; import io.reactivex.functions.Function; import io.reactivex.schedulers.Schedulers; +import kotlin.text.StringsKt; import retrofit2.HttpException; /** @@ -356,7 +357,7 @@ class ConcernAdapter extends BaseRecyclerAdapter { } else { viewHolder.thumb.displayGameIcon(concernEntity.getGameIcon(), null); } - viewHolder.title.setText(concernEntity.getGameName()); + viewHolder.title.setText(StringsKt.removeSuffix(concernEntity.getGameName(), ".")); NewsUtils.setNewsPublishOn(viewHolder.time, concernEntity.getTime()); if ("libao".equals(concernEntity.getType())) { diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java b/app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java index b49ab68dff..c2ef7f50a1 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java @@ -5,6 +5,9 @@ import android.content.Intent; import android.view.View; import android.widget.RelativeLayout; +import androidx.annotation.Nullable; +import androidx.fragment.app.FragmentActivity; + import com.gh.base.BaseActivity; import com.gh.base.BaseRecyclerViewHolder; import com.gh.base.OnListClickListener; @@ -40,8 +43,6 @@ import com.lightgame.utils.Utils; import java.util.ArrayList; import java.util.List; -import androidx.annotation.Nullable; -import androidx.fragment.app.FragmentActivity; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import retrofit2.HttpException; diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt b/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt index eb00cbbbb7..23ddb32723 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt @@ -73,7 +73,11 @@ open class SearchDefaultFragment : BaseFragment() { DirectUtils.directToLinkPage(requireContext(), mHotTagList!![it], "(搜索-$tagName)", "") // 不需要path }) - mHotSearchList = Config.getSettings()?.search?.hotSearch + mHotSearchList = Config.getSettings()?.search?.hotSearch?.apply { + for (hotSearch in this) { + hotSearch.name = hotSearch.name.removeSuffix(".") + } + } mBinding.isExistHotSearch = mHotSearchList?.isNotEmpty() mBinding.hotList.run { layoutManager = GridLayoutManager(context, 2)