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