Commit a5f1c5aa authored by fallenstardust's avatar fallenstardust

封装批量删除卡组工具方法

parent 2f77f072
...@@ -917,44 +917,12 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -917,44 +917,12 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
builder.setLeftButtonListener((dlg, rs) -> { builder.setLeftButtonListener((dlg, rs) -> {
if (mDeckAdapater.getYdkFile() != null) { if (mDeckAdapater.getYdkFile() != null) {
FileUtils.deleteFile(mDeckAdapater.getYdkFile()); FileUtils.deleteFile(mDeckAdapater.getYdkFile());
//统一调用批量删除在线卡组(这里只有1个)
List<DeckFile> deckFileList = new ArrayList<>();
deckFileList.add(new DeckFile(mDeckAdapater.getYdkFile()));
DeckSquareApiUtil.deleteDecks(deckFileList);
if (SharedPreferenceUtil.getServerToken() != null) { YGOUtil.showTextToast(R.string.done);
LoginToken loginToken = new LoginToken(
SharedPreferenceUtil.getServerUserId(),
SharedPreferenceUtil.getServerToken()
);
// 获取在线卡组列表(异步处理)
VUiKit.defer().when(() -> {
return DeckSquareApiUtil.getUserDecks(loginToken);
}).fail((e) -> {
LogUtil.e(TAG, "getUserDecks failed: " + e);
}).done((result) -> {
if (result == null || result.getData() == null) {
return;
}
List<MyOnlineDeckDetail> onlineDecks = result.getData();
for (MyOnlineDeckDetail onlineDeck : onlineDecks) {
if (onlineDeck.getDeckName().equals(mDeckAdapater.getYdkFile().getName())) {
// 删除在线卡组(异步处理)
VUiKit.defer().when(() -> {
PushSingleDeckResponse deckResponse = DeckSquareApiUtil.deleteDeck(onlineDeck.getDeckId(), loginToken);
return deckResponse;
}).fail((deleteError) -> {
LogUtil.e(TAG, "Delete Online Deck failed: " + deleteError);
}).done((deleteSuccess) -> {
if (deleteSuccess.isData()) {
LogUtil.i(TAG, "Online deck deleted successfully");
YGOUtil.showTextToast(getContext().getString(R.string.done));
}
});
break;
}
}
});
}
dlg.dismiss(); dlg.dismiss();
File file = getFirstYdk(); File file = getFirstYdk();
loadDeckFromFile(file); loadDeckFromFile(file);
......
...@@ -367,45 +367,12 @@ public class DeckSelectFragment extends Fragment { ...@@ -367,45 +367,12 @@ public class DeckSelectFragment extends Fragment {
for (DeckFile deckFile : selectDeckList) { for (DeckFile deckFile : selectDeckList) {
deckFile.getPathFile().delete(); deckFile.getPathFile().delete();
deckList.remove(deckFile); deckList.remove(deckFile);
if (SharedPreferenceUtil.getServerToken() != null) {
LoginToken loginToken = new LoginToken(SharedPreferenceUtil.getServerUserId(), SharedPreferenceUtil.getServerToken());
// 获取在线卡组列表(异步处理)
VUiKit.defer().when(() -> {
return DeckSquareApiUtil.getUserDecks(loginToken);
}).fail((e) -> {
LogUtil.e(TAG, "getUserDecks failed: " + e);
}).done((result) -> {
if (result == null || result.getData() == null) {
return;
}
List<MyOnlineDeckDetail> onlineDecks = result.getData();
for (MyOnlineDeckDetail onlineDeck : onlineDecks) {
if (onlineDeck.getDeckName().equals(deckFile.getName())) {
// 删除在线卡组(异步处理)
VUiKit.defer().when(() -> {
PushSingleDeckResponse deckResponse = DeckSquareApiUtil.deleteDeck(onlineDeck.getDeckId(), loginToken);
return deckResponse;
}).fail((deleteError) -> {
LogUtil.e(TAG, "Delete Online Deck failed: " + deleteError);
}).done((deleteSuccess) -> {
if (deleteSuccess.isData()) {
YGOUtil.showTextToast(R.string.done);
LogUtil.i(TAG, "Online deck deleted successfully");
}
});
break;
}
}
});
}
} }
dialogPlus.dismiss(); dialogPlus.dismiss();
onDeckMenuListener.onDeckDel(selectDeckList); onDeckMenuListener.onDeckDel(selectDeckList);
clearDeckSelect(); clearDeckSelect();
DeckSquareApiUtil.deleteDecks(selectDeckList);
YGOUtil.showTextToast(R.string.done);
} }
}); });
dialogPlus.setRightButtonListener(new DialogInterface.OnClickListener() { dialogPlus.setRightButtonListener(new DialogInterface.OnClickListener() {
...@@ -430,7 +397,7 @@ public class DeckSelectFragment extends Fragment { ...@@ -430,7 +397,7 @@ public class DeckSelectFragment extends Fragment {
} }
} }
IOUtils.delete(file); IOUtils.delete(file);
YGOUtil.showTextToast(R.string.done);
onDeckMenuListener.onDeckDel(deckFileList); onDeckMenuListener.onDeckDel(deckFileList);
typeAdp.remove(positon); typeAdp.remove(positon);
if (typeAdp.getSelectPosition() == positon) { if (typeAdp.getSelectPosition() == positon) {
...@@ -441,6 +408,9 @@ public class DeckSelectFragment extends Fragment { ...@@ -441,6 +408,9 @@ public class DeckSelectFragment extends Fragment {
deckList.clear(); deckList.clear();
deckList.addAll(DeckUtil.getDeckList(typeList.get(2).getPath())); deckList.addAll(DeckUtil.getDeckList(typeList.get(2).getPath()));
deckAdp.notifyDataSetChanged(); deckAdp.notifyDataSetChanged();
//删除在线的同名卡组们
DeckSquareApiUtil.deleteDecks(deckFileList);
YGOUtil.showTextToast(R.string.done);
} }
})); }));
itemTouchHelper.attachToRecyclerView(binding.rvType); itemTouchHelper.attachToRecyclerView(binding.rvType);
......
...@@ -15,6 +15,7 @@ import cn.garymb.ygomobile.AppsSettings; ...@@ -15,6 +15,7 @@ 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.lite.R;
import cn.garymb.ygomobile.ui.cards.deck_square.api_response.BasicResponse; import cn.garymb.ygomobile.ui.cards.deck_square.api_response.BasicResponse;
import cn.garymb.ygomobile.ui.cards.deck_square.api_response.DeckIdResponse; import cn.garymb.ygomobile.ui.cards.deck_square.api_response.DeckIdResponse;
import cn.garymb.ygomobile.ui.cards.deck_square.api_response.DeckMultiIdResponse; import cn.garymb.ygomobile.ui.cards.deck_square.api_response.DeckMultiIdResponse;
...@@ -33,6 +34,7 @@ import cn.garymb.ygomobile.ui.cards.deck_square.api_response.PushSingleDeckRespo ...@@ -33,6 +34,7 @@ import cn.garymb.ygomobile.ui.cards.deck_square.api_response.PushSingleDeckRespo
import cn.garymb.ygomobile.ui.cards.deck_square.api_response.SquareDeckResponse; import cn.garymb.ygomobile.ui.cards.deck_square.api_response.SquareDeckResponse;
import cn.garymb.ygomobile.ui.cards.deck_square.bo.MyDeckItem; import cn.garymb.ygomobile.ui.cards.deck_square.bo.MyDeckItem;
import cn.garymb.ygomobile.ui.cards.deck_square.bo.SyncMutliDeckResult; import cn.garymb.ygomobile.ui.cards.deck_square.bo.SyncMutliDeckResult;
import cn.garymb.ygomobile.ui.plus.VUiKit;
import cn.garymb.ygomobile.utils.DeckUtil; import cn.garymb.ygomobile.utils.DeckUtil;
import cn.garymb.ygomobile.utils.LogUtil; import cn.garymb.ygomobile.utils.LogUtil;
import cn.garymb.ygomobile.utils.OkhttpUtil; import cn.garymb.ygomobile.utils.OkhttpUtil;
...@@ -489,6 +491,47 @@ public class DeckSquareApiUtil { ...@@ -489,6 +491,47 @@ public class DeckSquareApiUtil {
} }
public static void deleteDecks(List<DeckFile> deckFileList) {
if (SharedPreferenceUtil.getServerToken() != null) {
LoginToken loginToken = new LoginToken(
SharedPreferenceUtil.getServerUserId(),
SharedPreferenceUtil.getServerToken()
);
// 获取在线卡组列表(异步处理)
VUiKit.defer().when(() -> {
return DeckSquareApiUtil.getUserDecks(loginToken);
}).fail((e) -> {
LogUtil.e(TAG, "getUserDecks failed: " + e);
}).done((result) -> {
if (result == null || result.getData() == null) {
return;
}
List<MyOnlineDeckDetail> onlineDecks = result.getData();
for (MyOnlineDeckDetail onlineDeck : onlineDecks) {
for (DeckFile deckFile : deckFileList) {
if (onlineDeck.getDeckName().equals(deckFile.getName())) {
// 删除在线卡组(异步处理)
VUiKit.defer().when(() -> {
PushSingleDeckResponse deckResponse = DeckSquareApiUtil.deleteDeck(onlineDeck.getDeckId(), loginToken);
return deckResponse;
}).fail((deleteError) -> {
LogUtil.e(TAG, "Delete Online Deck failed: " + deleteError);
}).done((deleteSuccess) -> {
if (deleteSuccess.isData()) {
LogUtil.i(TAG, "Online deck deleted successfully");
}
});
break;
}
}
}
});
}
}
public static PushSingleDeckResponse deleteDeck(String deckId, LoginToken loginToken) throws public static PushSingleDeckResponse deleteDeck(String deckId, LoginToken loginToken) throws
IOException { IOException {
PushSingleDeckResponse result = null; PushSingleDeckResponse result = null;
......
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