Commit 7b5ef321 authored by wangfugui's avatar wangfugui

支持预览卡组,保存卡组

parent fe66657b
...@@ -25,7 +25,7 @@ public class DeckInfo { ...@@ -25,7 +25,7 @@ public class DeckInfo {
private final List<Card> sideCards; private final List<Card> sideCards;
private final List<Card> allCards; private final List<Card> allCards;
public File source; public File source;//当前打开的ydk文件的file
private int mainCount, extraCount, sideCount; private int mainCount, extraCount, sideCount;
......
...@@ -139,7 +139,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -139,7 +139,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
private BaseActivity mContext; private BaseActivity mContext;
long exitLasttime = 0; long exitLasttime = 0;
private File mPreLoadFile; private File mPreLoadFile;//预加载卡组,用于外部打开ydk文件或通过卡组广场预览卡组时,值为file。当未通过预加载打开ydk(打开卡组时),值为null
private DeckItemTouchHelper mDeckItemTouchHelper; private DeckItemTouchHelper mDeckItemTouchHelper;
private TextView tv_deck; private TextView tv_deck;
private TextView tv_result_count; private TextView tv_result_count;
...@@ -211,16 +211,26 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -211,16 +211,26 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
mContext = (BaseActivity) getActivity(); mContext = (BaseActivity) getActivity();
} }
//通过本文件,外部调用fragment时,如果通过setArguments(mBundle)方法设置了ydk文件路径,则直接打开它
/**
*通过本文件,外部调用fragment时,如果通过setArguments(mBundle)方法设置了ydk文件路径,则直接打开它
* 将mPreLoadFile设置为对应的File
*/
public void preLoadFile() { public void preLoadFile() {
String preLoadFile = ""; String preLoadFilePath = "";
if (getArguments() != null) { if (getArguments() != null) {
preLoadFile = getArguments().getString("setDeck"); preLoadFilePath = getArguments().getString("setDeck");
getArguments().clear(); getArguments().clear();
} }
preLoadFile(preLoadFilePath);
}
public void preLoadFile(String preLoadFilePath) {
final File _file; final File _file;
//打开指定卡组 //打开指定卡组
if (!TextUtils.isEmpty(preLoadFile) && (mPreLoadFile = new File(preLoadFile)).exists()) { if (!TextUtils.isEmpty(preLoadFilePath) && (mPreLoadFile = new File(preLoadFilePath)).exists()) {
//外面卡组 //外面卡组
_file = mPreLoadFile; _file = mPreLoadFile;
} else { } else {
...@@ -389,6 +399,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -389,6 +399,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
//region load deck //region load deck
//从文件file中读取deck
private void loadDeckFromFile(File file) { private void loadDeckFromFile(File file) {
if (!mCardLoader.isOpen() || file == null || !file.exists()) { if (!mCardLoader.isOpen() || file == null || !file.exists()) {
setCurDeck(new DeckInfo(), false); setCurDeck(new DeckInfo(), false);
...@@ -791,8 +802,8 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -791,8 +802,8 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
} }
shareDeck(); shareDeck();
break; break;
case R.id.action_save: case R.id.action_save://如果是通过“预加载”打开ydk,则将ydk保存到
if (mPreLoadFile != null && mPreLoadFile == mDeckAdapater.getYdkFile()) { if (mPreLoadFile != null && mPreLoadFile == mDeckAdapater.getYdkFile()) {//代表通过预加载功能打开的ydk
//需要保存到deck文件夹 //需要保存到deck文件夹
inputDeckName(mPreLoadFile, null, true); inputDeckName(mPreLoadFile, null, true);
} else { } else {
...@@ -1258,14 +1269,16 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -1258,14 +1269,16 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
deckData.getDeckYdk(); deckData.getDeckYdk();
String fileFullName = deckData.getDeckName() + ".ydk"; String fileFullName = deckData.getDeckName() + ".ydk";
String path = AppsSettings.get().getDeckDir(); // String path = AppsSettings.get().getDeckDir();
File dir = new File(getActivity().getApplicationInfo().dataDir, "cache");
//将卡组存到cache缓存目录中
boolean result = DeckSquareFileUtil.saveFileToPath(dir.getPath(), fileFullName, deckData.getDeckYdk());
//File dir = new File(getActivity().getApplicationInfo().dataDir, "cache"); if (result) {//存储成功,使用预加载功能
boolean result = DeckSquareFileUtil.saveFileToPath(path, fileFullName, deckData.getDeckYdk());
if (result) {
LogUtil.i(TAG, "square deck detail done"); LogUtil.i(TAG, "square deck detail done");
File file = new File(path, fileFullName); //File file = new File(dir, fileFullName);
loadDeckFromFile(file); preLoadFile(dir.getPath() + "/" + fileFullName);
} }
} }
......
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