Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile-Cn-Ko-En
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fallenstardust
YGOMobile-Cn-Ko-En
Commits
49b0d508
Commit
49b0d508
authored
Aug 02, 2025
by
fallenstardust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化批量删除卡组的同步线程,可在在线备份界面看出刚被删除卡组的颜色区别
parent
c9a904f3
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
42 additions
and
32 deletions
+42
-32
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck_square/DeckSquareApiUtil.java
...ymb/ygomobile/ui/cards/deck_square/DeckSquareApiUtil.java
+31
-29
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck_square/MyDeckListAdapter.java
...ymb/ygomobile/ui/cards/deck_square/MyDeckListAdapter.java
+6
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck_square/api_response/MyOnlineDeckDetail.java
...ui/cards/deck_square/api_response/MyOnlineDeckDetail.java
+1
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck_square/api_response/PushMultiDeck.java
...bile/ui/cards/deck_square/api_response/PushMultiDeck.java
+3
-3
mobile/src/main/res/layout/item_my_deck.xml
mobile/src/main/res/layout/item_my_deck.xml
+1
-0
No files found.
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck_square/DeckSquareApiUtil.java
View file @
49b0d508
...
...
@@ -245,50 +245,51 @@ 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
())
{
// 获取在线卡组列表(异步处理)
List
<
MyOnlineDeckDetail
>
onlineDecks
=
new
ArrayList
<>();
// 使用VUiKit避开UI线程进行网络请求
VUiKit
.
defer
().
when
(()
->
{
return
DeckSquareApiUtil
.
getUserDecks
(
loginToken
);
}).
fail
((
e
)
->
{
LogUtil
.
e
(
TAG
,
"getUserDecks failed: "
+
e
);
}).
done
((
result
)
->
{
if
(
result
==
null
||
result
.
getData
()
==
null
)
{
return
;
}
// 先判断缓存表是否需要更新
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
:
DeckManagerFragment
.
getOriginalData
())
{
if
(
deleteDeckFile
.
getFileName
().
equals
(
onlineDeckDetail
.
getDeckName
())
&&
deleteDeckFile
.
getTypeName
().
equals
(
onlineDeckDetail
.
getDeckType
()))
{
onlineDeckDetail
.
setDelete
(
true
);
// 将要删除的列表元素的isDelete值设置过
//顺带设置一下
for
(
MyOnlineDeckDetail
onlineDeckDetail
:
onlineDecks
)
{
if
(
deleteDeckFile
.
getName
().
equals
(
onlineDeckDetail
.
getDeckName
())
&&
deleteDeckFile
.
getTypeName
().
equals
(
onlineDeckDetail
.
getDeckType
()))
{
onlineDeckDetail
.
setDelete
(
true
);
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
());
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck_square/MyDeckListAdapter.java
View file @
49b0d508
...
...
@@ -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
()));
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck_square/api_response/MyOnlineDeckDetail.java
View file @
49b0d508
...
...
@@ -243,6 +243,7 @@ public class MyOnlineDeckDetail implements Parcelable {
", deckCoverCard1="
+
deckCoverCard1
+
", deckLike='"
+
deckLike
+
'\''
+
", isPublic='"
+
isPublic
+
'\''
+
", isDelete='"
+
isDelete
+
'\''
+
", deckYdk='"
+
deckYdk
+
'\''
+
'}'
;
}
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck_square/api_response/PushMultiDeck.java
View file @
49b0d508
...
...
@@ -47,7 +47,7 @@ public class PushMultiDeck {
private
Integer
deckProtector
=
0
;
private
long
timestamp
=
0
;
private
String
deckYdk
;
private
boolean
isDelet
ing
=
false
;
private
boolean
isDelet
e
=
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
setDelet
ing
(
boolean
isDeleting
)
{
this
.
isDeleting
=
isDeleting
;}
public
void
setDelet
e
(
boolean
isDelete
)
{
this
.
isDelete
=
isDelete
;}
}
}
mobile/src/main/res/layout/item_my_deck.xml
View file @
49b0d508
...
...
@@ -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"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment