Commit 67d89e78 authored by fallenstardust's avatar fallenstardust

检查卡组是否符合最新禁卡表

parent 38f8af59
package cn.garymb.ygomobile.ui.adapters;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.listener.OnItemChildClickListener;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.tubb.smrv.SwipeHorizontalMenuLayout;
......@@ -39,7 +33,7 @@ public class CardListAdapter extends BaseRecyclerAdapterPlus<Card, BaseViewHolde
private boolean mEnableSwipe = false;
public CardListAdapter(Context context, ImageLoader imageLoader) {
super(context,R.layout.item_search_card_swipe);
super(context, R.layout.item_search_card_swipe);
this.imageLoader = imageLoader;
mStringManager = DataManager.get().getStringManager();
}
......@@ -102,94 +96,7 @@ public class CardListAdapter extends BaseRecyclerAdapterPlus<Card, BaseViewHolde
}
}
// @NonNull
// @Override
// public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// View view = inflate(R.layout.item_search_card_swipe, parent, false);
// if (mItemBg) {
// view.setBackgroundResource(R.drawable.blue);
// }
// ViewHolder viewHolder = new ViewHolder(view);
// viewHolder.mMenuLayout.setSwipeEnable(mEnableSwipe);
// return viewHolder;
// }
// @Override
// public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
// Card item = getCard(position);
// if(item == null){
// return;
// }
// imageLoader.bindImage(holder.cardImage, item, ImageLoader.Type.small);
// holder.cardName.setText(item.Name);
// if (item.isType(CardType.Monster)) {
// holder.layout_atk.setVisibility(View.VISIBLE);
// holder.layout_def.setVisibility(View.VISIBLE);
// holder.layout_star_attr_race_scale.setVisibility(View.VISIBLE);
//// holder.view_bar.setVisibility(View.VISIBLE);
// String star = "★" + item.getStar();
// holder.cardLevel.setText(star);
// holder.cardattr.setText(mStringManager.getAttributeString(item.Attribute));
// holder.cardrace.setText(mStringManager.getRaceString(item.Race));
// holder.cardAtk.setText((item.Attack < 0 ? "?" : String.valueOf(item.Attack)));
// if (item.isType(CardType.Xyz)) {
// holder.cardLevel.setTextColor(getColor(R.color.star_rank));
// } else {
// holder.cardLevel.setTextColor(getColor(R.color.star));
// }
// if (item.isType(CardType.Pendulum)) {
// holder.layout_p_scale.setVisibility(View.VISIBLE);
// holder.cardScale.setText(String.valueOf(item.LeftScale));
// } else {
// holder.layout_p_scale.setVisibility(View.GONE);
// }
// if (item.isType(CardType.Link)) {
// holder.cardLevel.setVisibility(View.GONE);
// holder.linkArrow.setVisibility(View.VISIBLE);
// holder.cardDef.setText(item.getStar() < 0 ? "?" : "LINK-" + String.valueOf(item.getStar()));
// holder.TextDef.setText("");
// BaseActivity.showLinkArrows(item, holder.linkArrow);
// } else {
// holder.cardLevel.setVisibility(View.VISIBLE);
// holder.linkArrow.setVisibility(View.GONE);
// holder.cardDef.setText((item.Defense < 0 ? "?" : String.valueOf(item.Defense)));
// holder.TextDef.setText("DEF/");
// }
//
//
// } else {
//// if (!showCode) {
//// holder.view_bar.setVisibility(View.INVISIBLE);
//// }
// holder.layout_star_attr_race_scale.setVisibility(View.INVISIBLE);
// holder.linkArrow.setVisibility(View.GONE);
// holder.layout_atk.setVisibility(View.GONE);
// holder.layout_def.setVisibility(View.GONE);
// }
// if (mImageTop == null) {
// mImageTop = new ImageTop(context);
// }
// if (mLimitList != null) {
// holder.rightImage.setVisibility(View.VISIBLE);
// if (mLimitList.check(item, LimitType.Forbidden)) {
// holder.rightImage.setImageBitmap(mImageTop.forbidden);
// } else if (mLimitList.check(item, LimitType.Limit)) {
// holder.rightImage.setImageBitmap(mImageTop.limit);
// } else if (mLimitList.check(item, LimitType.SemiLimit)) {
// holder.rightImage.setImageBitmap(mImageTop.semiLimit);
// } else {
// holder.rightImage.setVisibility(View.GONE);
// }
// } else {
// holder.rightImage.setVisibility(View.GONE);
// }
// //卡片类型
// holder.cardType.setText(CardUtils.getAllTypeString(item, mStringManager));
// if (holder.codeView != null) {
// holder.codeView.setText(String.format("%08d", item.getCode()));
// }
// bindMenu(holder, position);
// }
private int getColor(int id) {
......@@ -206,20 +113,6 @@ public class CardListAdapter extends BaseRecyclerAdapterPlus<Card, BaseViewHolde
public void bindMenu(com.chad.library.adapter.base.viewholder.BaseViewHolder holder, int position) {
// setOnItemChildClickListener((adapter, view, position1) -> {
// switch (view.getId()){
// case R.id.btn_add_main:
//
// mShowMenuView = holder.itemView;
// EventBus.getDefault().post(new CardInfoEvent(position1, true));
// break;
// case R.id.btn_add_side:
// mShowMenuView = holder.itemView;
// EventBus.getDefault().post(new CardInfoEvent(position1, false));
// break;
// }
// });
// if (holder.btnMain != null) {
holder.getView(R.id.btn_add_main).setOnClickListener((v) -> {
mShowMenuView = holder.itemView;
......@@ -241,41 +134,41 @@ public class CardListAdapter extends BaseRecyclerAdapterPlus<Card, BaseViewHolde
@Override
protected void convert(com.chad.library.adapter.base.viewholder.BaseViewHolder holder, Card item) {
int position=holder.getAdapterPosition()-getHeaderLayoutCount();
int position = holder.getAdapterPosition() - getHeaderLayoutCount();
imageLoader.bindImage(holder.getView(R.id.card_image), item, ImageLoader.Type.small);
holder.setText(R.id.card_name,item.Name);
holder.setText(R.id.card_name, item.Name);
if (item.isType(CardType.Monster)) {
holder.setGone(R.id.layout_atk,false);
holder.setGone(R.id.layout_def,false);
holder.setGone(R.id.star_attr_race_scale,false);
holder.setGone(R.id.layout_atk, false);
holder.setGone(R.id.layout_def, false);
holder.setGone(R.id.star_attr_race_scale, false);
// holder.view_bar.setVisibility(View.VISIBLE);
String star = "★" + item.getStar();
holder.setText(R.id.card_level,star);
holder.setText(R.id.card_attr,mStringManager.getAttributeString(item.Attribute));
holder.setText(R.id.card_race,mStringManager.getRaceString(item.Race));
holder.setText(R.id.card_atk,(item.Attack < 0 ? "?" : String.valueOf(item.Attack)));
holder.setText(R.id.card_level, star);
holder.setText(R.id.card_attr, mStringManager.getAttributeString(item.Attribute));
holder.setText(R.id.card_race, mStringManager.getRaceString(item.Race));
holder.setText(R.id.card_atk, (item.Attack < 0 ? "?" : String.valueOf(item.Attack)));
if (item.isType(CardType.Xyz)) {
holder.setTextColor(R.id.card_level,getColor(R.color.star_rank));
holder.setTextColor(R.id.card_level, getColor(R.color.star_rank));
} else {
holder.setTextColor(R.id.card_level,getColor(R.color.star));
holder.setTextColor(R.id.card_level, getColor(R.color.star));
}
if (item.isType(CardType.Pendulum)) {
holder.setGone(R.id.p_scale,false);
holder.setText(R.id.card_scale,String.valueOf(item.LeftScale));
holder.setGone(R.id.p_scale, false);
holder.setText(R.id.card_scale, String.valueOf(item.LeftScale));
} else {
holder.setGone(R.id.p_scale,true);
holder.setGone(R.id.p_scale, true);
}
if (item.isType(CardType.Link)) {
holder.setGone(R.id.card_level,true);
holder.setGone(R.id.search_link_arrows,false);
holder.setText(R.id.card_def,item.getStar() < 0 ? "?" : String.valueOf(item.getStar()));
holder.setText(R.id.TextDef,"LINK-");
holder.setGone(R.id.card_level, true);
holder.setGone(R.id.search_link_arrows, false);
holder.setText(R.id.card_def, item.getStar() < 0 ? "?" : String.valueOf(item.getStar()));
holder.setText(R.id.TextDef, "LINK-");
BaseActivity.showLinkArrows(item, holder.getView(R.id.search_link_arrows));
} else {
holder.setGone(R.id.card_level,false);
holder.setGone(R.id.search_link_arrows,true);
holder.setText(R.id.card_def,(item.Defense < 0 ? "?" : String.valueOf(item.Defense)));
holder.setText(R.id.TextDef,"DEF/");
holder.setGone(R.id.card_level, false);
holder.setGone(R.id.search_link_arrows, true);
holder.setText(R.id.card_def, (item.Defense < 0 ? "?" : String.valueOf(item.Defense)));
holder.setText(R.id.TextDef, "DEF/");
}
......@@ -283,36 +176,36 @@ public class CardListAdapter extends BaseRecyclerAdapterPlus<Card, BaseViewHolde
// if (!showCode) {
// holder.view_bar.setVisibility(View.INVISIBLE);
// }
holder.setVisible(R.id.star_attr_race_scale,false);
holder.setGone(R.id.search_link_arrows,true);
holder.setGone(R.id.layout_atk,true);
holder.setGone(R.id.layout_def,true);
holder.setVisible(R.id.star_attr_race_scale, false);
holder.setGone(R.id.search_link_arrows, true);
holder.setGone(R.id.layout_atk, true);
holder.setGone(R.id.layout_def, true);
}
if (mImageTop == null) {
mImageTop = new ImageTop(context);
}
if (mLimitList != null) {
holder.setGone(R.id.right_top,false);
holder.setGone(R.id.right_top, false);
if (mLimitList.check(item, LimitType.Forbidden)) {
holder.setImageBitmap(R.id.right_top,mImageTop.forbidden);
holder.setImageBitmap(R.id.right_top, mImageTop.forbidden);
} else if (mLimitList.check(item, LimitType.Limit)) {
holder.setImageBitmap(R.id.right_top,mImageTop.limit);
holder.setImageBitmap(R.id.right_top, mImageTop.limit);
} else if (mLimitList.check(item, LimitType.SemiLimit)) {
holder.setImageBitmap(R.id.right_top,mImageTop.semiLimit);
holder.setImageBitmap(R.id.right_top, mImageTop.semiLimit);
} else {
holder.setGone(R.id.right_top,true);
holder.setGone(R.id.right_top, true);
}
} else {
holder.setGone(R.id.right_top,true);
holder.setGone(R.id.right_top, true);
}
//卡片类型
holder.setText(R.id.card_type,CardUtils.getAllTypeString(item, mStringManager));
holder.setText(R.id.card_type, CardUtils.getAllTypeString(item, mStringManager));
if (holder.getView(R.id.card_code) != null) {
holder.setText(R.id.card_code,String.format("%08d", item.getCode()));
holder.setText(R.id.card_code, String.format("%08d", item.getCode()));
}
bindMenu(holder, position);
if (mItemBg) {
holder.setBackgroundResource(R.id.swipe_layout,R.drawable.blue);
holder.setBackgroundResource(R.id.swipe_layout, R.drawable.blue);
}
}
}
......
......@@ -31,6 +31,7 @@ import ocgcore.DataManager;
import ocgcore.LimitManager;
import ocgcore.data.Card;
import ocgcore.data.LimitList;
import ocgcore.enums.LimitType;
public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, DeckViewHolder> {
private ImageLoader imageLoader;
......@@ -72,6 +73,7 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D
mLimitList = new LimitList();
mDeckLoader = new DeckLoader();
deckInfo = new DeckInfo();
mLimitList = DataManager.get().getLimitManager().getTopLimit();
}
@SuppressLint("ResourceType")
......@@ -104,12 +106,12 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D
}
//判断是否含有先行卡
Deck deck = this.deckInfo.toDeck();
List<Integer> intList = new ArrayList<>();
intList.addAll(deck.getAlllist());
int len;
List<String> strList = new ArrayList<>();
for (int i = 0; i < deck.getDeckCount(); i++) {
len = intList.get(i).toString().length();
if (len > 8) {
strList.add(deck.getAlllist().get(i).toString());
}
for (int i = 0; i < deck.getDeckCount(); i++) {
if (strList.get(i).length() > 8) {
holder.prerelease_star.setVisibility(View.VISIBLE);
break;
} else {
......@@ -117,6 +119,41 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D
continue;
}
}
if (mLimitList != null) {
for (int i = 0; i < deck.getDeckCount(); i++) {
if (mLimitList.getStringForbidden().contains(strList.get(i))) {
holder.banned_mark.setVisibility(View.VISIBLE);
break;
} else if (mLimitList.getStringLimit().contains(strList.get(i))) {
int limitcount = 0;
for (int j = 0; j < deck.getDeckCount(); j++) {
if (strList.get(i).equals(strList.get(j))) {
limitcount++;
}
}
if (limitcount > 1) {
holder.banned_mark.setVisibility(View.VISIBLE);
break;
}
} else if (mLimitList.getStringSemiLimit().contains(strList.get(i))) {
int semicount = 0;
for (int k = 0; k < deck.getDeckCount(); k++) {
if (strList.get(i).equals(strList.get(k))) {
semicount++;
}
}
if (semicount > 2) {
holder.banned_mark.setVisibility(View.VISIBLE);
break;
}
} else {
holder.banned_mark.setVisibility(View.GONE);
continue;
}
}
}
}
......@@ -163,9 +200,11 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D
void onItemSelect(int position, T item);
}
}
class DeckViewHolder extends com.chad.library.adapter.base.viewholder.BaseViewHolder {
ImageView cardImage;
ImageView prerelease_star;
ImageView banned_mark;
TextView deckName;
TextView main;
TextView extra;
......@@ -182,5 +221,6 @@ class DeckViewHolder extends com.chad.library.adapter.base.viewholder.BaseViewHo
extra = findView(R.id.count_ex);
side = findView(R.id.count_side);
prerelease_star = findView(R.id.prerelease_star);
banned_mark = findView(R.id.banned_mark);
}
}
\ No newline at end of file
......@@ -29,6 +29,42 @@ public class LimitList {
allList = new ArrayList<>();
}
public List<Integer> getForbidden() {
return forbidden;
}
public List<Integer> getLimit() {
return limit;
}
public List<Integer> getSemiLimit() {
return semiLimit;
}
public List<String> getStringForbidden() {
List<String> strFobidden = new ArrayList<>();
for (int i = 0; i< forbidden.size(); i++) {
strFobidden.add(forbidden.get(i).toString());
}
return strFobidden;
}
public List<String> getStringLimit() {
List<String> strLimit = new ArrayList<>();
for (int i = 0; i< limit.size(); i++) {
strLimit.add(limit.get(i).toString());
}
return strLimit;
}
public List<String> getStringSemiLimit() {
List<String> strSemiLimit = new ArrayList<>();
for (int i = 0; i< semiLimit.size(); i++) {
strSemiLimit.add(semiLimit.get(i).toString());
}
return strSemiLimit;
}
public String getName() {
return name;
}
......
......@@ -52,9 +52,17 @@
android:id="@+id/prerelease_star"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_marginRight="5dp"
android:visibility="visible"
android:background="@drawable/ic_expansions"/>
<ImageView
android:id="@+id/banned_mark"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_marginRight="@dimen/dp_10"
android:visibility="visible"
android:background="@drawable/ic_fav"/>
android:background="@drawable/ic_banned"/>
<TextView
android:id="@+id/count_main"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment