diff --git a/app/src/main/java/com/gh/common/constant/Constants.java b/app/src/main/java/com/gh/common/constant/Constants.java index 12c2c0ac51..c659d8e994 100644 --- a/app/src/main/java/com/gh/common/constant/Constants.java +++ b/app/src/main/java/com/gh/common/constant/Constants.java @@ -44,6 +44,10 @@ public class Constants { public static final String SP_LAST_OPENING_ID = "last_opening_dialog_id"; public static final String SP_LAST_OPENING_TIME = "last_opening_dialog_time"; + // 游戏图标和图标角标 + public static final String RAW_GAME_ICON = "raw_game_icon"; + public static final String GAME_ICON_SUBSCRIPT = "game_icon_subscript"; + // 新用户首次启动光环的时间 public static final String SP_INITIAL_USAGE_TIME = "initial_usage_time"; diff --git a/app/src/main/java/com/gh/common/util/Extensions.kt b/app/src/main/java/com/gh/common/util/Extensions.kt index baea8c6bfd..67a828f4fd 100644 --- a/app/src/main/java/com/gh/common/util/Extensions.kt +++ b/app/src/main/java/com/gh/common/util/Extensions.kt @@ -35,6 +35,7 @@ import com.gh.gamecenter.R import com.gh.gamecenter.WebActivity import com.google.gson.reflect.TypeToken import com.halo.assistant.HaloApp +import com.lightgame.download.DownloadEntity import com.lightgame.utils.Utils import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers @@ -581,6 +582,17 @@ fun SimpleDraweeView.display(url: String) { ImageUtils.display(this, url) } +/** + * DownloadEntity extension + */ +fun DownloadEntity.addMetaExtra(key: String, value: String?) { + value?.let { meta[key] = value } +} + +fun DownloadEntity.getMetaExtra(key: String) : String { + return meta[key] ?: "" +} + /** * Process related */ diff --git a/app/src/main/java/com/gh/common/view/GameIconView.kt b/app/src/main/java/com/gh/common/view/GameIconView.kt index 741b8b4572..29f06ffa8f 100644 --- a/app/src/main/java/com/gh/common/view/GameIconView.kt +++ b/app/src/main/java/com/gh/common/view/GameIconView.kt @@ -11,6 +11,7 @@ import com.gh.gamecenter.R import com.gh.gamecenter.entity.GameEntity import kotlinx.android.synthetic.main.layout_game_icon.view.* +// TODO 处理圆角问题 class GameIconView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : ConstraintLayout(context, attrs, defStyleAttr) { diff --git a/app/src/main/java/com/gh/download/DownloadManager.java b/app/src/main/java/com/gh/download/DownloadManager.java index 73288c8f3e..9160db3db1 100644 --- a/app/src/main/java/com/gh/download/DownloadManager.java +++ b/app/src/main/java/com/gh/download/DownloadManager.java @@ -13,6 +13,7 @@ import androidx.annotation.Nullable; import androidx.collection.ArrayMap; import com.gh.common.AppExecutor; +import com.gh.common.constant.Constants; import com.gh.common.exposure.ExposureEvent; import com.gh.common.exposure.ExposureUtils; import com.gh.common.history.HistoryHelper; @@ -20,6 +21,7 @@ import com.gh.common.util.AppDebugConfig; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DeviceUtils; import com.gh.common.util.DialogUtils; +import com.gh.common.util.ExtensionsKt; import com.gh.common.util.GdtHelper; import com.gh.common.util.HomePluggableHelper; import com.gh.common.util.NetworkUtils; @@ -250,6 +252,8 @@ public class DownloadManager implements DownloadStatusListener { downloadEntity.setEntrance(entrance); downloadEntity.setLocation(location); downloadEntity.setVersionName(apkEntity.getVersion()); + ExtensionsKt.addMetaExtra(downloadEntity, Constants.RAW_GAME_ICON, gameEntity.getRawIcon()); + ExtensionsKt.addMetaExtra(downloadEntity, Constants.GAME_ICON_SUBSCRIPT, gameEntity.getIconSubscript()); int installed = 0; for (ApkEntity apk : gameEntity.getApk()) { if (PackagesManager.INSTANCE.isInstalled(apk.getPackageName())) { diff --git a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java index 9d8e378bc4..7737d63e14 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java @@ -9,6 +9,10 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView.ViewHolder; + import com.gh.base.OnRequestCallBackListener; import com.gh.common.util.DisplayUtils; import com.gh.common.util.ImageUtils; @@ -38,9 +42,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; -import androidx.recyclerview.widget.RecyclerView.ViewHolder; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import retrofit2.HttpException; @@ -177,7 +178,12 @@ public class LibaoDetailAdapter extends BaseRecyclerAdapter { } }); - ImageUtils.display(holder.libaoGameIcon, mLibaoEntity.getIcon()); + if (mLibaoEntity.getGame() != null) { + ImageUtils.display(holder.libaoGameIcon.getIconIv(), mLibaoEntity.getGame().getIcon()); + ImageUtils.display(holder.libaoGameIcon.getIconDecoratorIv(), mLibaoEntity.getGame().getIconSubscript()); + } else { + ImageUtils.display(holder.libaoGameIcon.getIconIv(), mLibaoEntity.getIcon()); + } holder.libaoName.setText(mLibaoEntity.getName()); if (TextUtils.isEmpty(mLibaoEntity.getPlatform())) { holder.libaoGameName.setText(mLibaoEntity.getGame().getName()); 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 a667943135..d515c19f1a 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java @@ -9,7 +9,11 @@ import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView.ViewHolder; + import com.gh.common.constant.Config; +import com.gh.common.databind.BindingAdapters; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.CommentUtils; import com.gh.common.util.ConcernContentUtils; @@ -55,8 +59,6 @@ import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.atomic.AtomicBoolean; -import androidx.recyclerview.widget.RecyclerView; -import androidx.recyclerview.widget.RecyclerView.ViewHolder; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import retrofit2.HttpException; @@ -276,7 +278,12 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { mContext.getResources().getDisplayMetrics().widthPixels - DisplayUtils.dip2px(mContext, 34)); } - ImageUtils.display(viewHolder.thumb, mConcernEntity.getGameIcon()); + if (mConcernEntity.getGame() != null) { + ImageUtils.display(viewHolder.thumb.getIconIv(), mConcernEntity.getGame().getIcon()); + ImageUtils.display(viewHolder.thumb.getIconDecoratorIv(), mConcernEntity.getGame().getIconSubscript()); + } else { + ImageUtils.display(viewHolder.thumb.getIconIv(), mConcernEntity.getGameIcon()); + } viewHolder.title.setText(mConcernEntity.getGameName()); NewsUtils.setNewsPublishOn(viewHolder.time, mConcernEntity.getTime()); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java index efc0f1e21f..e210fdac5a 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameDownloadViewHolder.java @@ -5,8 +5,8 @@ import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; -import com.facebook.drawee.view.SimpleDraweeView; import com.gh.base.BaseRecyclerViewHolder; +import com.gh.common.view.GameIconView; import com.gh.gamecenter.R; import butterknife.BindView; @@ -17,7 +17,7 @@ import butterknife.BindView; public class GameDownloadViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.dm_item_iv_icon) - public SimpleDraweeView dmIcon; + public GameIconView dmIcon; @BindView(R.id.dm_item_tv_title) public TextView dmTitle; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java index 2635ab5c33..e93951a95d 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameUpdateViewHolder.java @@ -3,8 +3,8 @@ package com.gh.gamecenter.adapter.viewholder; import android.view.View; import android.widget.TextView; -import com.facebook.drawee.view.SimpleDraweeView; import com.gh.base.BaseRecyclerViewHolder; +import com.gh.common.view.GameIconView; import com.gh.gamecenter.R; import butterknife.BindView; @@ -15,7 +15,7 @@ import butterknife.BindView; public class GameUpdateViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.gu_item_iv_icon) - public SimpleDraweeView guIcon; + public GameIconView guIcon; @BindView(R.id.gu_item_tv_name) public TextView guName; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java index c4496497a0..2fab473bbb 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoDetailTopViewHolder.java @@ -1,11 +1,12 @@ package com.gh.gamecenter.adapter.viewholder; -import androidx.recyclerview.widget.RecyclerView; import android.view.View; import android.widget.TextView; -import com.facebook.drawee.view.SimpleDraweeView; +import androidx.recyclerview.widget.RecyclerView; + import com.gh.base.BaseRecyclerViewHolder; +import com.gh.common.view.GameIconView; import com.gh.gamecenter.R; import butterknife.BindView; @@ -24,7 +25,7 @@ public class LibaoDetailTopViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.libaodetail_copy_btn) public TextView libaoCopyBtn; @BindView(R.id.libaodetail_game_icon) - public SimpleDraweeView libaoGameIcon; + public GameIconView libaoGameIcon; @BindView(R.id.libaodetail_libaocode_rv) public RecyclerView libaoCodeRv; diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java index 63be19f404..19ab339a69 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/LibaoNormalViewHolder.java @@ -3,9 +3,9 @@ package com.gh.gamecenter.adapter.viewholder; import android.view.View; import android.widget.TextView; -import com.facebook.drawee.view.SimpleDraweeView; import com.gh.base.BaseRecyclerViewHolder; import com.gh.base.OnListClickListener; +import com.gh.common.view.GameIconView; import com.gh.gamecenter.R; import com.gh.gamecenter.entity.LibaoEntity; @@ -25,7 +25,7 @@ public class LibaoNormalViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.libao_btn_status) public TextView libaoBtnStatus; @BindView(R.id.libao_game_icon) - public SimpleDraweeView libaoGameIcon; + public GameIconView libaoGameIcon; public LibaoNormalViewHolder(View itemView) { super(itemView); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java index 895eafd8ed..bece5ea43b 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/NewsDigestViewHolder.java @@ -5,9 +5,9 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; -import com.facebook.drawee.view.SimpleDraweeView; import com.gh.base.BaseRecyclerViewHolder; import com.gh.base.OnListClickListener; +import com.gh.common.view.GameIconView; import com.gh.gamecenter.R; import com.gh.gamecenter.entity.ConcernEntity; @@ -20,7 +20,7 @@ import butterknife.BindView; public class NewsDigestViewHolder extends BaseRecyclerViewHolder { @BindView(R.id.news_digest_thumb) - public SimpleDraweeView thumb; + public GameIconView thumb; @BindView(R.id.news_digest_title) public TextView title; @BindView(R.id.news_digest_time) @@ -55,6 +55,6 @@ public class NewsDigestViewHolder extends BaseRecyclerViewHolder itemView.setOnClickListener(this); share.setOnClickListener(this); comment.setOnClickListener(this); - } + } diff --git a/app/src/main/java/com/gh/gamecenter/amway/AmwayAdapter.kt b/app/src/main/java/com/gh/gamecenter/amway/AmwayAdapter.kt index c0008924ce..b7e8136a08 100644 --- a/app/src/main/java/com/gh/gamecenter/amway/AmwayAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/amway/AmwayAdapter.kt @@ -191,6 +191,9 @@ class AmwayAdapter(context: Context, MtaHelper.onEvent("安利墙", "点击", "评论${blockPosition}_${amway.game.name}_游戏") } + ImageUtils.display(binding.gameIconView.getIconIv(), amway.game.rawIcon ?: amway.game.icon) + ImageUtils.display(binding.gameIconView.getIconDecoratorIv(), amway.game.iconSubscript) + amway.game.tag?.let { val tags = it.take(3) val tagString = StringBuilder() diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java index 5367a49fb1..e81a696180 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java @@ -14,8 +14,10 @@ import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView.ViewHolder; +import com.gh.common.constant.Constants; import com.gh.common.util.DataUtils; import com.gh.common.util.DialogUtils; +import com.gh.common.util.ExtensionsKt; import com.gh.common.util.ImageUtils; import com.gh.common.util.NetworkUtils; import com.gh.common.util.PackageInstaller; @@ -112,10 +114,15 @@ class GameDownloadFragmentAdapter extends BaseRecyclerAdapter { downloadEntity = downloadingList.get(position - doneList.size() - 2); } String icon = downloadEntity.getIcon(); + String rawIcon = ExtensionsKt.getMetaExtra(downloadEntity, Constants.RAW_GAME_ICON); if (!TextUtils.isEmpty(icon)) { - ImageUtils.display(viewHolder.dmIcon, icon); + if (!TextUtils.isEmpty(rawIcon)) { + icon = rawIcon; + ImageUtils.display(viewHolder.dmIcon.getIconDecoratorIv(), ExtensionsKt.getMetaExtra(downloadEntity, Constants.GAME_ICON_SUBSCRIPT)); + } + ImageUtils.display(viewHolder.dmIcon.getIconIv(), icon); } else { - ImageUtils.display(viewHolder.dmIcon, R.mipmap.logo); + ImageUtils.display(viewHolder.dmIcon.getIconIv(), R.mipmap.logo); } String downloadTitle; diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java index 7f3a805a1a..07eb934ccd 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java @@ -14,6 +14,8 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView.ViewHolder; import com.gh.common.AppExecutor; +import com.gh.common.constant.Constants; +import com.gh.common.databind.BindingAdapters; import com.gh.common.exposure.ExposureEvent; import com.gh.common.exposure.ExposureSource; import com.gh.common.exposure.ExposureType; @@ -24,6 +26,7 @@ import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; import com.gh.common.util.DialogUtils; +import com.gh.common.util.ExtensionsKt; import com.gh.common.util.GdtHelper; import com.gh.common.util.GsonUtils; import com.gh.common.util.ImageUtils; @@ -312,9 +315,9 @@ class GameUpdateFragmentAdapter extends BaseRecyclerAdapter implemen if (updateEntity.getName().contains("光环助手")) { - ImageUtils.display(viewHolder.guIcon, R.mipmap.logo); + ImageUtils.display(viewHolder.guIcon.getIconIv(), R.mipmap.logo); } else { - ImageUtils.display(viewHolder.guIcon, updateEntity.getIcon()); + BindingAdapters.setGame(viewHolder.guIcon, updateEntity.transformGameEntity()); } String name; @@ -513,6 +516,8 @@ class GameUpdateFragmentAdapter extends BaseRecyclerAdapter implemen downloadEntity.setPlatform(updateEntity.getPlatform()); downloadEntity.setPackageName(updateEntity.getPackageName()); downloadEntity.setVersionName(updateEntity.getVersion()); + ExtensionsKt.addMetaExtra(downloadEntity, Constants.RAW_GAME_ICON, updateEntity.getRawIcon()); + ExtensionsKt.addMetaExtra(downloadEntity, Constants.GAME_ICON_SUBSCRIPT, updateEntity.getIconSubscript()); String platform = PlatformUtils.getInstance(mContext) .getPlatformName(updateEntity.getPlatform()); diff --git a/app/src/main/java/com/gh/gamecenter/entity/CommunityEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/CommunityEntity.kt index af9c1a0997..0033aa4117 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/CommunityEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/CommunityEntity.kt @@ -10,7 +10,10 @@ data class CommunityEntity( var id: String = "", var name: String = "", var refreshSort: String = "choiceness", // choiceness/time - var icon: String? = "" + @SerializedName("icon", alternate = ["ori_icon"]) + var icon: String? = "", + @SerializedName("icon_subscript") + var iconSubscript: String? = null ) : Parcelable { constructor(id: String = "", name: String = "") : this(id, name, "choiceness") diff --git a/app/src/main/java/com/gh/gamecenter/entity/ConcernEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/ConcernEntity.kt index d2ca8519af..2dfb722929 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/ConcernEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/ConcernEntity.kt @@ -18,6 +18,8 @@ class ConcernEntity() :Parcelable { @SerializedName("game_icon") var gameIcon: String? = null + var game: SimpleGame? = null + var title: String? = null var content: String? = null 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 22da2c0cdc..cdf2f5ca1a 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt @@ -5,7 +5,6 @@ import com.gh.common.constant.Config import com.gh.common.constant.Constants import com.gh.common.exposure.ExposureEvent import com.gh.common.filter.RegionSettingHelper -import com.gh.common.util.EntranceUtils import com.gh.gamecenter.R import com.gh.gamecenter.game.data.GameSubjectData import com.gh.gamecenter.gamedetail.entity.ZoneEntity @@ -569,3 +568,29 @@ data class GameEntity( @SerializedName("marked_red") val markedRed: Boolean = false) : Parcelable } + +@Parcelize +data class SimpleGame( + @SerializedName("_id") + var id: String? = null, + var name: String? = null, + @SerializedName("name_suffix") + var nameSuffix: String? = null, + private var mIcon: String? = null, + @SerializedName("ori_icon") + private var mRawIcon: String? = null, + @SerializedName("icon_subscript") + var iconSubscript: String? = null) : Parcelable { + fun getIcon(): String { + return mRawIcon ?: mIcon ?: "" + } + + fun toGameEntity() : GameEntity { + val gameEntity = GameEntity(id = id, name = name) + gameEntity.nameSuffix = nameSuffix ?: "" + gameEntity.icon = mIcon + gameEntity.rawIcon = mRawIcon + gameEntity.iconSubscript = iconSubscript + return gameEntity + } +} diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameInstall.kt b/app/src/main/java/com/gh/gamecenter/entity/GameInstall.kt index ba996b8f5a..eee109902c 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameInstall.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/GameInstall.kt @@ -10,6 +10,7 @@ data class GameInstall( var packageName: String = "", var name: String? = "", var icon: String? = "", + var iconSubScript: String? = "", var isSignature: Boolean = false, var installTime: Long = 0, var version: String = "", @@ -23,7 +24,8 @@ data class GameInstall( gameInstall.installTime = PackageUtils.getInstalledTime(application, installedPkgName) gameInstall.id = game.id gameInstall.name = game.name - gameInstall.icon = game.icon + gameInstall.icon = game.rawIcon ?: game.icon + gameInstall.iconSubScript = game.iconSubscript gameInstall.version = PackageUtils.getVersionByPackage(installedPkgName) gameInstall.packageName = installedPkgName return gameInstall diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameVideoInfo.kt b/app/src/main/java/com/gh/gamecenter/entity/GameVideoInfo.kt index 27ad076b7c..21f021afb4 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameVideoInfo.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/GameVideoInfo.kt @@ -2,11 +2,13 @@ package com.gh.gamecenter.entity import com.google.gson.annotations.SerializedName -data class GameVideoInfo(@SerializedName("game_name") - val gameName: String = "", - @SerializedName("game_icon") - val gameIcon: String = "", - @SerializedName("video_count") - val videoCount: Int = 0, - @SerializedName("vote_count") - val likeCount: Int = 0) \ No newline at end of file +data class GameVideoInfo( + var game: SimpleGame? = null, + @SerializedName("game_name") + val gameName: String = "", + @SerializedName("game_icon") + val gameIcon: String = "", + @SerializedName("video_count") + val videoCount: Int = 0, + @SerializedName("vote_count") + val likeCount: Int = 0) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/entity/LibaoEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/LibaoEntity.kt index ad4923d009..65ed1f958f 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/LibaoEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/LibaoEntity.kt @@ -12,8 +12,8 @@ data class LibaoEntity( @SerializedName(value = "_id", alternate = arrayOf("libao_id")) var id: String? = null, var content: String? = null, - var game: LibaoGameEntity? = null, - var icon: String? = null, + var game: SimpleGame? = null, + private var icon: String? = null, var name: String? = null, var des: String? = null, //使用说明 var platform: String? = null, @@ -32,12 +32,27 @@ data class LibaoEntity( @SerializedName("me") var me: MeEntity? = null) : Parcelable { + fun getIcon(): String { + return if (game != null) { + game!!.getIcon() + } else { + icon ?: "" + } + } + + fun getIconSubscript(): String? { + return if (game != null) { + game!!.iconSubscript + } else { + null + } + } + // 不改变原有的内存地址 用于更新外部列表页面 fun resetLibaoEntity(entity: LibaoEntity) { this.id = entity.id this.content = entity.content this.game = entity.game - this.icon = entity.icon this.name = entity.name this.des = entity.des this.platform = entity.platform @@ -51,7 +66,6 @@ data class LibaoEntity( this.time = entity.time this.repeat = entity.repeat this.me = entity.me - } companion object { @@ -62,7 +76,7 @@ data class LibaoEntity( val libaoEntity = LibaoEntity() libaoEntity.id = concernEntity.id libaoEntity.content = concernEntity.content - libaoEntity.game = LibaoGameEntity(concernEntity.gameId!!, concernEntity.gameName!!) + libaoEntity.game = SimpleGame(id = concernEntity.gameId!!, name = concernEntity.gameName!!) libaoEntity.icon = concernEntity.gameIcon libaoEntity.name = concernEntity.name libaoEntity.platform = concernEntity.platform diff --git a/app/src/main/java/com/gh/gamecenter/entity/LibaoGameEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/LibaoGameEntity.kt deleted file mode 100644 index 4bbc84166e..0000000000 --- a/app/src/main/java/com/gh/gamecenter/entity/LibaoGameEntity.kt +++ /dev/null @@ -1,52 +0,0 @@ -package com.gh.gamecenter.entity - -import android.os.Parcel -import android.os.Parcelable - -import com.google.gson.annotations.SerializedName - -/** - * Created by khy on 2016/12/14. - */ -class LibaoGameEntity : Parcelable { - - @SerializedName("_id") - var id: String? = null - - var name: String? = null - - constructor() - - constructor(id: String, name: String) { - this.id = id - this.name = name - } - - - override fun describeContents(): Int { - return 0 - } - - override fun writeToParcel(dest: Parcel, flags: Int) { - dest.writeString(this.id) - dest.writeString(this.name) - } - - protected constructor(`in`: Parcel) { - this.id = `in`.readString() - this.name = `in`.readString() - } - - companion object { - - @JvmField val CREATOR: Parcelable.Creator = object : Parcelable.Creator { - override fun createFromParcel(source: Parcel): LibaoGameEntity { - return LibaoGameEntity(source) - } - - override fun newArray(size: Int): Array { - return arrayOfNulls(size) - } - } - } -} diff --git a/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt index 0055187bcd..29d727cf13 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/MessageEntity.kt @@ -31,7 +31,7 @@ class MessageEntity { @SerializedName("user") var userEntity: UserEntity = UserEntity() - var game: Game = Game() + var game: SimpleGame = SimpleGame() var video: Video = Video() @@ -168,16 +168,6 @@ class MessageEntity { var content: String? = null } - - class Game { - @SerializedName("_id") - var id: String? = null - - var icon: String? = null - - var name: String? = null - } - class Video { @SerializedName("_id") var id: String? = null diff --git a/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt index 018ca4077c..e31546a190 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/PersonalHistoryEntity.kt @@ -77,7 +77,12 @@ data class PersonalHistoryEntity( @SerializedName(value = "new_tag_style") val tag: ArrayList = ArrayList(), val star: Float = 0F, - val active: Boolean = true//游戏是否被隐藏 false被隐藏 + val active: Boolean = true, //游戏是否被隐藏 false被隐藏 + + @SerializedName("ori_icon") + var rawIcon: String? = null, + @SerializedName("icon_subscript") + var iconSubscript: String? = null ) : Parcelable { @IgnoredOnParcel var name: String @@ -85,6 +90,10 @@ data class PersonalHistoryEntity( set(value) { mName = value } + + fun getRawIconIfExisted() : String { + return rawIcon ?: icon + } } diff --git a/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt index 32f35f6c40..d34416331d 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt @@ -149,7 +149,11 @@ data class SettingsEntity( @SerializedName("_id") var id: String, var name: String, - val icon: String) + val icon: String, + @SerializedName("ori_icon") + var rawIcon: String? = null, + @SerializedName("icon_subscript") + var iconSubscript: String? = null) data class Appointment( @SerializedName("with_mobile") diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingAdapter.kt index 6bff294fe7..9d08a19c2c 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/myrating/MyRatingAdapter.kt @@ -6,6 +6,7 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.gh.common.constant.ItemViewType +import com.gh.common.databind.BindingAdapters import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder @@ -50,6 +51,10 @@ class MyRatingAdapter(context: Context, holder.itemView.tv_comment.setExpandMaxLines(maxDesLines) holder.itemView.tv_comment.setIsExpanded(Int.MAX_VALUE == maxDesLines) + ImageUtils.display(holder.binding.gameIcon.getIconIv(), rating.game.getRawIconIfExisted()) + ImageUtils.display(holder.binding.gameIcon.getIconDecoratorIv(), rating.game.iconSubscript) + BindingAdapters.setCornerRadius(holder.binding.gameIcon, 10) + val m = Pattern.compile(RatingEditActivity.LABEL_REGEX).matcher(rating.content) if (m.find()) { val contents = TextHelper.getCommentLabelSpannableStringBuilder(rating.content, R.color.theme_font) 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 2d250ad2fb..0903a6c1b7 100644 --- a/app/src/main/java/com/gh/gamecenter/info/ConcernAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/info/ConcernAdapter.java @@ -1,16 +1,18 @@ package com.gh.gamecenter.info; import android.content.Context; -import androidx.recyclerview.widget.RecyclerView; -import androidx.recyclerview.widget.RecyclerView.ViewHolder; import android.text.Html; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView.ViewHolder; + import com.gh.base.OnListClickListener; import com.gh.base.OnRequestCallBackListener; import com.gh.common.constant.ItemViewType; +import com.gh.common.databind.BindingAdapters; import com.gh.common.util.ConcernContentUtils; import com.gh.common.util.DisplayUtils; import com.gh.common.util.ImageUtils; @@ -351,7 +353,13 @@ class ConcernAdapter extends BaseRecyclerAdapter { final ConcernEntity concernEntity = concernList.get(position); viewHolder.setClickData(concernEntity); - ImageUtils.display(viewHolder.thumb, concernEntity.getGameIcon()); + BindingAdapters.setCornerRadius(viewHolder.thumb, 10); + if (concernEntity.getGame() != null) { + ImageUtils.display(viewHolder.thumb.getIconIv(), concernEntity.getGame().getIcon()); + ImageUtils.display(viewHolder.thumb.getIconDecoratorIv(), concernEntity.getGame().getIconSubscript()); + } else { + ImageUtils.display(viewHolder.thumb.getIconIv(), concernEntity.getGameIcon()); + } viewHolder.title.setText(concernEntity.getGameName()); NewsUtils.setNewsPublishOn(viewHolder.time, concernEntity.getTime()); diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java index 324698050a..89647d0cf0 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java @@ -1,12 +1,13 @@ package com.gh.gamecenter.libao; import android.content.Context; -import androidx.recyclerview.widget.RecyclerView; -import androidx.recyclerview.widget.RecyclerView.ViewHolder; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView.ViewHolder; + import com.gh.base.OnListClickListener; import com.gh.base.OnRequestCallBackListener; import com.gh.common.constant.ItemViewType; @@ -209,7 +210,8 @@ class Libao2FragmentAdapter extends BaseRecyclerAdapter { LibaoEntity libaoEntity = mLibaoList.get(position - 1); holder.setClickData(libaoEntity); holder.libaoName.setText(libaoEntity.getName()); - ImageUtils.display(holder.libaoGameIcon, libaoEntity.getIcon()); + ImageUtils.display(holder.libaoGameIcon.getIconIv(), libaoEntity.getIcon()); + ImageUtils.display(holder.libaoGameIcon.getIconDecoratorIv(), libaoEntity.getIconSubscript()); if (TextUtils.isEmpty(libaoEntity.getPlatform())) { holder.libaoGameName.setText(libaoEntity.getGame().getName()); } else { diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java index e07633eef9..7b9238eb6d 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java @@ -192,7 +192,8 @@ class Libao3FragmentAdapter extends BaseRecyclerAdapter final LibaoEntity libaoEntity = mLibaoList.get(position); holder.libaoName.setText(libaoEntity.getName()); - ImageUtils.display(holder.libaoGameIcon, libaoEntity.getIcon()); + ImageUtils.display(holder.libaoGameIcon.getIconIv(), libaoEntity.getIcon()); + ImageUtils.display(holder.libaoGameIcon.getIconDecoratorIv(), libaoEntity.getIconSubscript()); if (TextUtils.isEmpty(libaoEntity.getPlatform())) { holder.libaoGameName.setText(libaoEntity.getGame().getName()); diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java index 2352a1dac4..555104202f 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java @@ -6,6 +6,10 @@ import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView.ViewHolder; + import com.gh.base.OnRequestCallBackListener; import com.gh.common.constant.ItemViewType; import com.gh.common.util.DisplayUtils; @@ -25,9 +29,6 @@ import com.lightgame.adapter.BaseRecyclerAdapter; import java.util.ArrayList; import java.util.List; -import androidx.core.content.ContextCompat; -import androidx.recyclerview.widget.RecyclerView; -import androidx.recyclerview.widget.RecyclerView.ViewHolder; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.functions.Function; import io.reactivex.schedulers.Schedulers; @@ -157,7 +158,8 @@ public class LibaoHistoryAdapter extends BaseRecyclerAdapter { viewHolder.libaoName.setText(libaoEntity.getName()); viewHolder.libaoDes.setText(libaoEntity.getContent()); viewHolder.libaoGameName.setText(libaoEntity.getGame().getName()); - ImageUtils.display(viewHolder.libaoGameIcon, libaoEntity.getIcon()); + ImageUtils.display(viewHolder.libaoGameIcon.getIconIv(), libaoEntity.getIcon()); + ImageUtils.display(viewHolder.libaoGameIcon.getIconDecoratorIv(), libaoEntity.getIconSubscript()); //领取状态 LibaoUtils.setLiBaoBtnStatusRound(viewHolder.libaoBtnStatus diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoNewAdapter.kt b/app/src/main/java/com/gh/gamecenter/libao/LibaoNewAdapter.kt index 04abcd4098..221e749a65 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoNewAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoNewAdapter.kt @@ -1,7 +1,6 @@ package com.gh.gamecenter.libao import android.content.Context -import androidx.recyclerview.widget.RecyclerView import android.text.TextUtils import android.view.View import android.view.ViewGroup @@ -192,7 +191,8 @@ class LibaoNewAdapter(context: Context, callBackListener: OnRequestCallBackListe holder.libaoGameName.text = StringUtils.buildString(libaoEntity.game?.name, " - ", PlatformUtils.getInstance(mContext) .getPlatformName(libaoEntity.platform)) } - ImageUtils.display(holder.libaoGameIcon, libaoEntity.icon!!) + ImageUtils.display(holder.libaoGameIcon.getIconIv(), libaoEntity.getIcon()) + ImageUtils.display(holder.libaoGameIcon.getIconDecoratorIv(), libaoEntity.getIconSubscript()) val content: String if (libaoEntity.content!!.contains("
")) { diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchAdapter.kt b/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchAdapter.kt index 4ca580bf8c..84659ab880 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchAdapter.kt @@ -204,7 +204,8 @@ class LibaoSearchAdapter(fragment: LibaoSearchFragment, holder.libaoGameName.text = StringUtils.buildString(libaoEntity.game?.name, " - ", PlatformUtils.getInstance(mContext) .getPlatformName(libaoEntity.platform)) } - ImageUtils.display(holder.libaoGameIcon, libaoEntity.icon!!) + ImageUtils.display(holder.libaoGameIcon.getIconIv(), libaoEntity.getIcon()) + ImageUtils.display(holder.libaoGameIcon.getIconDecoratorIv(), libaoEntity.getIconSubscript()) val content: String if (libaoEntity.content!!.contains("
")) { diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/InstalledGameAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/InstalledGameAdapter.kt index 267d788b0b..63d3c92ff0 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/InstalledGameAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/InstalledGameAdapter.kt @@ -12,7 +12,6 @@ import kotlinx.android.synthetic.main.dialog_select_game_item.view.* class InstalledGameAdapter(mContext: Context, val games: ArrayList) : BaseRecyclerAdapter(mContext) { - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { val view = View.inflate(mContext, R.layout.dialog_select_game_item, null) return object : RecyclerView.ViewHolder(view) {} @@ -23,7 +22,8 @@ class InstalledGameAdapter(mContext: Context, val games: ArrayList) override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { val gameInstall = games[position] holder.itemView.apply { - ImageUtils.display(game_icon, gameInstall.icon) + ImageUtils.display(game_icon.getIconIv(), gameInstall.icon) + ImageUtils.display(game_icon.getIconDecoratorIv(), gameInstall.iconSubScript) game_name.text = gameInstall.name } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/CommunityFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/CommunityFragment.kt index d9997ef90a..ef002dbee1 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/CommunityFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/CommunityFragment.kt @@ -20,10 +20,11 @@ import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders import androidx.viewpager.widget.PagerAdapter import butterknife.OnClick -import com.facebook.drawee.view.SimpleDraweeView import com.gh.base.fragment.BaseLazyTabFragment +import com.gh.common.databind.BindingAdapters import com.gh.common.dialog.TrackableDialog import com.gh.common.util.* +import com.gh.common.view.GameIconView import com.gh.gamecenter.R import com.gh.gamecenter.entity.ResultEntity import com.gh.gamecenter.eventbus.EBReuse @@ -50,7 +51,7 @@ import org.greenrobot.eventbus.ThreadMode class CommunityFragment : BaseLazyTabFragment() { - private val mAskSelectCommunity by bindView(R.id.community_icon) + private val mAskSelectCommunity by bindView(R.id.community_icon) private val mNoConn by bindView(R.id.reuse_no_connection) private val mTabBarContainer by bindView(R.id.fragment_tab_container) private val mLoading by bindView(R.id.reuse_ll_loading) @@ -130,7 +131,9 @@ class CommunityFragment : BaseLazyTabFragment() { || (!status.isActive && !channel.contains("TEST"))) { showCommunitySelectFragment() } else { - ImageUtils.displayIcon(mAskSelectCommunity, UserManager.getInstance().community.icon) + ImageUtils.display(mAskSelectCommunity.getIconIv(), UserManager.getInstance().community.icon) + ImageUtils.display(mAskSelectCommunity.getIconDecoratorIv(), UserManager.getInstance().community.iconSubscript) + BindingAdapters.setCornerRadius(mAskSelectCommunity, 4) showAvailableInfo() mViewPager.currentItem = INDEX_RECOMMEND @@ -294,7 +297,6 @@ class CommunityFragment : BaseLazyTabFragment() { // 社区没有被隐藏,正常显示社区信息 private fun showAvailableInfo() { - ImageUtils.displayIcon(mAskSelectCommunity, UserManager.getInstance().community.icon) mTabBarContainer.visibility = View.VISIBLE mViewPager.visibility = View.VISIBLE mCommunitiesSelectContainer.visibility = View.GONE diff --git a/app/src/main/java/com/gh/gamecenter/qa/CommunityViewModel.kt b/app/src/main/java/com/gh/gamecenter/qa/CommunityViewModel.kt index 22c95dfdbd..6756d49815 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/CommunityViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/CommunityViewModel.kt @@ -73,7 +73,8 @@ class CommunityViewModel(application: Application) : AndroidViewModel(applicatio override fun onResponse(response: CommunitySelectEntity?) { val community = UserManager.getInstance().community if (community.icon.isNullOrEmpty()) { - community.icon = response?.game?.icon + community.icon = response?.game?.getRawIconIfExisted() + community.iconSubscript = response?.game?.iconSubscript UserManager.getInstance().setCommunityData(community) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/entity/CommunitiesGameEntity.kt b/app/src/main/java/com/gh/gamecenter/qa/entity/CommunitiesGameEntity.kt index fe342e9c7d..b779252285 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/entity/CommunitiesGameEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/entity/CommunitiesGameEntity.kt @@ -16,4 +16,14 @@ class CommunitiesGameEntity { var relation: ArrayList = arrayListOf() + @SerializedName("ori_icon") + var rawIcon: String? = null + + @SerializedName("icon_subscript") + var iconSubscript: String? = null + + fun getRawIconIfExisted() : String { + return rawIcon ?: icon ?: "" + } + } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/OpenedAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/select/OpenedAdapter.kt index e96df543d7..3043e4ce6f 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/select/OpenedAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/select/OpenedAdapter.kt @@ -2,7 +2,6 @@ package com.gh.gamecenter.qa.select import android.app.Activity import android.content.Context -import androidx.core.content.ContextCompat import android.view.Gravity import android.view.View import android.view.ViewGroup @@ -10,10 +9,12 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet -import com.facebook.drawee.view.SimpleDraweeView +import androidx.core.content.ContextCompat import com.gh.common.constant.ItemViewType +import com.gh.common.util.ImageUtils import com.gh.common.util.dip2px import com.gh.common.util.toColor +import com.gh.common.view.GameIconView import com.gh.gamecenter.R import com.gh.gamecenter.adapter.viewholder.FooterViewHolder import com.gh.gamecenter.baselist.ListAdapter @@ -131,6 +132,12 @@ class OpenedAdapter(context: Context, val mListViewModel: OpenedViewModel) : Lis holder.bind.isSelectLeft = isSelectLeft holder.bind.isSelectRight = isSelectRight + ImageUtils.display(holder.bind.gameIconLeft.getIconIv(), entity.leftData?.game?.getRawIconIfExisted()) + ImageUtils.display(holder.bind.gameIconLeft.getIconDecoratorIv(), entity.leftData?.game?.iconSubscript) + + ImageUtils.display(holder.bind.gameIconRight.getIconIv(), entity.rightData?.game?.getRawIconIfExisted()) + ImageUtils.display(holder.bind.gameIconRight.getIconDecoratorIv(), entity.rightData?.game?.iconSubscript) + if (isSelectLeft) { holder.bind.communityNameLeft.setTextColor(R.color.theme_font.toColor()) } else { @@ -167,7 +174,7 @@ class OpenedAdapter(context: Context, val mListViewModel: OpenedViewModel) : Lis private fun resetSelectStatus(container: ConstraintLayout, status: TextView, name: TextView, - icon: SimpleDraweeView, + icon: GameIconView, offset: Float) { if (offset == -1F && name.lineCount == 1) { val constraintSet = ConstraintSet() @@ -196,7 +203,7 @@ class OpenedAdapter(context: Context, val mListViewModel: OpenedViewModel) : Lis } private fun handelClick(entity: CommunitySelectEntity) { - UserManager.getInstance().setCommunityData(CommunityEntity(entity.id, entity.name, entity.refreshSort, entity.game.icon)) + UserManager.getInstance().setCommunityData(CommunityEntity(entity.id, entity.name, entity.refreshSort, entity.game.getRawIconIfExisted(), entity.game.iconSubscript)) if (mContext is CommunitiesSelectActivity && UserManager.getInstance().community.id.isNotEmpty()) { (mContext as Activity).setResult(Activity.RESULT_OK) (mContext as Activity).finish() diff --git a/app/src/main/java/com/gh/gamecenter/qa/select/SelectGameDialogAdapter.java b/app/src/main/java/com/gh/gamecenter/qa/select/SelectGameDialogAdapter.java index 45fa074829..e38f73c927 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/select/SelectGameDialogAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/qa/select/SelectGameDialogAdapter.java @@ -171,11 +171,12 @@ public class SelectGameDialogAdapter extends BaseRecyclerAdapter { diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt b/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt index 9ef7199717..d3d826639f 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt @@ -16,12 +16,11 @@ import android.widget.ImageView import android.widget.RelativeLayout import android.widget.SeekBar import androidx.appcompat.app.AppCompatActivity -import androidx.core.app.ActivityCompat -import androidx.core.app.ActivityOptionsCompat import androidx.core.content.ContextCompat import com.airbnb.lottie.LottieAnimationView import com.gh.common.AppExecutor import com.gh.common.constant.Constants +import com.gh.common.databind.BindingAdapters import com.gh.common.observer.MuteCallback import com.gh.common.observer.VolumeObserver import com.gh.common.runOnIoThread @@ -190,7 +189,9 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib likeCountTv.text = videoEntity.vote.toString() commentCountTv.text = videoEntity.commentCount.toString() - ImageUtils.display(gameIconIv, videoEntity.gameIcon) + ImageUtils.display(gameIconView.getIconIv(), videoEntity.game?.rawIcon ?: videoEntity.gameIcon) + ImageUtils.display(gameIconView.getIconDecoratorIv(), videoEntity.game?.iconSubscript) + BindingAdapters.setCornerRadius(gameIconView, 10) ImageUtils.display(userIconIv, videoEntity.user.icon) usernameTv.setOnClickListener { @@ -218,7 +219,7 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib } } - gameIconIv.setOnClickListener { + gameIconView.setOnClickListener { recordMta("查看游戏") MtaHelper.onEvent("视频详情", "查看游戏", mCombinedTitleAndId) uploadVideoStreamingPlaying("点击游戏图标") diff --git a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoActivity.kt b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoActivity.kt index 3c41264649..f8da8d1120 100644 --- a/app/src/main/java/com/gh/gamecenter/video/game/GameVideoActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/video/game/GameVideoActivity.kt @@ -66,10 +66,11 @@ class GameVideoActivity : ToolBarActivity() { mViewModel = ViewModelProviders.of(this, factory).get(GameVideoViewModel::class.java) mViewModel.gameViewInfo.observeNonNull(this, callback = { if (it.status == Status.SUCCESS) { - ImageUtils.displayIcon(mBinding.gameIcon, it.data!!.gameIcon) - mBinding.gameName.text = it.data.gameName - mBinding.likeCount.text = NumberUtils.transSimpleCount(it.data.likeCount) - mBinding.videoCount.text = NumberUtils.transSimpleCount(it.data.videoCount) + ImageUtils.display(mBinding.gameIcon.getIconIv(), it.data?.game?.getIcon() ?: it.data?.gameIcon) + ImageUtils.display(mBinding.gameIcon.getIconDecoratorIv(), it.data?.game?.iconSubscript) + mBinding.gameName.text = it.data?.gameName + mBinding.likeCount.text = NumberUtils.transSimpleCount(it.data?.likeCount ?: 0) + mBinding.videoCount.text = NumberUtils.transSimpleCount(it.data?.videoCount ?: 0) } else if (it.status == Status.ERROR) { // do something } diff --git a/app/src/main/res/layout/activity_video_game.xml b/app/src/main/res/layout/activity_video_game.xml index 087002aabf..5451df09b9 100644 --- a/app/src/main/res/layout/activity_video_game.xml +++ b/app/src/main/res/layout/activity_video_game.xml @@ -65,14 +65,13 @@ android:paddingBottom="16dp" app:layout_scrollFlags="scroll|enterAlwaysCollapsed"> - + cornerRadius="@{10}" /> - + cornerRadius="@{10}" /> - - - - diff --git a/app/src/main/res/layout/dialog_voting_select_game_item.xml b/app/src/main/res/layout/dialog_voting_select_game_item.xml index 7f1f7c5c00..75e8baac9d 100644 --- a/app/src/main/res/layout/dialog_voting_select_game_item.xml +++ b/app/src/main/res/layout/dialog_voting_select_game_item.xml @@ -9,11 +9,10 @@ android:layout_width = "70dp" android:layout_height = "70dp" > - + - + android:layout_height="64dp"/> - + android:layout_height="64dp"/> - + app:layout_constraintTop_toTopOf="parent" /> - + android:layout_centerVertical="true" /> diff --git a/app/src/main/res/layout/layout_video_detail_surface.xml b/app/src/main/res/layout/layout_video_detail_surface.xml index 3255dd0bc2..5692ba726e 100644 --- a/app/src/main/res/layout/layout_video_detail_surface.xml +++ b/app/src/main/res/layout/layout_video_detail_surface.xml @@ -55,8 +55,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" - android:gravity="bottom" android:background="@drawable/bg_video_detail_bottom" + android:gravity="bottom" android:orientation="vertical"> - + android:layout_centerHorizontal="true" /> + + + android:orientation="vertical" + android:paddingTop="4dp" + android:paddingBottom="12dp"> + + android:orientation="vertical" + android:paddingTop="4dp" + android:paddingBottom="12dp"> + android:paddingBottom="4dp"> - + - + + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:gravity="center_vertical" + android:orientation="vertical"> + android:id="@+id/libao_name" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:singleLine="true" + android:textColor="@color/title" + android:textSize="16sp" /> + android:id="@+id/libao_game_name" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="6dp" + android:layout_marginBottom="8dp" + android:singleLine="true" + android:textColor="@color/content" + android:textSize="12sp" /> + android:id="@+id/libao_des" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:singleLine="true" + android:textColor="@color/title" + android:textSize="12sp" /> - + + android:id="@+id/libao_btn_status" + android:layout_width="60dp" + android:layout_height="30dp" + android:layout_alignParentRight="true" + android:layout_centerVertical="true" + android:layout_marginLeft="10dp" + android:gravity="center" + android:textColor="@android:color/white" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/libaodetail_item_top.xml b/app/src/main/res/layout/libaodetail_item_top.xml index 4e8877bed7..2a8ed43907 100644 --- a/app/src/main/res/layout/libaodetail_item_top.xml +++ b/app/src/main/res/layout/libaodetail_item_top.xml @@ -21,7 +21,7 @@ android:gravity = "center_vertical" android:orientation = "horizontal" > - - + android:layout_marginRight="11dp" /> -