Commit e3fab5c8 authored by wangfugui's avatar wangfugui

添加注释、删除打开DeckSquareActivity的按钮

parent 873b5119
...@@ -21,6 +21,11 @@ public class DeckFile extends TextSelect { ...@@ -21,6 +21,11 @@ public class DeckFile extends TextSelect {
// this.onServer = onServer; // this.onServer = onServer;
// } // }
public DeckFile(String deckId, DeckType.ServerType onServer) {
this.deckId = deckId;
this.onServer = onServer;
}
public DeckFile(String name, String typeName, DeckType.ServerType onServer, String deckId) { public DeckFile(String name, String typeName, DeckType.ServerType onServer, String deckId) {
this.typeName = typeName; this.typeName = typeName;
this.onServer = onServer; this.onServer = onServer;
...@@ -108,4 +113,16 @@ public class DeckFile extends TextSelect { ...@@ -108,4 +113,16 @@ public class DeckFile extends TextSelect {
public void setDeckId(String deckId) { public void setDeckId(String deckId) {
this.deckId = deckId; this.deckId = deckId;
} }
@Override
public String toString() {
return "DeckFile{" +
"path=" + path +
", fileFullName='" + fileFullName + '\'' +
", typeName='" + typeName + '\'' +
", firstCode=" + firstCode +
", onServer=" + onServer +
", deckId='" + deckId + '\'' +
'}';
}
} }
...@@ -90,7 +90,7 @@ public class DeckSquareFileUtil { ...@@ -90,7 +90,7 @@ public class DeckSquareFileUtil {
return files; return files;
} }
//读取卡组目录下的所有ydk文件,解析ydk文件,生成List<MyDeckItem>解析结果 //读取卡组目录下的所有ydk文件,解析ydk文件(包括从ydk文件内容中读取deckId),生成List<MyDeckItem>解析结果
public static List<MyDeckItem> getMyDeckItem() { public static List<MyDeckItem> getMyDeckItem() {
List<MyDeckItem> result = new ArrayList<>(); List<MyDeckItem> result = new ArrayList<>();
File[] files = getAllYdk(); File[] files = getAllYdk();
......
...@@ -7,7 +7,7 @@ public class PushDeckResponse { ...@@ -7,7 +7,7 @@ public class PushDeckResponse {
private Integer code; private Integer code;
private String message; private String message;
private boolean data; private boolean data;//服务器的执行结果,true代表卡组上传成功。false代表卡组上传失败
public Integer getCode() { public Integer getCode() {
return code; return code;
......
package cn.garymb.ygomobile.loader; package cn.garymb.ygomobile.loader;
import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.SparseArray; import android.util.SparseArray;
...@@ -13,8 +12,6 @@ import java.util.Comparator; ...@@ -13,8 +12,6 @@ import java.util.Comparator;
import java.util.List; import java.util.List;
import cn.garymb.ygomobile.Constants; import cn.garymb.ygomobile.Constants;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.plus.DialogPlus;
import cn.garymb.ygomobile.ui.plus.VUiKit; import cn.garymb.ygomobile.ui.plus.VUiKit;
import cn.garymb.ygomobile.utils.CardSort; import cn.garymb.ygomobile.utils.CardSort;
import cn.garymb.ygomobile.utils.LogUtil; import cn.garymb.ygomobile.utils.LogUtil;
...@@ -27,9 +24,9 @@ import ocgcore.enums.LimitType; ...@@ -27,9 +24,9 @@ import ocgcore.enums.LimitType;
/** /**
* 包括LimitManager、CardManager、LimitList * 包括LimitManager、CardManager、LimitList
* <p>
* LimitList负责判断禁止卡等 * LimitList负责判断禁止卡等
* field包括LimitManager、CardManager * LimitManager、CardManager已封装成单例,使用时不需要构造实例
* 未封装成单例,使用时要构造实例
*/ */
public class CardLoader implements ICardSearcher { public class CardLoader implements ICardSearcher {
private final LimitManager mLimitManager; private final LimitManager mLimitManager;
......
...@@ -76,7 +76,6 @@ import cn.garymb.ygomobile.bean.events.CardInfoEvent; ...@@ -76,7 +76,6 @@ import cn.garymb.ygomobile.bean.events.CardInfoEvent;
import cn.garymb.ygomobile.bean.events.DeckFile; import cn.garymb.ygomobile.bean.events.DeckFile;
import cn.garymb.ygomobile.core.IrrlichtBridge; import cn.garymb.ygomobile.core.IrrlichtBridge;
import cn.garymb.ygomobile.deck_square.DeckManageDialog; import cn.garymb.ygomobile.deck_square.DeckManageDialog;
import cn.garymb.ygomobile.deck_square.DeckSquareActivity;
import cn.garymb.ygomobile.deck_square.DeckSquareApiUtil; import cn.garymb.ygomobile.deck_square.DeckSquareApiUtil;
import cn.garymb.ygomobile.deck_square.DeckSquareFileUtil; import cn.garymb.ygomobile.deck_square.DeckSquareFileUtil;
import cn.garymb.ygomobile.deck_square.api_response.DownloadDeckResponse; import cn.garymb.ygomobile.deck_square.api_response.DownloadDeckResponse;
...@@ -116,6 +115,7 @@ import ocgcore.data.LimitList; ...@@ -116,6 +115,7 @@ import ocgcore.data.LimitList;
import ocgcore.enums.LimitType; import ocgcore.enums.LimitType;
/** /**
* 卡组编辑页面,在本页面中显示某个卡组的内容
* 注意,卡组编辑页面中的长按事件回调在ItemTouchHelperPlus中实现,而非在 * 注意,卡组编辑页面中的长按事件回调在ItemTouchHelperPlus中实现,而非在
* RecyclerViewItemListener.OnItemListener中 * RecyclerViewItemListener.OnItemListener中
*/ */
...@@ -159,6 +159,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -159,6 +159,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
layoutView = inflater.inflate(R.layout.fragment_deck_cards, container, false); layoutView = inflater.inflate(R.layout.fragment_deck_cards, container, false);
AnimationShake2(layoutView); AnimationShake2(layoutView);
initView(layoutView); initView(layoutView);
//检查外部调用方是否传入了ydk文件路径,如果传入,则打开外部ydk文件
preLoadFile(); preLoadFile();
//event //event
if (!EventBus.getDefault().isRegistered(this)) {//加上判断 if (!EventBus.getDefault().isRegistered(this)) {//加上判断
...@@ -206,7 +207,6 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -206,7 +207,6 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
initBoomMenuButton(layoutView.findViewById(R.id.bmb)); initBoomMenuButton(layoutView.findViewById(R.id.bmb));
layoutView.findViewById(R.id.btn_nav_search).setOnClickListener((v) -> doMenu(R.id.action_search)); layoutView.findViewById(R.id.btn_nav_search).setOnClickListener((v) -> doMenu(R.id.action_search));
layoutView.findViewById(R.id.btn_nav_list).setOnClickListener((v) -> doMenu(R.id.action_card_list)); layoutView.findViewById(R.id.btn_nav_list).setOnClickListener((v) -> doMenu(R.id.action_card_list));
layoutView.findViewById(R.id.open_deck_square).setOnClickListener((v) -> doMenu(R.id.open_deck_square));
tv_deck.setOnClickListener(v -> tv_deck.setOnClickListener(v ->
{ {
new DeckManageDialog(this).show( new DeckManageDialog(this).show(
...@@ -221,7 +221,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -221,7 +221,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
/** /**
* 通过本文件,外部调用fragment时,如果通过setArguments(mBundle)方法设置了ydk文件路径,则直接打开它 * 外部调用fragment时,如果通过setArguments(mBundle)方法设置了ydk文件路径,则直接打开该ydk文件
* 将mPreLoadFile设置为对应的File * 将mPreLoadFile设置为对应的File
*/ */
public void preLoadFile() { public void preLoadFile() {
...@@ -234,6 +234,10 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -234,6 +234,10 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
} }
/**
* 传入外部ydk文件的路径,临时在本页面中打开该ydk的内容,用于后续的保存
* @param preLoadFilePath 外部ydk文件的路径
*/
public void preLoadFile(String preLoadFilePath) { public void preLoadFile(String preLoadFilePath) {
final File _file; final File _file;
...@@ -880,11 +884,6 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -880,11 +884,6 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
} }
} }
break; break;
case R.id.open_deck_square: {
Intent exCardIntent = new Intent(getActivity(), DeckSquareActivity.class);
startActivity(exCardIntent);
}
break;
case R.id.action_unsort: case R.id.action_unsort:
//打乱 //打乱
mDeckAdapater.unSort(); mDeckAdapater.unSort();
...@@ -1255,6 +1254,8 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -1255,6 +1254,8 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
YGOUtil.showTextToast(R.string.done); YGOUtil.showTextToast(R.string.done);
} }
//在卡组选择的dialog中点击某个卡组(来自本地或服务器)后,dialog通过本回调函数通知本页面。
//在本页面中根据卡组来源(本地或服务器)显示卡组内容
@Override @Override
public void onDeckSelect(DeckFile deckFile) { public void onDeckSelect(DeckFile deckFile) {
if (!deckFile.isLocal()) {//不在本地,在云上(卡组广场中或用户的云上) if (!deckFile.isLocal()) {//不在本地,在云上(卡组广场中或用户的云上)
......
...@@ -37,19 +37,12 @@ import cn.garymb.ygomobile.AppsSettings; ...@@ -37,19 +37,12 @@ import cn.garymb.ygomobile.AppsSettings;
import cn.garymb.ygomobile.Constants; import cn.garymb.ygomobile.Constants;
import cn.garymb.ygomobile.bean.DeckType; import cn.garymb.ygomobile.bean.DeckType;
import cn.garymb.ygomobile.bean.events.DeckFile; import cn.garymb.ygomobile.bean.events.DeckFile;
import cn.garymb.ygomobile.deck_square.DeckSquareApiUtil;
import cn.garymb.ygomobile.deck_square.DeckSquareTabAdapter;
import cn.garymb.ygomobile.deck_square.api_response.MyDeckResponse;
import cn.garymb.ygomobile.deck_square.api_response.MyOnlineDeckDetail;
import cn.garymb.ygomobile.deck_square.api_response.OnlineDeckDetail;
import cn.garymb.ygomobile.deck_square.api_response.SquareDeckResponse;
import cn.garymb.ygomobile.lite.R; import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.adapters.DeckListAdapter; import cn.garymb.ygomobile.ui.adapters.DeckListAdapter;
import cn.garymb.ygomobile.ui.adapters.SimpleListAdapter; import cn.garymb.ygomobile.ui.adapters.SimpleListAdapter;
import cn.garymb.ygomobile.ui.adapters.TextSelectAdapter; import cn.garymb.ygomobile.ui.adapters.TextSelectAdapter;
import cn.garymb.ygomobile.ui.mycard.mcchat.util.ImageUtil; import cn.garymb.ygomobile.ui.mycard.mcchat.util.ImageUtil;
import cn.garymb.ygomobile.ui.plus.DialogPlus; import cn.garymb.ygomobile.ui.plus.DialogPlus;
import cn.garymb.ygomobile.ui.plus.VUiKit;
import cn.garymb.ygomobile.utils.recyclerview.DeckTypeTouchHelperCallback; import cn.garymb.ygomobile.utils.recyclerview.DeckTypeTouchHelperCallback;
public class YGODeckDialogUtil { public class YGODeckDialogUtil {
...@@ -100,9 +93,8 @@ public class YGODeckDialogUtil { ...@@ -100,9 +93,8 @@ public class YGODeckDialogUtil {
viewHolder.show(); viewHolder.show();
} }
private DeckSquareTabAdapter adapter;
//注册listener,发生点击卡组事件后,通知主界面进行对应的显示更新 //注册listener,发生点击卡组事件后,通知外部的activity进行对应的显示更新
public interface OnDeckMenuListener { public interface OnDeckMenuListener {
void onDeckSelect(DeckFile deckFile); void onDeckSelect(DeckFile deckFile);
...@@ -115,12 +107,14 @@ public class YGODeckDialogUtil { ...@@ -115,12 +107,14 @@ public class YGODeckDialogUtil {
void onDeckNew(DeckType currentDeckType); void onDeckNew(DeckType currentDeckType);
} }
public interface OnDeckDialogListener { public interface OnDeckDialogListener {
void onDismiss(); void onDismiss();
void onShow(); void onShow();
} }
public interface OnDeckTypeListener { public interface OnDeckTypeListener {
void onDeckTypeListener(int position); void onDeckTypeListener(int position);
} }
...@@ -248,71 +242,20 @@ public class YGODeckDialogUtil { ...@@ -248,71 +242,20 @@ public class YGODeckDialogUtil {
public void onItemSelect(int position, DeckType item) { public void onItemSelect(int position, DeckType item) {
clearDeckSelect(); clearDeckSelect();
deckList.clear(); deckList.clear();
if (item.getOnServer() == DeckType.ServerType.SQUARE_DECK) { deckList.addAll(DeckUtil.getDeckList(item.getPath()));
VUiKit.defer().when(() -> { if (position == 0) {
SquareDeckResponse result = DeckSquareApiUtil.getSquareDecks(); if (AppsSettings.get().isReadExpansions()) {
try {
if (result == null) { if (!DeckUtil.getExpansionsDeckList().isEmpty()) {
return null; deckList.addAll(0, DeckUtil.getExpansionsDeckList());
} else {
return result.getData().getRecords();
}
}).fail(e -> {
YGOUtil.showTextToast("Fetch square deck fail");
}).done(exCardDataList -> {
if (exCardDataList != null) {
LogUtil.i(TAG, "Get square deck success");
for (OnlineDeckDetail deckRecord : exCardDataList) {
DeckFile deckFile = new DeckFile(deckRecord.getDeckName(), "", DeckType.ServerType.SQUARE_DECK, deckRecord.getDeckId());
deckList.add(deckFile);
}
deckAdp.notifyDataSetChanged();
}
});
} else if (item.getOnServer() == DeckType.ServerType.MY_SQUARE) {
VUiKit.defer().when(() -> {
String serverToken = SharedPreferenceUtil.getServerToken();
Integer serverUserId = SharedPreferenceUtil.getServerUserId();
MyDeckResponse result = DeckSquareApiUtil.getUserDecks(serverUserId, serverToken);
if (result == null) {
return null;
} else {
return result.getData();
}
}).fail(e -> {
YGOUtil.showTextToast("Fetch square deck fail");
}).done(exCardDataList -> {
if (exCardDataList != null) {
LogUtil.i(TAG, "Get square deck success");
for (MyOnlineDeckDetail deckRecord : exCardDataList) {
DeckFile deckFile = new DeckFile(deckRecord.getDeckName(), "", DeckType.ServerType.MY_SQUARE, deckRecord.getDeckId());
deckList.add(deckFile);
}
deckAdp.notifyDataSetChanged();
}
});
} else {
deckList.addAll(DeckUtil.getDeckList(item.getPath()));
if (position == 0) {
if (AppsSettings.get().isReadExpansions()) {
try {
if (!DeckUtil.getExpansionsDeckList().isEmpty()) {
deckList.addAll(0, DeckUtil.getExpansionsDeckList());
}
} catch (IOException e) {
YGOUtil.showTextToast("额外卡库加载失败,原因为" + e);
} }
} catch (IOException e) {
YGOUtil.showTextToast("额外卡库加载失败,原因为" + e);
} }
} }
deckAdp.notifyDataSetChanged();
} }
deckAdp.notifyDataSetChanged();
} }
}); });
deckAdp.setOnItemSelectListener(new DeckListAdapter.OnItemSelectListener<DeckFile>() { deckAdp.setOnItemSelectListener(new DeckListAdapter.OnItemSelectListener<DeckFile>() {
......
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