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
54a77913
Commit
54a77913
authored
Jul 02, 2025
by
fallenstardust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化同步和删除逻辑,避免远端响应延迟
parent
5889d920
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
40 additions
and
51 deletions
+40
-51
mobile/src/main/java/cn/garymb/ygomobile/deck_square/DeckManageDialog.java
...ava/cn/garymb/ygomobile/deck_square/DeckManageDialog.java
+4
-0
mobile/src/main/java/cn/garymb/ygomobile/deck_square/DeckSelectFragment.java
...a/cn/garymb/ygomobile/deck_square/DeckSelectFragment.java
+5
-4
mobile/src/main/java/cn/garymb/ygomobile/deck_square/DeckSquareMyDeckFragment.java
...arymb/ygomobile/deck_square/DeckSquareMyDeckFragment.java
+3
-20
mobile/src/main/java/cn/garymb/ygomobile/ui/adapters/DeckListAdapter.java
...java/cn/garymb/ygomobile/ui/adapters/DeckListAdapter.java
+15
-24
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
...ava/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
+13
-3
No files found.
mobile/src/main/java/cn/garymb/ygomobile/deck_square/DeckManageDialog.java
View file @
54a77913
package
cn.garymb.ygomobile.deck_square
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
TAG
;
import
android.os.Bundle
;
import
android.view.LayoutInflater
;
import
android.view.View
;
...
...
@@ -17,6 +19,8 @@ import com.google.android.material.tabs.TabLayout;
import
com.google.android.material.tabs.TabLayoutMediator
;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.ui.plus.VUiKit
;
import
cn.garymb.ygomobile.utils.LogUtil
;
import
cn.garymb.ygomobile.utils.YGODeckDialogUtil
;
public
class
DeckManageDialog
extends
DialogFragment
implements
YGODeckDialogUtil
.
OnDeckDialogListener
{
...
...
mobile/src/main/java/cn/garymb/ygomobile/deck_square/DeckSelectFragment.java
View file @
54a77913
...
...
@@ -36,6 +36,7 @@ import cn.garymb.ygomobile.bean.DeckType;
import
cn.garymb.ygomobile.bean.events.DeckFile
;
import
cn.garymb.ygomobile.deck_square.api_response.LoginToken
;
import
cn.garymb.ygomobile.deck_square.api_response.MyOnlineDeckDetail
;
import
cn.garymb.ygomobile.deck_square.api_response.PushDeckResponse
;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.lite.databinding.FragmentDeckSelectBinding
;
import
cn.garymb.ygomobile.ui.adapters.DeckListAdapter
;
...
...
@@ -383,12 +384,13 @@ public class DeckSelectFragment extends Fragment {
if
(
onlineDeck
.
getDeckName
().
equals
(
deckFile
.
getName
()))
{
// 删除在线卡组(异步处理)
VUiKit
.
defer
().
when
(()
->
{
DeckSquareApiUtil
.
deleteDeck
(
onlineDeck
.
getDeckId
(),
loginToken
);
return
tru
e
;
PushDeckResponse
deckResponse
=
DeckSquareApiUtil
.
deleteDeck
(
onlineDeck
.
getDeckId
(),
loginToken
);
return
deckRespons
e
;
}).
fail
((
deleteError
)
->
{
LogUtil
.
e
(
TAG
,
"Delete Online Deck failed: "
+
deleteError
);
}).
done
((
deleteSuccess
)
->
{
if
(
deleteSuccess
)
{
if
(
deleteSuccess
.
isData
())
{
YGOUtil
.
showTextToast
(
getContext
().
getString
(
R
.
string
.
done
));
LogUtil
.
i
(
TAG
,
"Online deck deleted successfully"
);
}
});
...
...
@@ -398,7 +400,6 @@ public class DeckSelectFragment extends Fragment {
}
}
YGOUtil
.
showTextToast
(
getContext
().
getString
(
R
.
string
.
done
));
dialogPlus
.
dismiss
();
onDeckMenuListener
.
onDeckDel
(
selectDeckList
);
clearDeckSelect
();
...
...
mobile/src/main/java/cn/garymb/ygomobile/deck_square/DeckSquareMyDeckFragment.java
View file @
54a77913
...
...
@@ -118,16 +118,6 @@ public class DeckSquareMyDeckFragment extends Fragment {
}
});
/** 自动同步 */
VUiKit
.
defer
().
when
(()
->
{
return
DeckSquareApiUtil
.
synchronizeDecks
();
}).
fail
((
e
)
->
{
LogUtil
.
i
(
TAG
,
"Like deck fail"
+
e
.
getMessage
());
}).
done
((
result
)
->
{
});
return
binding
.
getRoot
();
}
...
...
@@ -204,16 +194,9 @@ public class DeckSquareMyDeckFragment extends Fragment {
});
/** 自动同步 */
VUiKit
.
defer
().
when
(()
->
{
return
DeckSquareApiUtil
.
synchronizeDecks
();
}).
fail
((
e
)
->
{
LogUtil
.
i
(
TAG
,
"Like deck fail"
+
e
.
getMessage
());
}).
done
((
result
)
->
{
});
VUiKit
.
defer
().
when
(()
->
{
return
DeckSquareApiUtil
.
synchronizeDecks
();}).
fail
((
e
)
->
{
LogUtil
.
i
(
TAG
,
"Sync deck fail"
+
e
.
getMessage
());
}).
done
((
result
)
->
{});
//DeckSquareApiUtil.synchronizeDecks();
}
}
mobile/src/main/java/cn/garymb/ygomobile/ui/adapters/DeckListAdapter.java
View file @
54a77913
...
...
@@ -5,7 +5,6 @@ import android.content.Context;
import
android.graphics.Color
;
import
android.os.Build
;
import
android.view.View
;
import
android.widget.Button
;
import
android.widget.ImageView
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
...
...
@@ -16,41 +15,33 @@ import com.chad.library.adapter.base.listener.OnItemClickListener;
import
java.util.ArrayList
;
import
java.util.List
;
import
cn.garymb.ygomobile.Constants
;
import
cn.garymb.ygomobile.bean.Deck
;
import
cn.garymb.ygomobile.bean.DeckInfo
;
import
cn.garymb.ygomobile.bean.TextSelect
;
import
cn.garymb.ygomobile.bean.events.DeckFile
;
import
cn.garymb.ygomobile.deck_square.DeckSquareApiUtil
;
import
cn.garymb.ygomobile.deck_square.DeckSquareListAdapter
;
import
cn.garymb.ygomobile.deck_square.api_response.LoginToken
;
import
cn.garymb.ygomobile.deck_square.api_response.PushDeckResponse
;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.loader.CardLoader
;
import
cn.garymb.ygomobile.loader.DeckLoader
;
import
cn.garymb.ygomobile.loader.ImageLoader
;
import
cn.garymb.ygomobile.ui.plus.VUiKit
;
import
cn.garymb.ygomobile.utils.LogUtil
;
import
cn.garymb.ygomobile.utils.SharedPreferenceUtil
;
import
cn.garymb.ygomobile.utils.YGOUtil
;
import
ocgcore.DataManager
;
import
ocgcore.data.LimitList
;
public
class
DeckListAdapter
<
T
extends
TextSelect
>
extends
BaseQuickAdapter
<
T
,
DeckViewHolder
>
{
private
static
final
String
TAG
=
DeckSquareListAdapter
.
class
.
getSimpleName
();
private
final
ImageLoader
imageLoader
;
private
final
Context
mContext
;
private
LimitList
mLimitList
;
private
final
CardLoader
mCardLoader
;
private
final
DeckLoader
mDeckLoader
;
private
final
boolean
isSelect
;
private
final
List
<
T
>
selectList
;
private
LimitList
mLimitList
;
private
DeckInfo
deckInfo
;
private
DeckFile
deckFile
;
private
OnItemSelectListener
onItemSelectListener
;
private
int
selectPosition
;
private
final
boolean
isSelect
;
private
boolean
isManySelect
;
//标志位,是否选中多个卡组
private
final
List
<
T
>
selectList
;
private
static
final
String
TAG
=
DeckSquareListAdapter
.
class
.
getSimpleName
();
public
DeckListAdapter
(
Context
context
,
List
<
T
>
data
,
int
select
)
{
super
(
R
.
layout
.
item_deck_list_swipe
,
data
);
...
...
@@ -193,10 +184,6 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D
}
}
public
void
setSelectPosition
(
int
selectPosition
)
{
this
.
selectPosition
=
selectPosition
;
}
public
boolean
isSelect
()
{
return
isSelect
;
}
...
...
@@ -205,13 +192,6 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D
return
isManySelect
;
}
public
void
addManySelect
(
T
t
)
{
if
(
selectList
.
contains
(
t
))
selectList
.
remove
(
t
);
else
selectList
.
add
(
t
);
}
/**
* 内部维护了selectList,用于存储当前选中的卡组
* DeckListAdapter支持多选,传入false清除已选中的卡组,并更新adapter。传入true将标志位置1
...
...
@@ -226,6 +206,13 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D
}
}
public
void
addManySelect
(
T
t
)
{
if
(
selectList
.
contains
(
t
))
selectList
.
remove
(
t
);
else
selectList
.
add
(
t
);
}
public
List
<
T
>
getSelectList
()
{
return
selectList
;
}
...
...
@@ -234,6 +221,10 @@ public class DeckListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, D
return
selectPosition
;
}
public
void
setSelectPosition
(
int
selectPosition
)
{
this
.
selectPosition
=
selectPosition
;
}
public
void
setOnItemSelectListener
(
OnItemSelectListener
onItemSelectListener
)
{
this
.
onItemSelectListener
=
onItemSelectListener
;
}
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
View file @
54a77913
...
...
@@ -2,6 +2,7 @@ package cn.garymb.ygomobile.ui.cards;
import
static
android
.
content
.
Context
.
CLIPBOARD_SERVICE
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
ORI_DECK
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
TAG
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
YDK_FILE_EX
;
import
static
cn
.
garymb
.
ygomobile
.
core
.
IrrlichtBridge
.
ACTION_SHARE_FILE
;
...
...
@@ -85,6 +86,7 @@ import cn.garymb.ygomobile.deck_square.api_response.DownloadDeckResponse;
import
cn.garymb.ygomobile.deck_square.api_response.LoginToken
;
import
cn.garymb.ygomobile.deck_square.api_response.MyDeckResponse
;
import
cn.garymb.ygomobile.deck_square.api_response.MyOnlineDeckDetail
;
import
cn.garymb.ygomobile.deck_square.api_response.PushDeckResponse
;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.loader.CardLoader
;
import
cn.garymb.ygomobile.loader.CardSearchInfo
;
...
...
@@ -246,6 +248,13 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
});
// YGODeckDialogUtil.dialogDeckSelect(getActivity(), AppsSettings.get().getLastDeckPath(), this));
mContext
=
(
BaseActivity
)
getActivity
();
/** 自动同步 */
if
(
SharedPreferenceUtil
.
getServerToken
()
!=
null
)
{
VUiKit
.
defer
().
when
(
DeckSquareApiUtil:
:
synchronizeDecks
).
fail
((
e
)
->
{
LogUtil
.
i
(
TAG
,
"sync deck fail"
+
e
.
getMessage
());
}).
done
((
result
)
->
{
});
}
}
...
...
@@ -925,13 +934,14 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
if
(
onlineDeck
.
getDeckName
().
equals
(
mDeckAdapater
.
getYdkFile
().
getName
()))
{
// 删除在线卡组(异步处理)
VUiKit
.
defer
().
when
(()
->
{
DeckSquareApiUtil
.
deleteDeck
(
onlineDeck
.
getDeckId
(),
loginToken
);
return
tru
e
;
PushDeckResponse
deckResponse
=
DeckSquareApiUtil
.
deleteDeck
(
onlineDeck
.
getDeckId
(),
loginToken
);
return
deckRespons
e
;
}).
fail
((
deleteError
)
->
{
LogUtil
.
e
(
TAG
,
"Delete Online Deck failed: "
+
deleteError
);
}).
done
((
deleteSuccess
)
->
{
if
(
deleteSuccess
)
{
if
(
deleteSuccess
.
isData
()
)
{
LogUtil
.
i
(
TAG
,
"Online deck deleted successfully"
);
YGOUtil
.
showTextToast
(
getContext
().
getString
(
R
.
string
.
done
));
}
});
}
...
...
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