Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile
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
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