光环助手V3.3-游戏专题样式强化(补充测试完成)

This commit is contained in:
kehaoyuan
2018-06-19 14:37:33 +08:00
parent 685c38dcf7
commit 47482ba793
16 changed files with 138 additions and 53 deletions

View File

@ -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());
}
}

View File

@ -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) {

View File

@ -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),

View File

@ -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

View File

@ -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

View File

@ -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) {

View File

@ -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<>();

View File

@ -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 {

View File

@ -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

View 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)
}
}
}
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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