Commit cafc1d2a authored by Dark Zane's avatar Dark Zane Committed by GitHub

Merge branch 'fallenstardust:master' into YGOMOBILE-1

parents 3602d56b 49b0d508
......@@ -245,49 +245,50 @@ public class DeckSquareApiUtil {
return pushDecks(deckDataList, loginToken, deckIdList);
}
public static PushMultiResponse deleteDecks(List<DeckFile> deckFileList) throws IOException {
public static void deleteDecks(List<DeckFile> deckFileList) {
if (SharedPreferenceUtil.getServerToken() != null) {
LoginToken loginToken = new LoginToken(
SharedPreferenceUtil.getServerUserId(),
SharedPreferenceUtil.getServerToken()
);
// 创建一个局部变量来持有deckFileList的引用,因为有时候异步执行会导致获取不到传参的deckFileList
// 创建局部变量持有引用
final List<DeckFile> deleteDeckList = new ArrayList<>(deckFileList);
// 先判断缓存表是否正常获取到了
if (DeckManagerFragment.getOriginalData().isEmpty()) {
// 获取在线卡组列表(异步处理)
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 = new ArrayList<>();
// 使用VUiKit避开UI线程进行网络请求
VUiKit.defer().when(() -> {
// 先判断缓存表是否需要更新
if (DeckManagerFragment.getOriginalData().isEmpty()) {
// 同步获取在线卡组列表(在后台线程中可以安全执行网络操作)
MyDeckResponse result = DeckSquareApiUtil.getUserDecks(loginToken);
if (result != null && result.getData() != null) {
DeckManagerFragment.getOriginalData().addAll(result.getData());
}
}
onlineDecks.addAll(DeckManagerFragment.getOriginalData());
// 处理删除标记
for (DeckFile deleteDeckFile : deleteDeckList) {
for (MyOnlineDeckDetail onlineDeckDetail : onlineDecks) {
if (deleteDeckFile.getName().equals(onlineDeckDetail.getDeckName()) && deleteDeckFile.getTypeName().equals(onlineDeckDetail.getDeckType())) {
DeckManagerFragment.getOriginalData().addAll(result.getData());
});
}
onlineDeckDetail.setDelete(true);
for (DeckFile deleteDeckFile : deleteDeckList) {
for (MyOnlineDeckDetail onlineDeckDetail : DeckManagerFragment.getOriginalData()) {
if (deleteDeckFile.getFileName().equals(onlineDeckDetail.getDeckName()) && deleteDeckFile.getTypeName().equals(onlineDeckDetail.getDeckType())) {
onlineDeckDetail.setDelete(true);// 将要删除的列表元素的isDelete值设置过
//顺带设置一下
deleteDeckFile.setDeckId(onlineDeckDetail.getDeckId());
deleteDeckFile.setDeckId(onlineDeckDetail.getDeckId());
}
}
}
}
try {
syncMyDecks(toDeckItemList(DeckManagerFragment.getOriginalData()),loginToken);
} catch (IOException e) {
DeckManagerFragment.getOriginalData().clear();
DeckManagerFragment.getOriginalData().addAll(onlineDecks);
LogUtil.d(TAG,onlineDecks.toString());
// 执行同步操作(在UI线程不得不进行网络请求,须转在后台线程)
syncMyDecks(toDeckItemList(DeckManagerFragment.getOriginalData()), loginToken);//TODO 需要解决无法
return true;
}).fail((e) -> {
LogUtil.e(TAG, "删除卡组失败:" + e);
}
}).done((result) -> {
LogUtil.d(TAG, "卡组删除同步成功");
});
}
return null;
}
/**
......@@ -311,6 +312,7 @@ public class DeckSquareApiUtil {
data.setDeckType(item.getDeckType());
data.setDeckCoverCard1(item.getDeckCoverCard1());
data.setDeckUpdateTime(item.getUpdateTimestamp());
data.setDelete(item.isDelete());
String deckContent = DeckSquareFileUtil.setDeckId(item.getDeckPath(), loginToken.getUserId(), item.getDeckId());
......
......@@ -152,6 +152,12 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyOnlineDeckDetail, Base
@Override
protected void convert(BaseViewHolder helper, MyOnlineDeckDetail item) {
ImageView iv_box = helper.findView(R.id.iv_box);
if (item.isDelete()) {
iv_box.setColorFilter(YGOUtil.c(R.color.bottom_bg));
} else {
iv_box.clearColorFilter();
}
helper.setText(R.id.my_online_deck_type,item.getDeckType().equals("") ? "" : "-"+item.getDeckType()+"-");
helper.setText(R.id.my_deck_name, item.getDeckName());
helper.setText(R.id.deck_update_date, convertToGMTDate(item.getDeckUpdateDate()));
......
......@@ -243,6 +243,7 @@ public class MyOnlineDeckDetail implements Parcelable {
", deckCoverCard1=" + deckCoverCard1 +
", deckLike='" + deckLike + '\'' +
", isPublic='" + isPublic + '\'' +
", isDelete='" + isDelete + '\'' +
", deckYdk='" + deckYdk + '\'' +
'}';
}
......
......@@ -47,7 +47,7 @@ public class PushMultiDeck {
private Integer deckProtector = 0;
private long timestamp = 0;
private String deckYdk;
private boolean isDeleting = false;
private boolean isDelete = false;
public String getDeckId() {
return deckId;
......@@ -129,9 +129,9 @@ public class PushMultiDeck {
this.deckYdk = deckYdk;
}
public boolean getDeleting() {return isDeleting;}
public boolean isDelete() {return isDelete;}
public void setDeleting(boolean isDeleting) {this.isDeleting = isDeleting;}
public void setDelete(boolean isDelete) {this.isDelete = isDelete;}
}
}
......@@ -12,6 +12,7 @@
android:src="@drawable/unknown" />
<ImageView
android:id="@+id/iv_box"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
......
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