Commit e3fab5c8 authored by wangfugui's avatar wangfugui

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

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