光环助手V3.3-游戏专题样式强化(补充测试完成)
This commit is contained in:
@ -434,7 +434,7 @@ public class BindingAdapters {
|
||||
testTime.setText(GameViewUtils.getGameTestDate(gameEntity.getTest().getStart()));
|
||||
}
|
||||
} else {
|
||||
GameViewUtils.setLabelList(layout.getContext(), layout, gameEntity.getTag(), subjectTag);
|
||||
GameViewUtils.setLabelList(layout.getContext(), layout, gameEntity.getTag(), subjectTag, gameEntity.getTagStyle());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -81,6 +81,7 @@ public class EntranceUtils {
|
||||
public static final String KEY_ASK_TAG = "askTag";
|
||||
public static final String KEY_ASK_COLUMN_TAG = "askColumnTag";
|
||||
public static final String KEY_COMMUNITY_DATA = "communityData";
|
||||
public static final String KEY_SUBJECT_DATA = "subjectData";
|
||||
|
||||
public static void jumpActivity(Context context, Bundle bundle) {
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@ import android.widget.LinearLayout.LayoutParams;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.gh.gamecenter.R;
|
||||
import com.gh.gamecenter.entity.TagStyleEntity;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
@ -30,17 +31,17 @@ import java.util.TimeZone;
|
||||
*/
|
||||
public class GameViewUtils {
|
||||
|
||||
public static void setLabelList(Context context, LinearLayout labelLayout, List<String> tag, String tagType) {
|
||||
public static void setLabelList(Context context, LinearLayout labelLayout, List<String> tag, String tagType, List<TagStyleEntity> tagStyle) {
|
||||
labelLayout.removeAllViews();
|
||||
if (tag == null || tag.isEmpty()) {
|
||||
labelLayout.addView(getGameTagView(context, "官方版", 0, tagType));
|
||||
labelLayout.addView(getGameTagView(context, "官方版", 0, tagType, null));
|
||||
} else {
|
||||
for (int i = 0, size = tag.size(); i < size; i++) {
|
||||
View view;
|
||||
if (i == size - 1) {
|
||||
view = getGameTagView(context, tag.get(i), 0, tagType);
|
||||
view = getGameTagView(context, tag.get(i), 0, tagType, tagStyle.size() > i ? tagStyle.get(i) : null);
|
||||
} else {
|
||||
view = getGameTagView(context, tag.get(i), DisplayUtils.dip2px(context, 6), tagType);
|
||||
view = getGameTagView(context, tag.get(i), DisplayUtils.dip2px(context, 6), tagType, tagStyle.size() > i ? tagStyle.get(i) : null);
|
||||
}
|
||||
if (view != null) {
|
||||
labelLayout.addView(view);
|
||||
@ -52,7 +53,7 @@ public class GameViewUtils {
|
||||
}
|
||||
}
|
||||
|
||||
private static TextView getGameTagView(Context context, String tagStr, int rightMargin, String tagType) {
|
||||
private static TextView getGameTagView(Context context, String tagStr, int rightMargin, String tagType, TagStyleEntity tagEntity) {
|
||||
LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(
|
||||
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
|
||||
lparams.rightMargin = rightMargin;
|
||||
@ -65,22 +66,32 @@ public class GameViewUtils {
|
||||
tag.setTextColor(ContextCompat.getColor(context, R.color.tag_green));
|
||||
} else {
|
||||
String colorStr;
|
||||
if (!TextUtils.isEmpty(tagType) && "type".equals(tagType)) { // 游戏标签
|
||||
colorStr = "#ff6a28";
|
||||
if (!TextUtils.isEmpty(tagType) && "type".equals(tagType) && tagEntity != null) { // 游戏标签
|
||||
colorStr = "#" + tagEntity.getColor();
|
||||
GradientDrawable gradientDrawable = new GradientDrawable();
|
||||
|
||||
if ("border".equals(tagEntity.getStyle())) {
|
||||
gradientDrawable.setColor(Color.TRANSPARENT);
|
||||
gradientDrawable.setStroke(DisplayUtils.dip2px(context, 0.6f), Color.parseColor(colorStr));
|
||||
tag.setTextColor(Color.parseColor(colorStr));
|
||||
} else {
|
||||
gradientDrawable.setColor(Color.parseColor(colorStr));
|
||||
gradientDrawable.setShape(GradientDrawable.RECTANGLE);
|
||||
tag.setTextColor(Color.WHITE);
|
||||
}
|
||||
tag.setBackgroundDrawable(gradientDrawable);
|
||||
} else {
|
||||
colorStr = TagUtils.getInstance(context).getColor(tagStr);
|
||||
if (colorStr == null) {
|
||||
return null;
|
||||
}
|
||||
int color = Color.parseColor(colorStr);
|
||||
GradientDrawable gradientDrawable = new GradientDrawable();
|
||||
gradientDrawable.setColor(Color.TRANSPARENT);
|
||||
gradientDrawable.setStroke(DisplayUtils.dip2px(context, 0.6f), color);
|
||||
tag.setBackgroundDrawable(gradientDrawable);
|
||||
tag.setTextColor(color);
|
||||
}
|
||||
|
||||
if (colorStr == null) {
|
||||
return null;
|
||||
}
|
||||
int color = Color.parseColor(colorStr);
|
||||
GradientDrawable gradientDrawable = new GradientDrawable();
|
||||
gradientDrawable.setColor(Color.TRANSPARENT);
|
||||
gradientDrawable.setStroke(DisplayUtils.dip2px(context, 0.6f), color);
|
||||
tag.setBackgroundDrawable(gradientDrawable);
|
||||
// tag.setBackgroundResource(R.drawable.border_blue_bg);
|
||||
tag.setTextColor(color);
|
||||
}
|
||||
tag.setLayoutParams(lparams);
|
||||
tag.setPadding(DisplayUtils.dip2px(context, 3),
|
||||
|
||||
@ -415,7 +415,7 @@ public class InstallFragmentAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
PlatformUtils.getInstance(mContext).getPlatformName(gameEntity.getApk().get(0).getPlatform())));
|
||||
holder.gameDes.setText(String.format("V%s", PackageUtils.getVersionByPackage(mContext, gameEntity.getApk().get(0).getPackageName())));
|
||||
}
|
||||
GameViewUtils.setLabelList(mContext, holder.gameLabelList, gameEntity.getTag(), "");
|
||||
GameViewUtils.setLabelList(mContext, holder.gameLabelList, gameEntity.getTag(), "", gameEntity.getTagStyle());
|
||||
|
||||
holder.cardView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
||||
@ -148,7 +148,7 @@ public class PluginAdapter extends BaseRecyclerAdapter<GameNormalViewHolder> {
|
||||
} else {
|
||||
holder.gameDes.setText(gameEntity.getApk().get(0).getSize() + " " + gameEntity.getBrief());
|
||||
}
|
||||
GameViewUtils.setLabelList(mContext, holder.gameLabelList, gameEntity.getTag(), "");
|
||||
GameViewUtils.setLabelList(mContext, holder.gameLabelList, gameEntity.getTag(), "", gameEntity.getTagStyle());
|
||||
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
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;
|
||||
@ -20,6 +21,9 @@ public class GameImageViewHolder extends BaseRecyclerViewHolder {
|
||||
@BindView(R.id.game_image_line)
|
||||
public View line;
|
||||
|
||||
@BindView(R.id.game_des)
|
||||
public TextView gameDes;
|
||||
|
||||
public GameImageItemBinding binding;
|
||||
|
||||
public GameImageViewHolder(GameImageItemBinding bind) {
|
||||
|
||||
@ -243,6 +243,8 @@ public class CategoryListAdapter extends BaseRecyclerAdapter<RecyclerView.ViewHo
|
||||
mContext.startActivity(intent);
|
||||
break;
|
||||
case "column":
|
||||
SubjectActivity.startSubjectActivity(mContext, gameEntity.getLink(), gameEntity.getName(), false
|
||||
, mEntrance + "(" + mName + ":大图)");
|
||||
SubjectActivity.startSubjectActivity(mContext, gameEntity.getLink(), gameEntity.getName(), false
|
||||
, mEntrance + "(" + mName + ":大图)");
|
||||
break;
|
||||
@ -299,7 +301,7 @@ public class CategoryListAdapter extends BaseRecyclerAdapter<RecyclerView.ViewHo
|
||||
}
|
||||
|
||||
holder.initServerType(gameEntity, mContext);
|
||||
GameViewUtils.setLabelList(mContext, holder.gameLabelList, gameEntity.getTag(), mTagType);
|
||||
GameViewUtils.setLabelList(mContext, holder.gameLabelList, gameEntity.getTag(), mTagType, gameEntity.getTagStyle());
|
||||
|
||||
holder.itemView.setOnClickListener(v -> {
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
|
||||
@ -64,6 +64,11 @@ class GameEntity : Parcelable {
|
||||
|
||||
var subjectData: GameSubjectData? = null
|
||||
|
||||
@SerializedName("tag_style")
|
||||
var tagStyle: List<TagStyleEntity> = ArrayList()
|
||||
|
||||
var des: String? = null
|
||||
|
||||
fun getTag(): ArrayList<String> {
|
||||
if (tag == null) tag = ArrayList()
|
||||
if (!Config.isShowPlugin(id)) return ArrayList()
|
||||
@ -139,6 +144,8 @@ class GameEntity : Parcelable {
|
||||
gameEntity.link = link
|
||||
gameEntity.isNewsExists = isNewsExists
|
||||
gameEntity.downloadOffText = downloadOffText
|
||||
gameEntity.tagStyle = tagStyle
|
||||
gameEntity.des = des
|
||||
return gameEntity
|
||||
}
|
||||
|
||||
@ -172,6 +179,8 @@ class GameEntity : Parcelable {
|
||||
dest.writeByte(if (this.isLibaoExists) 1.toByte() else 0.toByte())
|
||||
dest.writeString(this.serverRemark)
|
||||
dest.writeValue(this.kaifuTimeHint)
|
||||
dest.writeTypedList(this.tagStyle)
|
||||
dest.writeString(this.des)
|
||||
}
|
||||
|
||||
constructor()
|
||||
@ -204,6 +213,8 @@ class GameEntity : Parcelable {
|
||||
this.isLibaoExists = `in`.readByte().toInt() != 0
|
||||
this.serverRemark = `in`.readString()
|
||||
this.kaifuTimeHint = `in`.readValue(Long::class.java.classLoader) as Long?
|
||||
this.tagStyle = `in`.createTypedArrayList(TagStyleEntity.CREATOR)
|
||||
this.des = `in`.readString()
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
@ -1,29 +1,21 @@
|
||||
package com.gh.gamecenter.entity
|
||||
|
||||
import android.os.Parcelable
|
||||
import com.google.gson.annotations.SerializedName
|
||||
import kotlinx.android.parcel.Parcelize
|
||||
|
||||
/**
|
||||
* Created by LGT on 2016/7/1.
|
||||
*/
|
||||
class SubjectEntity {
|
||||
|
||||
@SerializedName("_id")
|
||||
var id: String? = null
|
||||
|
||||
var name: String? = null
|
||||
|
||||
var more: String? = null
|
||||
|
||||
@SerializedName("order")
|
||||
var isOrder: Boolean = false
|
||||
|
||||
var home: String? = null
|
||||
|
||||
var tag: String? = null
|
||||
|
||||
var data: MutableList<GameEntity>? = null
|
||||
|
||||
var type: String? = null
|
||||
|
||||
var des: String? = null
|
||||
}
|
||||
@Parcelize
|
||||
data class SubjectEntity(@SerializedName("_id")
|
||||
var id: String? = null,
|
||||
var name: String? = null,
|
||||
var more: String? = null,
|
||||
@SerializedName("order")
|
||||
var isOrder: Boolean = false,
|
||||
var home: String? = null,
|
||||
var tag: String? = null,
|
||||
var data: MutableList<GameEntity>? = null,
|
||||
var type: String? = null,
|
||||
var des: String? = null) : Parcelable
|
||||
43
app/src/main/java/com/gh/gamecenter/entity/TagStyleEntity.kt
Normal file
43
app/src/main/java/com/gh/gamecenter/entity/TagStyleEntity.kt
Normal file
@ -0,0 +1,43 @@
|
||||
package com.gh.gamecenter.entity
|
||||
|
||||
import android.os.Parcel
|
||||
import android.os.Parcelable
|
||||
|
||||
class TagStyleEntity() : Parcelable {
|
||||
var name: String = ""
|
||||
|
||||
var style: String = ""
|
||||
|
||||
var color: String = ""
|
||||
|
||||
constructor(parcel: Parcel) : this() {
|
||||
this.name = parcel.readString()
|
||||
this.style = parcel.readString()
|
||||
this.color = parcel.readString()
|
||||
}
|
||||
|
||||
override fun writeToParcel(parcel: Parcel, flags: Int) {
|
||||
parcel.writeString(this.name)
|
||||
parcel.writeString(this.style)
|
||||
parcel.writeString(this.color)
|
||||
}
|
||||
|
||||
override fun describeContents(): Int {
|
||||
return 0
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val CREATOR: Parcelable.Creator<TagStyleEntity> = object : Parcelable.Creator<TagStyleEntity> {
|
||||
|
||||
override fun createFromParcel(parcel: Parcel): TagStyleEntity {
|
||||
return TagStyleEntity(parcel)
|
||||
}
|
||||
|
||||
override fun newArray(size: Int): Array<TagStyleEntity?> {
|
||||
return arrayOfNulls(size)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -339,7 +339,7 @@ public class XinXiAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
int index = 1;
|
||||
|
||||
if (isFuliNoData) {
|
||||
index --;
|
||||
index--;
|
||||
}
|
||||
|
||||
if (position_notice != -1) {
|
||||
@ -469,7 +469,7 @@ public class XinXiAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
holder.gameDes.setText(String.format("%s %s", gameEntity.getApk().get(0).getSize(), gameEntity.getBrief()));
|
||||
}
|
||||
|
||||
GameViewUtils.setLabelList(mContext, holder.gameLabelList, gameEntity.getTag(), "");
|
||||
GameViewUtils.setLabelList(mContext, holder.gameLabelList, gameEntity.getTag(), "", gameEntity.getTagStyle());
|
||||
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
||||
@ -149,7 +149,7 @@ class SearchGameDetailFragmentAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
viewHolder.gameDes.setText(String.format("%s %s", gameEntity.getApk().get(0).getSize(), gameEntity.getBrief()));
|
||||
}
|
||||
|
||||
GameViewUtils.setLabelList(mContext, viewHolder.gameLabelList, gameEntity.getTag(), "");
|
||||
GameViewUtils.setLabelList(mContext, viewHolder.gameLabelList, gameEntity.getTag(), "", gameEntity.getTagStyle());
|
||||
|
||||
viewHolder.itemView.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
|
||||
@ -158,7 +158,7 @@ class SearchGameListFragmentAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
viewHolder.gameDes.setText(String.format("%s %s", gameEntity.getApk().get(0).getSize(), gameEntity.getBrief()));
|
||||
}
|
||||
|
||||
GameViewUtils.setLabelList(mContext, viewHolder.gameLabelList, gameEntity.getTag(), "");
|
||||
GameViewUtils.setLabelList(mContext, viewHolder.gameLabelList, gameEntity.getTag(), "", gameEntity.getTagStyle());
|
||||
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
||||
@ -95,7 +95,7 @@ class SubjectAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
|
||||
mIsLoaded = false;
|
||||
RetrofitManager.getInstance(mContext).getApi().getColumn(mId
|
||||
,UrlFilterUtils.getFilterQuery("publish", mOrder)
|
||||
, UrlFilterUtils.getFilterQuery("publish", mOrder)
|
||||
, UrlFilterUtils.getFilterQuery("type", mType), page)
|
||||
.map(new Func1<List<GameEntity>, List<GameEntity>>() {
|
||||
@Override
|
||||
@ -232,6 +232,11 @@ class SubjectAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
int widthPixels = mContext.getResources().getDisplayMetrics().widthPixels;
|
||||
final GameEntity gameEntity = mSubjectList.get(position);
|
||||
ImageUtils.Companion.getInstance().display(holder.image, gameEntity.getImage(), widthPixels);
|
||||
|
||||
if (!TextUtils.isEmpty(gameEntity.getDes())) {
|
||||
holder.gameDes.setVisibility(View.VISIBLE);
|
||||
holder.gameDes.setText(gameEntity.getDes());
|
||||
}
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@ -310,7 +315,7 @@ class SubjectAdapter extends BaseRecyclerAdapter<ViewHolder> {
|
||||
}
|
||||
|
||||
holder.initServerType(gameEntity, mContext);
|
||||
GameViewUtils.setLabelList(mContext, holder.gameLabelList, gameEntity.getTag(), mTagType);
|
||||
GameViewUtils.setLabelList(mContext, holder.gameLabelList, gameEntity.getTag(), mTagType, gameEntity.getTagStyle());
|
||||
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
||||
@ -68,7 +68,7 @@ public class GamePluginAdapter extends BaseRecyclerAdapter {
|
||||
} else {
|
||||
holder.gameDes.setText(String.format("%s %s", gameEntity.getApk().get(0).getSize(), gameEntity.getBrief()));
|
||||
}
|
||||
GameViewUtils.setLabelList(mContext, holder.gameLabelList, gameEntity.getTag(), null);
|
||||
GameViewUtils.setLabelList(mContext, holder.gameLabelList, gameEntity.getTag(), null, gameEntity.getTagStyle());
|
||||
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user