From a0b8caa60af63e6654e46e9534499cd5d31cc3cc Mon Sep 17 00:00:00 2001 From: juntao Date: Thu, 3 Jun 2021 16:38:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=905.0.0=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E4=B8=93=E9=A2=98=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96=20https:?= =?UTF-8?q?//git.ghzs.com/pm/halo-app-issues/-/issues/1247?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 5 ++ .../com/gh/common/util/DownloadItemUtils.java | 47 ++++++++++--- .../adapter/viewholder/GameHeadViewHolder.kt | 16 ++++- .../adapter/viewholder/GameViewHolder.java | 7 ++ .../com/gh/gamecenter/entity/GameEntity.kt | 10 +-- .../com/gh/gamecenter/entity/SubjectEntity.kt | 62 ++++++++++-------- .../gh/gamecenter/game/GameFragmentAdapter.kt | 8 ++- .../LegacyHomeFragmentAdapterAssistant.kt | 8 ++- .../ic_recommend_activity.webp | Bin 0 -> 672 bytes .../ic_recommend_discount.webp | Bin 0 -> 686 bytes .../ic_recommend_function.webp | Bin 0 -> 766 bytes .../drawable-xxxhdpi/ic_recommend_gift.webp | Bin 0 -> 538 bytes .../drawable-xxxhdpi/ic_recommend_role.webp | Bin 0 -> 764 bytes .../res/drawable/bg_game_item_recommend.xml | 6 ++ app/src/main/res/layout/game_item.xml | 52 +++++++++++++-- app/src/main/res/values/colors.xml | 1 + dependencies.gradle | 4 +- gradle.properties | 6 +- 18 files changed, 176 insertions(+), 56 deletions(-) create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_recommend_activity.webp create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_recommend_discount.webp create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_recommend_function.webp create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_recommend_gift.webp create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_recommend_role.webp create mode 100644 app/src/main/res/drawable/bg_game_item_recommend.xml diff --git a/app/build.gradle b/app/build.gradle index 406437c486..b20d77649c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -473,6 +473,11 @@ andResGuard { "R.drawable.ic_search_no_18", "R.drawable.ic_search_no_19", "R.drawable.ic_search_no_20", + "R.drawable.ic_recommend_activity", + "R.drawable.ic_recommend_discount", + "R.drawable.ic_recommend_function", + "R.drawable.ic_recommend_gift", + "R.drawable.ic_recommend_role", "R.drawable.login_btn_bg", "R.drawable.ic_quick_login_check", "R.drawable.ic_quick_login_uncheck", diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java index c923e78177..4bee863678 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java @@ -138,7 +138,7 @@ public class DownloadItemUtils { holder.gameDownloadBtn.setText("已预约"); holder.gameDownloadBtn.setTextColor(ContextCompat.getColor(holder.gameDes.getContext(), R.color.aaaaaa)); holder.gameDownloadBtn.setBackgroundResource(R.drawable.button_round_f5f5f5); - updateItemViewStatus(holder, false, null); + updateItemViewStatus(holder, false, null, null); } } @@ -171,7 +171,7 @@ public class DownloadItemUtils { // 显示预约 if (gameEntity.isReservable()) { - updateItemViewStatus(holder, false, briefStyle); + updateItemViewStatus(holder, false, briefStyle, gameEntity.getColumnRecommend()); if (!ReservationRepository.thisGameHasBeenReserved(gameEntity.getId())) { holder.gameDownloadBtn.setText("预约"); holder.gameDownloadBtn.setTextColor(Color.WHITE); @@ -189,7 +189,7 @@ public class DownloadItemUtils { LinkEntity h5LinkEntity = gameEntity.getH5Link(); String offStatus = gameEntity.getDownloadOffStatus(); - updateItemViewStatus(holder, false, briefStyle); + updateItemViewStatus(holder, false, briefStyle, gameEntity.getColumnRecommend()); if (h5LinkEntity != null) { if ("play".equals(h5LinkEntity.getType())) { @@ -252,7 +252,7 @@ public class DownloadItemUtils { GameUtils.setDownloadBtnStatus(context, gameEntity, holder.gameDownloadBtn, pluginLocation); - updateItemViewStatus(holder, false, briefStyle); + updateItemViewStatus(holder, false, briefStyle, gameEntity.getColumnRecommend()); } // 更新插件的条目,有多个apk包 @@ -276,14 +276,14 @@ public class DownloadItemUtils { return; } } - updateItemViewStatus(holder, false, briefStyle); + updateItemViewStatus(holder, false, briefStyle, gameEntity.getColumnRecommend()); } // 更改进度条和提示文本的状态 public static void changeStatus(Context context, GameViewHolder holder, DownloadEntity downloadEntity, boolean isShowPlatform, boolean isNormal) { - updateItemViewStatus(holder, true, null); + updateItemViewStatus(holder, true, null, null); holder.gameProgressbar.setProgressDrawable(context.getResources().getDrawable(R.drawable.progressbar_bg_style)); String platform = PlatformUtils.getInstance(context).getPlatformName(downloadEntity.getPlatform()); @@ -377,22 +377,53 @@ public class DownloadItemUtils { } } - private static void updateItemViewStatus(GameViewHolder holder, boolean hasDownload, @Nullable String briefStyle) { + private static void updateItemViewStatus(GameViewHolder holder, + boolean hasDownload, + @Nullable String briefStyle, + @Nullable LinkEntity recommendStyle) { if (hasDownload) { if (holder.gameRating != null) holder.gameRating.setVisibility(View.GONE); holder.gameDes.setVisibility(View.GONE); holder.gameProgressbar.setVisibility(View.VISIBLE); holder.gameInfo.setVisibility(View.VISIBLE); + holder.recommendContainer.setVisibility(View.GONE); } else { holder.gameProgressbar.setVisibility(View.GONE); holder.gameInfo.setVisibility(View.GONE); + + // 推荐优先,有推荐内容时不执行下面的 star 和 brief 代码块 + if (briefStyle != null + && recommendStyle != null + && briefStyle.contains("recommend")) { + holder.recommendContainer.setVisibility(View.VISIBLE); + if (holder.gameRating != null) holder.gameRating.setVisibility(View.GONE); + holder.gameDes.setVisibility(View.GONE); + + holder.recommendTv.setText(recommendStyle.getText()); + if ("none".equals(recommendStyle.getType())) { + holder.recommendIv.setVisibility(View.GONE); + } else { + Context context = holder.recommendContainer.getContext(); + int drawableId = context.getResources().getIdentifier( + "ic_recommend_" + recommendStyle.getType(), + "drawable", + context.getPackageName()); + holder.recommendIv.setVisibility(View.VISIBLE); + holder.recommendIv.setImageResource(drawableId); + } + return; + } else { + holder.recommendContainer.setVisibility(View.GONE); + } + if (briefStyle != null && briefStyle.contains("star")) { if (holder.gameRating != null) holder.gameRating.setVisibility(View.VISIBLE); } else { if (holder.gameRating != null) holder.gameRating.setVisibility(View.GONE); } - if (TextUtils.isEmpty(briefStyle) || briefStyle.contains("brief")) { + // 缺省情况下回落到游戏简介 + if (TextUtils.isEmpty(briefStyle) || briefStyle.contains("brief") || briefStyle.contains("recommend")) { holder.gameDes.setVisibility(View.VISIBLE); } else { holder.gameDes.setVisibility(View.GONE); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.kt b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.kt index 6aa80dcbcc..f80943c444 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameHeadViewHolder.kt @@ -7,7 +7,8 @@ import com.gh.common.util.dip2px import com.gh.gamecenter.databinding.GameHeadItemBinding import com.gh.gamecenter.entity.SubjectEntity -class GameHeadViewHolder(var binding: GameHeadItemBinding) : BaseRecyclerViewHolder(binding.root) { +class GameHeadViewHolder(var binding: GameHeadItemBinding) : + BaseRecyclerViewHolder(binding.root) { fun bindHead(subject: SubjectEntity) { val headContainerLp = binding.headContainer.layoutParams @@ -24,10 +25,19 @@ class GameHeadViewHolder(var binding: GameHeadItemBinding) : BaseRecyclerViewHol binding.subject = subject binding.headPb.visibility = View.GONE - val text = if ("change" == subject.home) "换一批" else "全部 >" + val text = if ("change" == subject.home) { + "换一批" + } else { + when (subject.home) { + "more" -> "更多 >" + "hide" -> "" + else -> "全部 >" + } + } binding.headMore.text = text if (subject.indexRightTop != null && subject.indexRightTop != "none") { + // 开测表用到的 binding.headMore.visibility = View.VISIBLE if (subject.indexRightTop == "all") { binding.headMore.text = "全部 >" @@ -40,6 +50,8 @@ class GameHeadViewHolder(var binding: GameHeadItemBinding) : BaseRecyclerViewHol && subject.type != "column_collection" && subject.type != "gallery_slide") { binding.headMore.visibility = View.GONE + } else if (subject.home == "hide"){ + binding.headMore.visibility = View.GONE } else { binding.headMore.visibility = View.VISIBLE } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java index dfbfc82bb9..1a4b8cb666 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameViewHolder.java @@ -1,6 +1,7 @@ package com.gh.gamecenter.adapter.viewholder; import android.view.View; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; @@ -24,6 +25,9 @@ public class GameViewHolder extends BaseRecyclerViewHolder { public LinearLayout gameLabelList; public LinearLayout gameInfo; public ProgressBar gameProgressbar; + public View recommendContainer; + public TextView recommendTv; + public ImageView recommendIv; public TextView gameDownloadSpeed; public TextView gameDownloadPercentage; public TextView gameServerType; @@ -44,6 +48,9 @@ public class GameViewHolder extends BaseRecyclerViewHolder { gameDes = binding.gameDes; gameDownloadSpeed = binding.downloadSpeed; gameRating = binding.gameRating; + recommendContainer = binding.recommendContainer; + recommendTv = binding.recommendTv; + recommendIv = binding.recommendIv; } public void initServerType(GameEntity gameEntity) { 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 35be5cd4f4..784e4d7f59 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt @@ -238,6 +238,8 @@ data class GameEntity( val packageDialog: PackageDialogEntity? = null, @SerializedName("top_video") val topVideo: SimpleVideoEntity? = null, + @SerializedName("column_recommend") + val columnRecommend: LinkEntity? = null, // 本地字段,使用镜像信息 var useMirrorInfo: Boolean = false, @@ -573,6 +575,10 @@ data class GameEntity( return entity } + companion object { + const val TAG: String = "GameEntity" + } + @Parcelize data class Dialog(var title: String = "", var content: String = "", @@ -634,10 +640,6 @@ data class GameEntity( } } - companion object { - const val TAG: String = "GameEntity" - } - // 游戏位置, 根据游戏位置只显示某个单独的APK enum class GameLocation { INDEX, diff --git a/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.kt index df24665362..625ab244bf 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/SubjectEntity.kt @@ -10,37 +10,41 @@ import kotlinx.android.parcel.Parcelize * Created by LGT on 2016/7/1. */ @Parcelize -data class SubjectEntity(@SerializedName("_id") - var id: String? = null, - var name: String? = null, - var more: Int? = null, - @SerializedName("order") - var isOrder: Boolean = false, - var home: String? = null, - var tag: String? = null, - var sort: Int = 0, - var data: MutableList? = null, - var type: String? = null, - var des: String? = null, - @SerializedName("relation_column_id") - var relatedColumnId: String? = null, - var style: String? = "", // 值为 "top" 时表示此专题(合集)为排行榜 https://gitlab.ghzs.com/pm/halo-app-issues/issues/699 - val list: Int = 0, +data class SubjectEntity( + @SerializedName("_id") + var id: String? = null, + var name: String? = null, + var more: Int? = null, + @SerializedName("order") + var isOrder: Boolean = false, + var home: String? = null, + var tag: String? = null, + var sort: Int = 0, + var data: MutableList? = null, + var type: String? = null, + var des: String? = null, + @SerializedName("relation_column_id") + var relatedColumnId: String? = null, + var style: String? = "", // 值为 "top" 时表示此专题(合集)为排行榜 https://gitlab.ghzs.com/pm/halo-app-issues/issues/699 + val list: Int = 0, - @SerializedName("show_name") - var showName: Boolean = true, // 是否显示“专题名字”,true、false - @SerializedName("show_suffix") - var showSuffix: Boolean = true, // 是否显示”游戏后缀“,true、false - @SerializedName("type_style") - var typeStyle: String = "", // 横屏样式,不显示(default)、评分(star)、备注(remark) - @SerializedName("brief_style") - var briefStyle: String = "", // 简介样式,大小+简介(size&brief)、评分+简介(star&brief)、评分(star) + @SerializedName("show_name") + var showName: Boolean = true, // 是否显示“专题名字”,true、false + @SerializedName("show_suffix") + var showSuffix: Boolean = true, // 是否显示”游戏后缀“,true、false + @SerializedName("type_style") + var typeStyle: String = "", // 横屏样式,不显示(default)、评分(star)、备注(remark) + @SerializedName("brief_style") + var briefStyle: String = "", // 简介样式,大小+简介(size&brief)、评分+简介(star&brief)、评分(star)、推荐优先(recommend) + @SerializedName("more_link") + var moreLink: LinkEntity? = null, - @SerializedName("index_right_top") - var indexRightTop: String? = null, - @SerializedName("index_right_top_link") - var indexRightTopLink: LinkEntity? = null, - var remark: String? = null // 开测表备注 + // 开测表部分字段 + @SerializedName("index_right_top") + var indexRightTop: String? = null, + @SerializedName("index_right_top_link") + var indexRightTopLink: LinkEntity? = null, + var remark: String? = null // 开测表备注 ) : Parcelable { fun getFilterName(): String { diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt index b6f1bf7d31..719ce328db 100644 --- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt @@ -7,6 +7,7 @@ import android.view.View import android.view.ViewGroup import android.widget.ImageView import android.widget.LinearLayout +import android.widget.TextView import androidx.databinding.DataBindingUtil import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -578,11 +579,15 @@ class GameFragmentAdapter(context: Context, val column = mItemDataList[position].columnHead holder.bindHead(column!!) - holder.binding.headMore.setOnClickListener { + holder.binding.headMore.setOnClickListener { it as TextView if ("change" == column.home) { MtaHelper.onEvent("游戏专题", "换一批", column.name) holder.binding.headPb.visibility = View.VISIBLE mViewModel.changeSubjectGame(column.id!!) + } else if ("more" == column.home) { + column.moreLink?.let { link -> + DirectUtils.directToLinkPage(it.context, link, "(板块)", "(游戏-专题:" + column.name + "-全部)") + } } else { if (column.type == "column_collection") { MtaHelper.onEvent("游戏专题合集", "全部", column.name) @@ -605,6 +610,7 @@ class GameFragmentAdapter(context: Context, MtaHelper.onEvent("游戏专题", "全部", column.name) } } + NewLogUtils.logSubjectTopTabClick(it.text.toString(), column.name, column.moreLink) } } diff --git a/app/src/main/java/com/gh/gamecenter/home/LegacyHomeFragmentAdapterAssistant.kt b/app/src/main/java/com/gh/gamecenter/home/LegacyHomeFragmentAdapterAssistant.kt index a7f31113a8..aaa723c4ea 100644 --- a/app/src/main/java/com/gh/gamecenter/home/LegacyHomeFragmentAdapterAssistant.kt +++ b/app/src/main/java/com/gh/gamecenter/home/LegacyHomeFragmentAdapterAssistant.kt @@ -5,6 +5,7 @@ import android.graphics.Color import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.TextView import androidx.core.content.ContextCompat import androidx.databinding.DataBindingUtil import androidx.recyclerview.widget.DefaultItemAnimator @@ -503,7 +504,7 @@ class LegacyHomeFragmentAdapterAssistant(private var mContext: Context, val column = item.columnHead holder.bindHead(column!!) - holder.binding.headMore.setOnClickListener { + holder.binding.headMore.setOnClickListener { it as TextView if ("change" == column.home) { MtaHelper.onEvent("游戏专题", "新首页专题点击", "内容" + item.blockPosition + "_换一批") holder.binding.headPb.visibility = View.VISIBLE @@ -512,6 +513,10 @@ class LegacyHomeFragmentAdapterAssistant(private var mContext: Context, if (mAdapter is HomeFragmentAdapter) { (mAdapter as HomeFragmentAdapter).viewModel.changeSubjectGame(column.id!!) } + } else if ("more" == column.home) { + column.moreLink?.let { link -> + DirectUtils.directToLinkPage(it.context, link, "(首页)", "(游戏-专题:" + column.name + "-全部)") + } } else { if (column.type == "column_collection") { MtaHelper.onEvent("游戏专题合集", "新首页合辑点击", "内容" + item.blockPosition + "_全部") @@ -538,6 +543,7 @@ class LegacyHomeFragmentAdapterAssistant(private var mContext: Context, MtaHelper.onEvent("游戏专题", "新首页专题点击", "内容" + item.blockPosition + "_全部") } } + NewLogUtils.logSubjectTopTabClick(it.text.toString(), column.name, column.moreLink) } } diff --git a/app/src/main/res/drawable-xxxhdpi/ic_recommend_activity.webp b/app/src/main/res/drawable-xxxhdpi/ic_recommend_activity.webp new file mode 100644 index 0000000000000000000000000000000000000000..4dd50dfeee69c19a4834298c4c19a4744f806cdc GIT binary patch literal 672 zcmV;R0$=@7Nk&GP0ssJ4MM6+kP&iDC0ssInFTe{B2jeETZCBan{XovNu}eZwh8hH* z1R->pZG&wjNlyB;G;#5jOa7_hs#6H_0~g-3Ta)i-ZpD}0m6-S~`Bf5jilpRCxCA`Wc-RE7M*BB_`_*hBFZ z!d`_+2v0~5SW6WsgaVJ^gcVp(P=df32!w={xPz}WVGD#56()!vjaOjDkb_l zK$dLVs-29u;t*Gy7#_jniaR@U``?S`Ip<=(5&c)-wvDo5rmnj;000000000000000 z000000000000000003})czSkWeRFYsX5?ZGHCaLBJwg5jai}jene#Z$IUtUqfp`>Wn@PqPWb%B^lXU{yL$H{B?N!y!j~~A7ow=2@p#+*z@Yt`a&pSKsew^7Q1+Vc) z%cq^4o$sgju{xOSeTda`;oJMSUrrZhI@6kP^k^Afex2&F*pq>g;p11%o@lBy2ZGZD z@OX7K58<=fx$TLTOpRE`4bLxU>)U!>ZtK>eGSnV#YF!-WWMznKaG|IbiNWTE@;Ijm#&#eT1*1o|a}_U&~;n;>?4tOr9xu z(e@;d6-$5JJbABf9)8kTGtWP4uHBB*Yo}IvYPN%SIt%UWcml&Ou6NgG$KTA)j9mH; G{Zatur9d74 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_recommend_discount.webp b/app/src/main/res/drawable-xxxhdpi/ic_recommend_discount.webp new file mode 100644 index 0000000000000000000000000000000000000000..a115ee3c722cc11396c91e3d3e30c466bf8a735c GIT binary patch literal 686 zcmWIYbaPwA#J~{l>J$(bVBs?p$kx|Cz%8KuL~UDc_|4z7LGJymK1o8{UrK)FHg*0i z7xkQ!6ng$6GvoQU!9RTr{>V-}ye*g6^4pZ+`&JF{rA4JB#bxCm%0J$@cl2ucjKjCi z-8`F@{dq%l^tT1QCl7Bjwar{Ay)Ev`GS+3k+HwuH_#P_T;QE^PhV-XR{AP^4&1&W! z9t9i>7E^Cfn(ENOtrEiM!*QVAL4j3^(PoC%9D|txD_j&LJOnukPdO~`V39KlU=W^k zl3(-9`3_emA%-K&n%&HbjY}LHn#3C>v^a1%Ff6&dE%(jYp5Ca9ldZ~fZ*R-p{=A=k zeco5oMgMtJJiUwyb(SBHX21nr@!$I^C5QkY-`;!JHYfc0?T(I)Kiqa-p6!sj?xbK7c*A|}{hL~UcfIxH)t{s)PG0Dh|2gH)9?M-O z{oDG#ZPEGV_;%Up_~ME`r=Iks@&->^3+YokQ?ZMMq>rw(lIun0@~y8h3}c@xim zsr_y0{CF}`SMie?;l0w4|7;>Be}65O68Y08aeH}o^`fDTjm>Wj zR!g66S)rLRJM Sl^XoCnq4FNKmScQ0|NjPem>Ly literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_recommend_function.webp b/app/src/main/res/drawable-xxxhdpi/ic_recommend_function.webp new file mode 100644 index 0000000000000000000000000000000000000000..b663dc122fef6690856e2bbd1cabcfde07ac2571 GIT binary patch literal 766 zcmV zr0#gvE0BIIbA^=FXZQHb+{%pV4wr$%^UToVo z_g^P(ud{C{)rkH(aN9PLjJZ$FY}(m3000000000000000000000000000000007PF z?!DUAkt@3Pzq+%gv8HkHlax}rK54jO%FTa@hYQM=de5Yk{?UHyn$p}nb@$JVak8g0 z=Tb^3rIb=iDW#NBHk>M*r&K<)mZkeo`S`1)aQ3o14@x&bEYFS7+$+zO!f{j$n}7C| zWpgO|`taemkg>XGocJkM{W&(Pp8DA*f(Ly&reGZTG)KLjnOo+*%PsduR4onc`JR(L zjEy)GJ_RpkXK%#mJ0D(cQS4tDd43Od<(lK+E4@_pz}G_3!5s58#H_5!x{&lZ$NUH} zdmUFb&x)8VX{4Mvm$ zMP2IUK=t{^vKcd%AN?9YE;JN1yg9Y>V})I7-N*9reQDo)yF6D*`=w{)xm!5af2l}O z0aiAF%0uGDQkJ%_m1Fd~Hf6KwHXQV1PlwLFh_b5qL$&bvaM#6g!%8zNoTu|^_zt#i w|C-Y8O?e?~`;*d_tu3{EX!|$rm>Maj@7xe}cK`qY000000001h|I9xX0HeunzW@LL literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_recommend_gift.webp b/app/src/main/res/drawable-xxxhdpi/ic_recommend_gift.webp new file mode 100644 index 0000000000000000000000000000000000000000..7de7d2cf7645a3d184f48e55b33efda307505586 GIT binary patch literal 538 zcmWIYbaNA8Vqge&bqWXzu<&68vi0>3a0@Jdq_!=0`K{Rjmy;PM&v0S;bKz-j@;^z} zNh(XL%6%V*O`Y+e^nL)}?QIjE+_~uYZ9l{Qtn0UV_!eJ%lzQsr))zK+i&)B^n6CW& zv1}Q?Z`A%T-~U}S64>!z@_voa>FiHiPwqd#xL8Txk*q@dKj+94CJ99cwS7)|rZO>b z=rDD3^K|3{DGDg1JW*opUCiN-GWn3R;0a!lg_{@|A~)r(E;B0Vd~{A&MsJ;>^mkeQ z-T&uS{)@Y?zT=;9fr@5e;W~>wj10JdMaA2@zjnW7|E*m3zyFaJ z3Ita-lx9ylt$+M;fl&9|yzRH&mRZmBTYeeD3VZ$PPuvQ*^!S?dXHdbPZ(puV_kt{6&V}t;)zouKd`m hEWQ0V<;pkjtSWpHSd#|@?+lK&xjZ@`pSp~R0RT4b2U-9C literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_recommend_role.webp b/app/src/main/res/drawable-xxxhdpi/ic_recommend_role.webp new file mode 100644 index 0000000000000000000000000000000000000000..a377af987dcbf176d983d294d9939c68bebdc430 GIT binary patch literal 764 zcmVXdNP#3tk`$P^ z)ADvp67%mkk|al|o;#ixfVWtQ6FjxrE{1K}MoyJV?yUnj*2dY|#n#oz&Cbix*WTaM z$;H>u&&}V!^04&PQ}rCZRM+yMI_iVkO1z);Y3QxB;F}uyqBvBnfmOn`Xt0)@tm+hy zie06E1cOz;77SL*z~Ev+7lb6h4Il|xVhHFTAvEx16upEPLP%c4kO_gx0+^(tRda)2 z0Rbr(7!nX10f2)fHXsF%gn$qZvO+jWV5I;O0Fo0KF(Dy<1cC`5q<|0t{aa9Qgx~-I z09n^I8ItskZQHhOduDChw#N3v51y`!$jG|d%ZUCnaN9^qG!-{=VP@Dj00000DWx?9 z!2kdN0000000000Kw4{kcS=O7moj`>i@8rkL`1aN;)_CG5%D-}_Je66DK^sGmAXT6 zED46vb0T!~k%i?T(@w(UQ(Ea(ah+_DWw?p{XuQTo4Nt99cxHmwr+T8{u9YIs%p5cE zNyCgy2XO!fxr>_`N^Lv`&~?U4>=md^d~Kl)Xg%U4x^%ZH*b;RE=n*ul&6N7hfY^74 zYJO literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/bg_game_item_recommend.xml b/app/src/main/res/drawable/bg_game_item_recommend.xml new file mode 100644 index 0000000000..d9a0d4bf63 --- /dev/null +++ b/app/src/main/res/drawable/bg_game_item_recommend.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/game_item.xml b/app/src/main/res/layout/game_item.xml index da9a93a05d..4ed9aea442 100644 --- a/app/src/main/res/layout/game_item.xml +++ b/app/src/main/res/layout/game_item.xml @@ -1,6 +1,7 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools"> @@ -72,8 +73,8 @@ imageUrl="@{game.getRawIconInAdvanced()}" android:layout_width="64dp" android:layout_height="64dp" - fresco:roundedCornerRadius="10dp" - fresco:viewAspectRatio="1" /> + app:roundedCornerRadius="10dp" + app:viewAspectRatio="1" /> + app:viewAspectRatio="1" /> @@ -111,7 +112,8 @@ android:singleLine="true" android:textColor="@color/text_333333" android:textSize="14sp" - android:textStyle="bold" /> + android:textStyle="bold" + tools:text="地海争霸:巫妖王再怒" /> + android:textSize="10sp" + tools:text="巫妖王再怒霜之哀殤又飢渴" /> + + + + + + + + #F10000 #EA3333 #FF700F + #FF7C1F #181927 #e6f3ff #1383EB diff --git a/dependencies.gradle b/dependencies.gradle index cfddf2bd91..0634a87f0b 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -7,8 +7,8 @@ ext { targetSdkVersion = 26 // application info (每个大版本之间的 versionCode 增加 20) - versionCode = 330 - versionName = "4.9.0" + versionCode = 350 + versionName = "5.0.0" applicationId = "com.gh.gamecenter" // AndroidX diff --git a/gradle.properties b/gradle.properties index d908b526c5..f2ae90fa01 100644 --- a/gradle.properties +++ b/gradle.properties @@ -48,10 +48,10 @@ QUICK_LOGIN_APPID=300012035775 QUICK_LOGIN_APPKEY=002BAABA2C078342DA33BEAB0A4C6A25 # hosts -DEV_API_HOST=https\://dev-and-api.ghzs.com/v4d9d0/ +DEV_API_HOST=https\://dev-and-api.ghzs.com/v5d0d0/ -API_HOST=https\://and-api.ghzs.com/v4d8d0/ -SENSITIVE_API_HOST=https\://and-api.ghzs.com/v4d8d0/ +API_HOST=https\://and-api.ghzs.com/v4d9d0/ +SENSITIVE_API_HOST=https\://and-api.ghzs.com/v4d9d0/ # 请不要手动改动下面的值,除非你明确需要以某个apk作为基准包,需要打包请以scripts/tinker*.sh为准 TINKER_ENABLE=