Commit 19aa0720 authored by feihuaduo's avatar feihuaduo

删除崩溃的问题

先行卡卡包会消失的问题
parent edcfca4d
......@@ -652,7 +652,10 @@ class DeckManagerActivityImpl extends BaseCardsAcitivity implements RecyclerView
}
break;
case R.id.action_delete_deck: {
if (mDeckAdapater.getYdkFile().getParent().equals(mSettings.getAiDeckDir())) {
File ydk = mDeckAdapater.getYdkFile();
if (ydk == null)
return true;
if (ydk.getParent().equals(mSettings.getAiDeckDir())) {
Toast.makeText(this, R.string.donot_editor_bot_Deck, Toast.LENGTH_SHORT).show();
} else {
DialogPlus builder = new DialogPlus(this);
......@@ -660,15 +663,16 @@ class DeckManagerActivityImpl extends BaseCardsAcitivity implements RecyclerView
builder.setMessage(R.string.question_delete_deck);
builder.setMessageGravity(Gravity.CENTER_HORIZONTAL);
builder.setLeftButtonListener((dlg, rs) -> {
File ydk = mDeckAdapater.getYdkFile();
if (ydk == null) {
return;
}
if (ydk != null) {
FileUtils.deleteFile(ydk);
dlg.dismiss();
File file = getFirstYdk();
initDecksListSpinners(mDeckSpinner, file);
loadDeckFromFile(file);
} else {
return;
}
});
builder.show();
}
......@@ -1092,7 +1096,10 @@ class DeckManagerActivityImpl extends BaseCardsAcitivity implements RecyclerView
@Override
public void onDeckDel(List<DeckFile> deckFileList) {
String currentDeckPath = mDeckAdapater.getYdkFile().getAbsolutePath();
File deck = mDeckAdapater.getYdkFile();
if (deck == null)
return;
String currentDeckPath = deck.getAbsolutePath();
for (DeckFile deckFile : deckFileList) {
if (deckFile.getPath().equals(currentDeckPath)) {
List<File> files = getYdkFiles();
......
......@@ -167,10 +167,11 @@ public class IOUtils {
dir.mkdirs();
}
}
public static void createFolder(File file) {
public static boolean createFolder(File file) {
if (!file.exists()) {
file.mkdirs();
return file.mkdirs();
}
return false;
}
public static void copy(InputStream in, OutputStream out) throws IOException {
......
......@@ -77,8 +77,10 @@ public class YGODialogUtil {
int typeSelectPosition = 2;
int deckSelectPosition = -1;
List<DeckFile> deckList;
if (selectDeckPath != null) {
String name = new File(selectDeckPath).getParentFile().getName();
if (!TextUtils.isEmpty(selectDeckPath)) {
File file = new File(selectDeckPath);
if (file.exists()) {
String name = file.getParentFile().getName();
if (name.equals("pack") || name.equals("cacheDeck")) {
//卡包
typeSelectPosition = 0;
......@@ -87,7 +89,6 @@ public class YGODialogUtil {
typeSelectPosition = 1;
} else if (name.equals("deck") && new File(selectDeckPath).getParentFile().getParentFile().getName().equals(Constants.PREF_DEF_GAME_DIR)) {
//如果是deck并且上一个目录是ygocore的话,保证不会把名字为deck的卡包识别为未分类
typeSelectPosition = 2;
} else {
//其他卡包
for (int i = 3; i < typeList.size(); i++) {
......@@ -99,7 +100,17 @@ public class YGODialogUtil {
}
}
}
}
deckList = DeckUtil.getDeckList(typeList.get(typeSelectPosition).getPath());
if (typeSelectPosition == 0) {
if (AppsSettings.get().isReadExpansions()) {
try {
deckList.addAll(DeckUtil.getExpansionsDeckList());
} catch (IOException e) {
YGOUtil.show("额外卡库加载失败,愿意为" + e);
}
}
}
typeAdp = new TextSelectAdapter<>(typeList, typeSelectPosition);
deckAdp = new TextSelectAdapter<>(deckList, deckSelectPosition);
rv_type.setAdapter(typeAdp);
......@@ -163,6 +174,9 @@ public class YGODialogUtil {
du.dis();
switch (position) {
case 0:
if (deckList.size()>=8){
YGOUtil.show("最多只能有5个自定义分类");
}
DialogPlus builder = new DialogPlus(context);
builder.setTitle(R.string.please_input_category_name);
EditText editText = new EditText(context);
......@@ -180,10 +194,14 @@ public class YGODialogUtil {
return;
}
File file = new File(AppsSettings.get().getDeckDir(), name);
IOUtils.createFolder(file);
if (IOUtils.createFolder(file)) {
typeList.add(new DeckType(name, file.getAbsolutePath()));
typeAdp.notifyItemInserted(typeList.size() - 1);
dlg.dismiss();
} else {
YGOUtil.show("新建分类失败");
}
});
builder.show();
break;
......
......@@ -9,6 +9,8 @@
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:lines="1"
android:ellipsize="end"
android:gravity="center"
android:textColor="@color/white"
android:id="@+id/tv_name"
......
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