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
a973468c
Commit
a973468c
authored
Jan 19, 2025
by
fallenstardust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
点击卡名查询关联卡片(描述含卡名,该卡的同字段为关联卡)
parent
52701420
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
122 additions
and
0 deletions
+122
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/CardDetail.java
...rc/main/java/cn/garymb/ygomobile/ui/cards/CardDetail.java
+16
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/CardSearchFragment.java
...java/cn/garymb/ygomobile/ui/cards/CardSearchFragment.java
+54
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
...ava/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
+52
-0
No files found.
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/CardDetail.java
View file @
a973468c
...
@@ -211,6 +211,15 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -211,6 +211,15 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
mListener
.
onOpenUrl
(
cardInfo
);
mListener
.
onOpenUrl
(
cardInfo
);
}
}
});
});
name
.
setOnClickListener
((
v
)
->
{
if
(
mListener
!=
null
)
{
Card
cardInfo
=
getCardInfo
();
if
(
cardInfo
==
null
)
{
return
;
}
mListener
.
onGetRelatedCardList
(
cardInfo
);
}
});
findViewById
(
R
.
id
.
lastone
).
setOnClickListener
((
v
)
->
{
findViewById
(
R
.
id
.
lastone
).
setOnClickListener
((
v
)
->
{
onPreCard
();
onPreCard
();
});
});
...
@@ -715,6 +724,8 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -715,6 +724,8 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
void
onSearchKeyWord
(
String
keyword
);
void
onSearchKeyWord
(
String
keyword
);
void
onGetRelatedCardList
(
Card
cardInfo
);
void
onClose
();
void
onClose
();
}
}
...
@@ -746,6 +757,11 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -746,6 +757,11 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
}
}
@Override
public
void
onGetRelatedCardList
(
Card
cardInfo
)
{
}
@Override
@Override
public
void
onAddSideCard
(
Card
cardInfo
)
{
public
void
onAddSideCard
(
Card
cardInfo
)
{
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/CardSearchFragment.java
View file @
a973468c
...
@@ -6,6 +6,7 @@ import android.graphics.Paint;
...
@@ -6,6 +6,7 @@ import android.graphics.Paint;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.text.TextUtils
;
import
android.text.TextUtils
;
import
android.util.Log
;
import
android.util.Log
;
import
android.util.SparseArray
;
import
android.view.Gravity
;
import
android.view.Gravity
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.MenuItem
;
import
android.view.MenuItem
;
...
@@ -29,6 +30,7 @@ import com.app.hubert.guide.model.HighLight;
...
@@ -29,6 +30,7 @@ import com.app.hubert.guide.model.HighLight;
import
com.app.hubert.guide.model.HighlightOptions
;
import
com.app.hubert.guide.model.HighlightOptions
;
import
com.ourygo.lib.duelassistant.util.DuelAssistantManagement
;
import
com.ourygo.lib.duelassistant.util.DuelAssistantManagement
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
cn.garymb.ygomobile.Constants
;
import
cn.garymb.ygomobile.Constants
;
...
@@ -46,6 +48,7 @@ import cn.garymb.ygomobile.ui.plus.DialogPlus;
...
@@ -46,6 +48,7 @@ import cn.garymb.ygomobile.ui.plus.DialogPlus;
import
cn.garymb.ygomobile.ui.plus.VUiKit
;
import
cn.garymb.ygomobile.ui.plus.VUiKit
;
import
cn.garymb.ygomobile.utils.YGOUtil
;
import
cn.garymb.ygomobile.utils.YGOUtil
;
import
cn.garymb.ygomobile.utils.glide.GlideCompat
;
import
cn.garymb.ygomobile.utils.glide.GlideCompat
;
import
ocgcore.CardManager
;
import
ocgcore.DataManager
;
import
ocgcore.DataManager
;
import
ocgcore.PackManager
;
import
ocgcore.PackManager
;
import
ocgcore.data.Card
;
import
ocgcore.data.Card
;
...
@@ -60,6 +63,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
...
@@ -60,6 +63,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
protected
DrawerLayout
mDrawerlayout
;
protected
DrawerLayout
mDrawerlayout
;
protected
CardSearcher
mCardSearcher
;
protected
CardSearcher
mCardSearcher
;
protected
PackManager
mPackManager
;
protected
PackManager
mPackManager
;
protected
CardManager
mCardManager
;
protected
CardListAdapter
mCardListAdapter
;
protected
CardListAdapter
mCardListAdapter
;
protected
boolean
isLoad
=
false
;
protected
boolean
isLoad
=
false
;
private
RecyclerView
mListView
;
private
RecyclerView
mListView
;
...
@@ -96,6 +100,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
...
@@ -96,6 +100,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
Button
btn_search
=
layoutView
.
findViewById
(
R
.
id
.
btn_search
);
Button
btn_search
=
layoutView
.
findViewById
(
R
.
id
.
btn_search
);
btn_search
.
setOnClickListener
((
v
)
->
showSearch
(
true
));
btn_search
.
setOnClickListener
((
v
)
->
showSearch
(
true
));
mPackManager
=
DataManager
.
get
().
getPackManager
();
mPackManager
=
DataManager
.
get
().
getPackManager
();
mCardManager
=
DataManager
.
get
().
getCardManager
();
mCardLoader
=
new
CardLoader
(
getContext
());
mCardLoader
=
new
CardLoader
(
getContext
());
mCardLoader
.
setCallBack
(
this
);
mCardLoader
.
setCallBack
(
this
);
mCardSearcher
=
new
CardSearcher
(
layoutView
.
findViewById
(
R
.
id
.
nav_view_list
),
mCardLoader
);
mCardSearcher
=
new
CardSearcher
(
layoutView
.
findViewById
(
R
.
id
.
nav_view_list
),
mCardLoader
);
...
@@ -308,6 +313,11 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
...
@@ -308,6 +313,11 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
showSearchKeyWord
(
keyword
);
showSearchKeyWord
(
keyword
);
}
}
@Override
public
void
onGetRelatedCardList
(
Card
cardInfo
)
{
getRelatedCardList
(
cardInfo
);
}
@Override
@Override
public
void
onImageUpdate
(
Card
cardInfo
)
{
public
void
onImageUpdate
(
Card
cardInfo
)
{
mCardListAdapter
.
notifyItemChanged
(
cardInfo
);
mCardListAdapter
.
notifyItemChanged
(
cardInfo
);
...
@@ -350,6 +360,50 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
...
@@ -350,6 +360,50 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
mCardLoader
.
search
(
searchInfo
);
mCardLoader
.
search
(
searchInfo
);
}
}
private
void
getRelatedCardList
(
Card
cardInfo
)
{
SparseArray
<
Card
>
cards
=
mCardManager
.
getAllCards
();
// 使用 ArrayList 来保存匹配的卡片
List
<
Card
>
matchingCards
=
new
ArrayList
<>();
// 将 cardInfo 的 setCode 转换为 List<Long>
List
<
Long
>
cardInfoSetCodes
=
new
ArrayList
<>();
for
(
long
setCode
:
cardInfo
.
getSetCode
())
{
if
(
setCode
!=
0
)
cardInfoSetCodes
.
add
(
setCode
);
}
Log
.
w
(
"cc cardInfoSetCodes"
,
cardInfoSetCodes
.
toString
());
for
(
int
i
=
0
;
i
<
cards
.
size
();
i
++)
{
Card
card
=
cards
.
valueAt
(
i
);
// 检查卡片是否已经存在于匹配列表中
if
(!
matchingCards
.
contains
(
card
))
{
// 检查卡片名或描述是否包含给定卡片的名字
if
(!
card
.
Name
.
equals
(
cardInfo
.
Name
)
&&
(
card
.
Name
.
contains
(
cardInfo
.
Name
)
||
card
.
Desc
.
contains
(
cardInfo
.
Name
)))
{
matchingCards
.
add
(
card
);
continue
;
// 如果名称或描述匹配,则跳过系列代码检查
}
// 获取卡片的系列代码并检查是否有相同的系列代码
for
(
long
setCode
:
card
.
getSetCode
())
{
if
(
cardInfoSetCodes
.
contains
(
setCode
))
{
matchingCards
.
add
(
card
);
break
;
// 如果已经找到匹配,可以跳出内层循环
}
}
}
}
// 日志输出匹配的卡片数量
Log
.
w
(
"cc related cards"
,
"Found "
+
matchingCards
.
size
()
+
" related cards."
);
// 确保 matchingCards 不为空时调用 onSearchResult
if
(!
matchingCards
.
isEmpty
())
{
onSearchResult
(
matchingCards
,
false
);
}
else
{
Log
.
w
(
"cc"
,
"No related card found"
);
}
}
private
void
showPackList
(
Card
cardInfo
)
{
private
void
showPackList
(
Card
cardInfo
)
{
Integer
idToUse
=
cardInfo
.
Alias
!=
0
?
cardInfo
.
Alias
:
cardInfo
.
Code
;
Integer
idToUse
=
cardInfo
.
Alias
!=
0
?
cardInfo
.
Alias
:
cardInfo
.
Code
;
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
View file @
a973468c
...
@@ -104,6 +104,7 @@ import cn.garymb.ygomobile.utils.ShareUtil;
...
@@ -104,6 +104,7 @@ import cn.garymb.ygomobile.utils.ShareUtil;
import
cn.garymb.ygomobile.utils.YGODialogUtil
;
import
cn.garymb.ygomobile.utils.YGODialogUtil
;
import
cn.garymb.ygomobile.utils.YGOUtil
;
import
cn.garymb.ygomobile.utils.YGOUtil
;
import
cn.garymb.ygomobile.utils.glide.GlideCompat
;
import
cn.garymb.ygomobile.utils.glide.GlideCompat
;
import
ocgcore.CardManager
;
import
ocgcore.DataManager
;
import
ocgcore.DataManager
;
import
ocgcore.PackManager
;
import
ocgcore.PackManager
;
import
ocgcore.data.Card
;
import
ocgcore.data.Card
;
...
@@ -116,6 +117,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
...
@@ -116,6 +117,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
protected
RecyclerView
mListView
;
protected
RecyclerView
mListView
;
protected
CardLoader
mCardLoader
;
protected
CardLoader
mCardLoader
;
protected
CardSearcher
mCardSearcher
;
protected
CardSearcher
mCardSearcher
;
protected
CardManager
mCardManager
;
protected
PackManager
mPackManager
;
protected
PackManager
mPackManager
;
protected
CardListAdapter
mCardListAdapter
;
protected
CardListAdapter
mCardListAdapter
;
protected
boolean
isLoad
=
false
;
protected
boolean
isLoad
=
false
;
...
@@ -169,6 +171,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
...
@@ -169,6 +171,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
setListeners
();
setListeners
();
mPackManager
=
DataManager
.
get
().
getPackManager
();
mPackManager
=
DataManager
.
get
().
getPackManager
();
mCardManager
=
DataManager
.
get
().
getCardManager
();
mCardLoader
=
new
CardLoader
(
getContext
());
mCardLoader
=
new
CardLoader
(
getContext
());
mCardLoader
.
setCallBack
(
this
);
mCardLoader
.
setCallBack
(
this
);
mCardSearcher
=
new
CardSearcher
(
layoutView
.
findViewById
(
R
.
id
.
nav_view_list
),
mCardLoader
);
mCardSearcher
=
new
CardSearcher
(
layoutView
.
findViewById
(
R
.
id
.
nav_view_list
),
mCardLoader
);
...
@@ -568,6 +571,11 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
...
@@ -568,6 +571,11 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
showSearchKeyWord
(
keyword
);
//根据关键词搜索
showSearchKeyWord
(
keyword
);
//根据关键词搜索
}
}
@Override
public
void
onGetRelatedCardList
(
Card
cardInfo
)
{
getRelatedCardList
(
cardInfo
);
}
@Override
@Override
public
void
onClose
()
{
public
void
onClose
()
{
mDialog
.
dismiss
();
mDialog
.
dismiss
();
...
@@ -621,6 +629,50 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
...
@@ -621,6 +629,50 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
mCardLoader
.
search
(
searchInfo
);
mCardLoader
.
search
(
searchInfo
);
}
}
private
void
getRelatedCardList
(
Card
cardInfo
)
{
SparseArray
<
Card
>
cards
=
mCardManager
.
getAllCards
();
// 使用 ArrayList 来保存匹配的卡片
List
<
Card
>
matchingCards
=
new
ArrayList
<>();
// 将 cardInfo 的 setCode 转换为 List<Long>
List
<
Long
>
cardInfoSetCodes
=
new
ArrayList
<>();
for
(
long
setCode
:
cardInfo
.
getSetCode
())
{
if
(
setCode
!=
0
)
cardInfoSetCodes
.
add
(
setCode
);
}
Log
.
w
(
"cc cardInfoSetCodes"
,
cardInfoSetCodes
.
toString
());
for
(
int
i
=
0
;
i
<
cards
.
size
();
i
++)
{
Card
card
=
cards
.
valueAt
(
i
);
// 检查卡片是否已经存在于匹配列表中
if
(!
matchingCards
.
contains
(
card
))
{
// 检查卡片名或描述是否包含给定卡片的名字
if
(!
card
.
Name
.
equals
(
cardInfo
.
Name
)
&&
(
card
.
Name
.
contains
(
cardInfo
.
Name
)
||
card
.
Desc
.
contains
(
cardInfo
.
Name
)))
{
matchingCards
.
add
(
card
);
continue
;
// 如果名称或描述匹配,则跳过系列代码检查
}
// 获取卡片的系列代码并检查是否有相同的系列代码
for
(
long
setCode
:
card
.
getSetCode
())
{
if
(
cardInfoSetCodes
.
contains
(
setCode
))
{
matchingCards
.
add
(
card
);
break
;
// 如果已经找到匹配,可以跳出内层循环
}
}
}
}
// 日志输出匹配的卡片数量
Log
.
w
(
"cc related cards"
,
"Found "
+
matchingCards
.
size
()
+
" related cards."
);
// 确保 matchingCards 不为空时调用 onSearchResult
if
(!
matchingCards
.
isEmpty
())
{
onSearchResult
(
matchingCards
,
false
);
}
else
{
Log
.
w
(
"cc"
,
"No related card found"
);
}
}
private
void
showPackList
(
Card
cardInfo
)
{
private
void
showPackList
(
Card
cardInfo
)
{
Integer
idToUse
=
cardInfo
.
Alias
!=
0
?
cardInfo
.
Alias
:
cardInfo
.
Code
;
Integer
idToUse
=
cardInfo
.
Alias
!=
0
?
cardInfo
.
Alias
:
cardInfo
.
Code
;
// 确保再次检查 PackManager 是否已经加载完成
// 确保再次检查 PackManager 是否已经加载完成
...
...
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