Commit eca23c98 authored by fallenstardust's avatar fallenstardust

决斗助手转换的integer组再执行一步先行与正式对照转换

parent b396372c
...@@ -138,14 +138,12 @@ public class DeckLoader { ...@@ -138,14 +138,12 @@ public class DeckLoader {
if (released_code_list.contains(tmp.get(id).getCode())) {//先查看id对应的卡片密码是否在正式数组中存在 if (released_code_list.contains(tmp.get(id).getCode())) {//先查看id对应的卡片密码是否在正式数组中存在
code = pre_code_list.get(released_code_list.indexOf(tmp.get(id).getCode()));//替换成对应先行数组里的code code = pre_code_list.get(released_code_list.indexOf(tmp.get(id).getCode()));//替换成对应先行数组里的code
if (cardLoader.readAllCardCodes().get(code) != null) {//万一他还没下载扩展卡包就不执行否则会空指错误 if (cardLoader.readAllCardCodes().get(code) != null) {//万一他还没下载扩展卡包就不执行否则会空指错误
tmp.remove(id); tmp.set(id, cardLoader.readAllCardCodes().get(code));
tmp.put(id, cardLoader.readAllCardCodes().get(code));
} }
}//执行完后变成先行密码,如果constants对照表里存在该密码,则如下又转换一次,确保正式更新后不会出错,最好发布app后必须及时更新在线对照表 }//执行完后变成先行密码,如果constants对照表里存在该密码,则如下又转换一次,确保正式更新后不会出错,最好发布app后必须及时更新在线对照表
if (ArrayUtil.contains(oldIDsArray, tmp.get(id).getCode())) { if (ArrayUtil.contains(oldIDsArray, tmp.get(id).getCode())) {
code = ArrayUtil.get(newIDsArray, ArrayUtil.indexOf(oldIDsArray, tmp.get(id).getCode())); code = ArrayUtil.get(newIDsArray, ArrayUtil.indexOf(oldIDsArray, tmp.get(id).getCode()));
tmp.remove(id); tmp.set(id, cardLoader.readAllCardCodes().get(code));
tmp.put(id, cardLoader.readAllCardCodes().get(code));
isChanged = true; isChanged = true;
} }
deckInfo.addMainCards(id, tmp.get(id), type == DeckItemType.Pack); deckInfo.addMainCards(id, tmp.get(id), type == DeckItemType.Pack);
...@@ -155,14 +153,12 @@ public class DeckLoader { ...@@ -155,14 +153,12 @@ public class DeckLoader {
if (released_code_list.contains(tmp.get(id).getCode())) { if (released_code_list.contains(tmp.get(id).getCode())) {
code = pre_code_list.get(released_code_list.indexOf(tmp.get(id).getCode())); code = pre_code_list.get(released_code_list.indexOf(tmp.get(id).getCode()));
if (cardLoader.readAllCardCodes().get(code) != null) { if (cardLoader.readAllCardCodes().get(code) != null) {
tmp.remove(id); tmp.set(id, cardLoader.readAllCardCodes().get(code));
tmp.put(id, cardLoader.readAllCardCodes().get(code));
} }
} }
if (ArrayUtil.contains(oldIDsArray, tmp.get(id).getCode())) { if (ArrayUtil.contains(oldIDsArray, tmp.get(id).getCode())) {
code = ArrayUtil.get(newIDsArray, ArrayUtil.indexOf(oldIDsArray, tmp.get(id).getCode())); code = ArrayUtil.get(newIDsArray, ArrayUtil.indexOf(oldIDsArray, tmp.get(id).getCode()));
tmp.remove(id); tmp.set(id, cardLoader.readAllCardCodes().get(code));
tmp.put(id, cardLoader.readAllCardCodes().get(code));
isChanged = true; isChanged = true;
} }
deckInfo.addExtraCards(tmp.get(id)); deckInfo.addExtraCards(tmp.get(id));
...@@ -173,14 +169,12 @@ public class DeckLoader { ...@@ -173,14 +169,12 @@ public class DeckLoader {
if (released_code_list.contains(tmp.get(id).getCode())) { if (released_code_list.contains(tmp.get(id).getCode())) {
code = pre_code_list.get(released_code_list.indexOf(tmp.get(id).getCode())); code = pre_code_list.get(released_code_list.indexOf(tmp.get(id).getCode()));
if (cardLoader.readAllCardCodes().get(code) != null) { if (cardLoader.readAllCardCodes().get(code) != null) {
tmp.remove(id); tmp.set(id, cardLoader.readAllCardCodes().get(code));
tmp.put(id, cardLoader.readAllCardCodes().get(code));
} }
} }
if (ArrayUtil.contains(oldIDsArray, tmp.get(id).getCode())) { if (ArrayUtil.contains(oldIDsArray, tmp.get(id).getCode())) {
code = ArrayUtil.get(newIDsArray, ArrayUtil.indexOf(oldIDsArray, tmp.get(id).getCode())); code = ArrayUtil.get(newIDsArray, ArrayUtil.indexOf(oldIDsArray, tmp.get(id).getCode()));
tmp.remove(id); tmp.set(id, cardLoader.readAllCardCodes().get(code));
tmp.put(id, cardLoader.readAllCardCodes().get(code));
isChanged = true; isChanged = true;
} }
deckInfo.addSideCards(tmp.get(id)); deckInfo.addSideCards(tmp.get(id));
......
...@@ -437,7 +437,4 @@ public abstract class HomeActivity extends BaseActivity implements BottomNavigat ...@@ -437,7 +437,4 @@ public abstract class HomeActivity extends BaseActivity implements BottomNavigat
} }
} }
} }
package cn.garymb.ygomobile.ui.home; package cn.garymb.ygomobile.ui.home;
import static cn.garymb.ygomobile.Constants.ASSET_SERVER_LIST; import static cn.garymb.ygomobile.Constants.ASSET_SERVER_LIST;
import static cn.garymb.ygomobile.Constants.newIDsArray;
import static cn.garymb.ygomobile.Constants.oldIDsArray;
import static cn.garymb.ygomobile.ui.home.HomeActivity.pre_code_list;
import static cn.garymb.ygomobile.ui.home.HomeActivity.released_code_list;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Intent; import android.content.Intent;
...@@ -76,6 +80,7 @@ import cn.garymb.ygomobile.utils.FileLogUtil; ...@@ -76,6 +80,7 @@ import cn.garymb.ygomobile.utils.FileLogUtil;
import cn.garymb.ygomobile.utils.LogUtil; import cn.garymb.ygomobile.utils.LogUtil;
import cn.garymb.ygomobile.utils.ServerUtil; import cn.garymb.ygomobile.utils.ServerUtil;
import cn.garymb.ygomobile.utils.YGOUtil; import cn.garymb.ygomobile.utils.YGOUtil;
import cn.hutool.core.util.ArrayUtil;
import ocgcore.CardManager; import ocgcore.CardManager;
import ocgcore.DataManager; import ocgcore.DataManager;
import ocgcore.data.Card; import ocgcore.data.Card;
...@@ -100,6 +105,7 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene ...@@ -100,6 +105,7 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene
private ServerListAdapter mServerListAdapter; private ServerListAdapter mServerListAdapter;
private ServerListManager mServerListManager; private ServerListManager mServerListManager;
private CardManager mCardManager; private CardManager mCardManager;
private SparseArray<Card> cards;
private CardDetailRandom mCardDetailRandom; private CardDetailRandom mCardDetailRandom;
//轮播图 //轮播图
private CardView cv_banner; private CardView cv_banner;
...@@ -557,6 +563,31 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene ...@@ -557,6 +563,31 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene
YGOUtil.showTextToast("卡组解析失败,原因为:" + exception); YGOUtil.showTextToast("卡组解析失败,原因为:" + exception);
return; return;
} }
for (Integer id : mainList) {
if (released_code_list.contains(id)) {//先查看id对应的卡片密码是否在正式数组中存在
mainList.set(mainList.indexOf(id), pre_code_list.get(released_code_list.indexOf(id)));//使用set而不是用remove和add为了避免Arraylist的ConcurrentModificationException异常
}
//执行完后变成先行密码,如果constants对照表里存在该密码,则如下又转换一次,确保正式更新后不会出错,最好发布app后必须及时更新在线对照表
if (ArrayUtil.contains(oldIDsArray, id)) {
mainList.set(mainList.indexOf(id), ArrayUtil.get(newIDsArray, ArrayUtil.indexOf(oldIDsArray, id)));
}
}
for (Integer id : exList) {
if (released_code_list.contains(id)) {
exList.set(exList.indexOf(id), pre_code_list.get(released_code_list.indexOf(id)));
}
if (ArrayUtil.contains(oldIDsArray, id)) {
exList.set(exList.indexOf(id), ArrayUtil.get(newIDsArray, ArrayUtil.indexOf(oldIDsArray, id)));
}
}
for (Integer id : sideList) {
if (released_code_list.contains(id)) {
sideList.set(sideList.indexOf(id), pre_code_list.get(released_code_list.indexOf(id)));
}
if (ArrayUtil.contains(oldIDsArray, id)) {
sideList.add(sideList.indexOf(id), ArrayUtil.get(newIDsArray, ArrayUtil.indexOf(oldIDsArray, id)));
}
}
DialogPlus dialog = new DialogPlus(getContext()); DialogPlus dialog = new DialogPlus(getContext());
dialog.setTitle(R.string.question); dialog.setTitle(R.string.question);
dialog.setMessage(R.string.find_deck_text); dialog.setMessage(R.string.find_deck_text);
...@@ -569,16 +600,16 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene ...@@ -569,16 +600,16 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene
}); });
dialog.setRightButtonListener((dlg, s) -> { dialog.setRightButtonListener((dlg, s) -> {
dialog.dismiss(); dialog.dismiss();
Deck deckInfo; Deck deck;
//如果是卡组url //如果是卡组url
if (uri != null) { if (uri != null) {
deckInfo = new Deck(uri, mainList, exList, sideList); deck = new Deck(uri, mainList, exList, sideList);
} else { } else {
deckInfo = new Deck(getString(R.string.rename_deck) + System.currentTimeMillis(), mainList, exList, sideList); deck = new Deck(getString(R.string.rename_deck) + System.currentTimeMillis(), mainList, exList, sideList);
} }
deckInfo.setCompleteDeck(isCompleteDeck); deck.setCompleteDeck(isCompleteDeck);
File file = deckInfo.saveTemp(AppsSettings.get().getDeckDir()); File file = deck.saveTemp(AppsSettings.get().getDeckDir());
if (!deckInfo.isCompleteDeck()) { if (!deck.isCompleteDeck()) {
YGOUtil.showTextToast(activity.getString(R.string.tip_deckInfo_isNot_completeDeck)); YGOUtil.showTextToast(activity.getString(R.string.tip_deckInfo_isNot_completeDeck));
} }
if (!file.getAbsolutePath().isEmpty()) { if (!file.getAbsolutePath().isEmpty()) {
......
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