Commit 67d89e78 authored by fallenstardust's avatar fallenstardust

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

parent 38f8af59
package cn.garymb.ygomobile.ui.adapters; package cn.garymb.ygomobile.ui.adapters;
import android.content.Context; import android.content.Context;
import android.util.Log;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; 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.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.tubb.smrv.SwipeHorizontalMenuLayout; import com.tubb.smrv.SwipeHorizontalMenuLayout;
...@@ -39,7 +33,7 @@ public class CardListAdapter extends BaseRecyclerAdapterPlus<Card, BaseViewHolde ...@@ -39,7 +33,7 @@ public class CardListAdapter extends BaseRecyclerAdapterPlus<Card, BaseViewHolde
private boolean mEnableSwipe = false; private boolean mEnableSwipe = false;
public CardListAdapter(Context context, ImageLoader imageLoader) { 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; this.imageLoader = imageLoader;
mStringManager = DataManager.get().getStringManager(); mStringManager = DataManager.get().getStringManager();
} }
...@@ -102,94 +96,7 @@ public class CardListAdapter extends BaseRecyclerAdapterPlus<Card, BaseViewHolde ...@@ -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) { private int getColor(int id) {
...@@ -206,20 +113,6 @@ public class CardListAdapter extends BaseRecyclerAdapterPlus<Card, BaseViewHolde ...@@ -206,20 +113,6 @@ public class CardListAdapter extends BaseRecyclerAdapterPlus<Card, BaseViewHolde
public void bindMenu(com.chad.library.adapter.base.viewholder.BaseViewHolder holder, int position) { 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) { // if (holder.btnMain != null) {
holder.getView(R.id.btn_add_main).setOnClickListener((v) -> { holder.getView(R.id.btn_add_main).setOnClickListener((v) -> {
mShowMenuView = holder.itemView; mShowMenuView = holder.itemView;
...@@ -241,41 +134,41 @@ public class CardListAdapter extends BaseRecyclerAdapterPlus<Card, BaseViewHolde ...@@ -241,41 +134,41 @@ public class CardListAdapter extends BaseRecyclerAdapterPlus<Card, BaseViewHolde
@Override @Override
protected void convert(com.chad.library.adapter.base.viewholder.BaseViewHolder holder, Card item) { 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); 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)) { if (item.isType(CardType.Monster)) {
holder.setGone(R.id.layout_atk,false); holder.setGone(R.id.layout_atk, false);
holder.setGone(R.id.layout_def,false); holder.setGone(R.id.layout_def, false);
holder.setGone(R.id.star_attr_race_scale,false); holder.setGone(R.id.star_attr_race_scale, false);
// holder.view_bar.setVisibility(View.VISIBLE); // holder.view_bar.setVisibility(View.VISIBLE);
String star = "★" + item.getStar(); String star = "★" + item.getStar();
holder.setText(R.id.card_level,star); holder.setText(R.id.card_level, star);
holder.setText(R.id.card_attr,mStringManager.getAttributeString(item.Attribute)); 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_race, mStringManager.getRaceString(item.Race));
holder.setText(R.id.card_atk,(item.Attack < 0 ? "?" : String.valueOf(item.Attack))); holder.setText(R.id.card_atk, (item.Attack < 0 ? "?" : String.valueOf(item.Attack)));
if (item.isType(CardType.Xyz)) { 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 { } 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)) { if (item.isType(CardType.Pendulum)) {
holder.setGone(R.id.p_scale,false); holder.setGone(R.id.p_scale, false);
holder.setText(R.id.card_scale,String.valueOf(item.LeftScale)); holder.setText(R.id.card_scale, String.valueOf(item.LeftScale));
} else { } else {
holder.setGone(R.id.p_scale,true); holder.setGone(R.id.p_scale, true);
} }
if (item.isType(CardType.Link)) { if (item.isType(CardType.Link)) {
holder.setGone(R.id.card_level,true); holder.setGone(R.id.card_level, true);
holder.setGone(R.id.search_link_arrows,false); 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.card_def, item.getStar() < 0 ? "?" : String.valueOf(item.getStar()));
holder.setText(R.id.TextDef,"LINK-"); holder.setText(R.id.TextDef, "LINK-");
BaseActivity.showLinkArrows(item, holder.getView(R.id.search_link_arrows)); BaseActivity.showLinkArrows(item, holder.getView(R.id.search_link_arrows));
} else { } else {
holder.setGone(R.id.card_level,false); holder.setGone(R.id.card_level, false);
holder.setGone(R.id.search_link_arrows,true); 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.card_def, (item.Defense < 0 ? "?" : String.valueOf(item.Defense)));
holder.setText(R.id.TextDef,"DEF/"); holder.setText(R.id.TextDef, "DEF/");
} }
...@@ -283,36 +176,36 @@ public class CardListAdapter extends BaseRecyclerAdapterPlus<Card, BaseViewHolde ...@@ -283,36 +176,36 @@ public class CardListAdapter extends BaseRecyclerAdapterPlus<Card, BaseViewHolde
// if (!showCode) { // if (!showCode) {
// holder.view_bar.setVisibility(View.INVISIBLE); // holder.view_bar.setVisibility(View.INVISIBLE);
// } // }
holder.setVisible(R.id.star_attr_race_scale,false); holder.setVisible(R.id.star_attr_race_scale, false);
holder.setGone(R.id.search_link_arrows,true); holder.setGone(R.id.search_link_arrows, true);
holder.setGone(R.id.layout_atk,true); holder.setGone(R.id.layout_atk, true);
holder.setGone(R.id.layout_def,true); holder.setGone(R.id.layout_def, true);
} }
if (mImageTop == null) { if (mImageTop == null) {
mImageTop = new ImageTop(context); mImageTop = new ImageTop(context);
} }
if (mLimitList != null) { if (mLimitList != null) {
holder.setGone(R.id.right_top,false); holder.setGone(R.id.right_top, false);
if (mLimitList.check(item, LimitType.Forbidden)) { 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)) { } 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)) { } else if (mLimitList.check(item, LimitType.SemiLimit)) {
holder.setImageBitmap(R.id.right_top,mImageTop.semiLimit); holder.setImageBitmap(R.id.right_top, mImageTop.semiLimit);
} else { } else {
holder.setGone(R.id.right_top,true); holder.setGone(R.id.right_top, true);
} }
} else { } 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) { 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); bindMenu(holder, position);
if (mItemBg) { 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; ...@@ -31,6 +31,7 @@ import ocgcore.DataManager;
import ocgcore.LimitManager; import ocgcore.LimitManager;
import ocgcore.data.Card; import ocgcore.data.Card;
import ocgcore.data.LimitList; import ocgcore.data.LimitList;
import ocgcore.enums.LimitType;
public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, DeckViewHolder> { public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, DeckViewHolder> {
private ImageLoader imageLoader; private ImageLoader imageLoader;
...@@ -72,6 +73,7 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D ...@@ -72,6 +73,7 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D
mLimitList = new LimitList(); mLimitList = new LimitList();
mDeckLoader = new DeckLoader(); mDeckLoader = new DeckLoader();
deckInfo = new DeckInfo(); deckInfo = new DeckInfo();
mLimitList = DataManager.get().getLimitManager().getTopLimit();
} }
@SuppressLint("ResourceType") @SuppressLint("ResourceType")
...@@ -104,12 +106,12 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D ...@@ -104,12 +106,12 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D
} }
//判断是否含有先行卡 //判断是否含有先行卡
Deck deck = this.deckInfo.toDeck(); Deck deck = this.deckInfo.toDeck();
List<Integer> intList = new ArrayList<>(); List<String> strList = new ArrayList<>();
intList.addAll(deck.getAlllist());
int len;
for (int i = 0; i < deck.getDeckCount(); i++) { for (int i = 0; i < deck.getDeckCount(); i++) {
len = intList.get(i).toString().length(); strList.add(deck.getAlllist().get(i).toString());
if (len > 8) { }
for (int i = 0; i < deck.getDeckCount(); i++) {
if (strList.get(i).length() > 8) {
holder.prerelease_star.setVisibility(View.VISIBLE); holder.prerelease_star.setVisibility(View.VISIBLE);
break; break;
} else { } else {
...@@ -117,6 +119,41 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D ...@@ -117,6 +119,41 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D
continue; 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 ...@@ -163,9 +200,11 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D
void onItemSelect(int position, T item); void onItemSelect(int position, T item);
} }
} }
class DeckViewHolder extends com.chad.library.adapter.base.viewholder.BaseViewHolder { class DeckViewHolder extends com.chad.library.adapter.base.viewholder.BaseViewHolder {
ImageView cardImage; ImageView cardImage;
ImageView prerelease_star; ImageView prerelease_star;
ImageView banned_mark;
TextView deckName; TextView deckName;
TextView main; TextView main;
TextView extra; TextView extra;
...@@ -182,5 +221,6 @@ class DeckViewHolder extends com.chad.library.adapter.base.viewholder.BaseViewHo ...@@ -182,5 +221,6 @@ class DeckViewHolder extends com.chad.library.adapter.base.viewholder.BaseViewHo
extra = findView(R.id.count_ex); extra = findView(R.id.count_ex);
side = findView(R.id.count_side); side = findView(R.id.count_side);
prerelease_star = findView(R.id.prerelease_star); 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 { ...@@ -29,6 +29,42 @@ public class LimitList {
allList = new ArrayList<>(); 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() { public String getName() {
return name; return name;
} }
......
...@@ -52,9 +52,17 @@ ...@@ -52,9 +52,17 @@
android:id="@+id/prerelease_star" android:id="@+id/prerelease_star"
android:layout_width="15dp" android:layout_width="15dp"
android:layout_height="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:layout_marginRight="@dimen/dp_10"
android:visibility="visible" android:visibility="visible"
android:background="@drawable/ic_fav"/> android:background="@drawable/ic_banned"/>
<TextView <TextView
android:id="@+id/count_main" 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