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
bafe0abf
Commit
bafe0abf
authored
Jan 24, 2025
by
fallenstardust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
合并卡包展示、高亮词查询、关联卡片处理集中到CardDetail并统一监听方法
parent
1d534200
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
25 additions
and
64 deletions
+25
-64
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/CardDetail.java
...rc/main/java/cn/garymb/ygomobile/ui/cards/CardDetail.java
+23
-30
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/CardSearchFragment.java
...java/cn/garymb/ygomobile/ui/cards/CardSearchFragment.java
+1
-17
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
...ava/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
+1
-16
mobile/src/main/res/layout/dialog_cardinfo.xml
mobile/src/main/res/layout/dialog_cardinfo.xml
+0
-1
No files found.
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/CardDetail.java
View file @
bafe0abf
...
@@ -224,7 +224,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -224,7 +224,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
if
(
cardInfo
==
null
)
{
if
(
cardInfo
==
null
)
{
return
;
return
;
}
}
mListener
.
on
GetRelated
CardList
(
relatedCards
(
cardInfo
));
mListener
.
on
Show
CardList
(
relatedCards
(
cardInfo
));
}
}
});
});
findViewById
(
R
.
id
.
lastone
).
setOnClickListener
((
v
)
->
{
findViewById
(
R
.
id
.
lastone
).
setOnClickListener
((
v
)
->
{
...
@@ -319,7 +319,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -319,7 +319,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
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
;
mListener
.
onShow
Pack
List
(
packManager
.
getCards
(
cardLoader
,
idToUse
));
mListener
.
onShow
Card
List
(
packManager
.
getCards
(
cardLoader
,
idToUse
));
}
}
public
void
setHighlightTextWithClickableSpans
(
String
text
)
{
public
void
setHighlightTextWithClickableSpans
(
String
text
)
{
...
@@ -391,7 +391,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -391,7 +391,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
if
(
color
!=
Color
.
WHITE
)
{
if
(
color
!=
Color
.
WHITE
)
{
// 获取被点击的文本内容
// 获取被点击的文本内容
String
clickedText
=
((
TextView
)
widget
).
getText
().
subSequence
(
start
,
end
).
toString
();
String
clickedText
=
((
TextView
)
widget
).
getText
().
subSequence
(
start
,
end
).
toString
();
mListener
.
onS
earchKeyWord
(
clickedText
);
mListener
.
onS
howCardList
(
queryList
(
clickedText
)
);
}
else
{
}
else
{
YGOUtil
.
showTextToast
(
context
.
getString
(
R
.
string
.
searchresult
)
+
context
.
getString
(
R
.
string
.
already_end
));
YGOUtil
.
showTextToast
(
context
.
getString
(
R
.
string
.
searchresult
)
+
context
.
getString
(
R
.
string
.
already_end
));
}
}
...
@@ -406,24 +406,32 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -406,24 +406,32 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
},
start
,
end
,
SpannableString
.
SPAN_EXCLUSIVE_EXCLUSIVE
);
},
start
,
end
,
SpannableString
.
SPAN_EXCLUSIVE_EXCLUSIVE
);
}
}
private
boolean
queryable
(
String
keyword
)
{
private
List
<
Card
>
queryList
(
String
keyword
)
{
// 检查关键词是否为空或仅包含空白字符
long
setcode
=
DataManager
.
get
().
getStringManager
().
getSetCode
(
keyword
);
if
(
TextUtils
.
isEmpty
(
keyword
))
{
return
false
;
}
SparseArray
<
Card
>
cards
=
cardManager
.
getAllCards
();
SparseArray
<
Card
>
cards
=
cardManager
.
getAllCards
();
List
<
Card
>
matchingCards
=
new
ArrayList
<>();
List
<
Card
>
matchingCards
=
new
ArrayList
<>();
List
<
Long
>
cardInfoSetCodes
=
new
ArrayList
<>();
// 检查关键词是否存在于卡片名字或描述中
// 检查关键词是否存在于卡片名字或描述中
for
(
int
i
=
0
;
i
<
cards
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
cards
.
size
();
i
++)
{
Card
card
=
cards
.
valueAt
(
i
);
Card
card
=
cards
.
valueAt
(
i
);
cardInfoSetCodes
.
clear
();
//每张卡调用前都清空字段表以防重复
// 将 card 的 setCode 转换为 List<Long>
for
(
long
setCode
:
card
.
getSetCode
())
{
if
(
setCode
>
0
)
cardInfoSetCodes
.
add
(
setCode
);
}
//关键词如果有对应字段则添加进去
if
(
cardInfoSetCodes
.
contains
(
setcode
)
&&
!
matchingCards
.
contains
(
card
))
matchingCards
.
add
(
card
);
// 确保 card.Name 和 card.Desc 不为 null
// 确保 card.Name 和 card.Desc 不为 null
if
((
card
.
Name
!=
null
&&
card
.
Name
.
contains
(
keyword
))
||
if
((
card
.
Name
!=
null
&&
card
.
Name
.
contains
(
keyword
))
||
(
card
.
Desc
!=
null
&&
card
.
Desc
.
contains
(
keyword
)))
{
(
card
.
Desc
!=
null
&&
card
.
Desc
.
contains
(
keyword
)))
{
if
(!
matchingCards
.
contains
(
card
))
matchingCards
.
add
(
card
);
matchingCards
.
add
(
card
);
}
}
}
}
return
matchingCards
;
}
private
boolean
queryable
(
String
keyword
)
{
List
<
Card
>
matchingCards
=
queryList
(
keyword
);
// 检查匹配结果
// 检查匹配结果
if
(
matchingCards
.
isEmpty
())
{
if
(
matchingCards
.
isEmpty
())
{
return
false
;
// 如果没有找到匹配的卡片,返回 false
return
false
;
// 如果没有找到匹配的卡片,返回 false
...
@@ -453,7 +461,6 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -453,7 +461,6 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
List
<
String
>
highlightedTexts
=
new
ArrayList
<>(
spanStringList
);
List
<
String
>
highlightedTexts
=
new
ArrayList
<>(
spanStringList
);
// 使用 ArrayList 来保存匹配的卡片
// 使用 ArrayList 来保存匹配的卡片
List
<
Card
>
matchingCards
=
new
ArrayList
<>();
List
<
Card
>
matchingCards
=
new
ArrayList
<>();
// 将 cardInfo 的 setCode 转换为 List<Long>
// 将 cardInfo 的 setCode 转换为 List<Long>
List
<
Long
>
cardInfoSetCodes
=
new
ArrayList
<>();
List
<
Long
>
cardInfoSetCodes
=
new
ArrayList
<>();
for
(
long
setCode
:
cardInfo
.
getSetCode
())
{
for
(
long
setCode
:
cardInfo
.
getSetCode
())
{
...
@@ -785,11 +792,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -785,11 +792,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
void
onImageUpdate
(
Card
cardInfo
);
void
onImageUpdate
(
Card
cardInfo
);
void
onShowPackList
(
List
<
Card
>
packList
);
void
onShowCardList
(
List
<
Card
>
cardList
);
void
onSearchKeyWord
(
String
keyword
);
void
onGetRelatedCardList
(
List
<
Card
>
cardList
);
void
onClose
();
void
onClose
();
}
}
...
@@ -813,17 +816,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -813,17 +816,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
}
}
@Override
@Override
public
void
onShowPackList
(
List
<
Card
>
packList
)
{
public
void
onShowCardList
(
List
<
Card
>
cardList
)
{
}
@Override
public
void
onSearchKeyWord
(
String
keyword
)
{
}
@Override
public
void
onGetRelatedCardList
(
List
<
Card
>
cardList
)
{
}
}
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/CardSearchFragment.java
View file @
bafe0abf
...
@@ -304,17 +304,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
...
@@ -304,17 +304,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
}
}
@Override
@Override
public
void
onShowPackList
(
List
<
Card
>
packList
)
{
public
void
onShowCardList
(
List
<
Card
>
cardList
)
{
showCardList
(
packList
,
false
);
//保持原收录顺序,不排序
}
@Override
public
void
onSearchKeyWord
(
String
keyword
)
{
showSearchKeyWord
(
keyword
);
}
@Override
public
void
onGetRelatedCardList
(
List
<
Card
>
cardList
)
{
showCardList
(
cardList
,
true
);
//便于查看,排序
showCardList
(
cardList
,
true
);
//便于查看,排序
}
}
...
@@ -355,11 +345,6 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
...
@@ -355,11 +345,6 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
}
}
}
}
private
void
showSearchKeyWord
(
String
keyword
)
{
CardSearchInfo
searchInfo
=
new
CardSearchInfo
.
Builder
().
keyword
(
keyword
).
types
(
new
long
[]{}).
build
();
//构建CardSearchInfo时type不能为null
mCardLoader
.
search
(
searchInfo
);
}
private
void
showCardList
(
List
<
Card
>
cardList
,
boolean
sort
)
{
private
void
showCardList
(
List
<
Card
>
cardList
,
boolean
sort
)
{
if
(!
cardList
.
isEmpty
())
{
if
(!
cardList
.
isEmpty
())
{
onSearchResult
(
sort
?
mCardLoader
.
sort
(
cardList
)
:
cardList
,
false
);
//根据情况不同,判断是否调用CardLoader的sort方法排序List<Card>
onSearchResult
(
sort
?
mCardLoader
.
sort
(
cardList
)
:
cardList
,
false
);
//根据情况不同,判断是否调用CardLoader的sort方法排序List<Card>
...
@@ -368,7 +353,6 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
...
@@ -368,7 +353,6 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
}
}
}
}
protected
void
showSearch
(
boolean
autoclose
)
{
protected
void
showSearch
(
boolean
autoclose
)
{
if
(
autoclose
&&
mDrawerlayout
.
isDrawerOpen
(
Constants
.
CARD_SEARCH_GRAVITY
))
{
if
(
autoclose
&&
mDrawerlayout
.
isDrawerOpen
(
Constants
.
CARD_SEARCH_GRAVITY
))
{
mDrawerlayout
.
closeDrawer
(
Constants
.
CARD_SEARCH_GRAVITY
);
mDrawerlayout
.
closeDrawer
(
Constants
.
CARD_SEARCH_GRAVITY
);
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
View file @
bafe0abf
...
@@ -562,17 +562,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
...
@@ -562,17 +562,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
}
}
@Override
@Override
public
void
onShowPackList
(
List
<
Card
>
packList
)
{
public
void
onShowCardList
(
List
<
Card
>
cardList
)
{
showCardList
(
packList
,
false
);
//保持原收录顺序,不排序
}
@Override
public
void
onSearchKeyWord
(
String
keyword
)
{
showSearchKeyWord
(
keyword
);
//根据关键词搜索
}
@Override
public
void
onGetRelatedCardList
(
List
<
Card
>
cardList
)
{
showCardList
(
cardList
,
true
);
//便于查看,排序
showCardList
(
cardList
,
true
);
//便于查看,排序
}
}
...
@@ -624,11 +614,6 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
...
@@ -624,11 +614,6 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
}
}
}
}
private
void
showSearchKeyWord
(
String
keyword
)
{
CardSearchInfo
searchInfo
=
new
CardSearchInfo
.
Builder
().
keyword
(
keyword
).
types
(
new
long
[]{}).
build
();
//构建CardSearchInfo时type不能为null
mCardLoader
.
search
(
searchInfo
);
}
private
void
showCardList
(
List
<
Card
>
cardList
,
boolean
sort
)
{
private
void
showCardList
(
List
<
Card
>
cardList
,
boolean
sort
)
{
if
(!
cardList
.
isEmpty
())
{
if
(!
cardList
.
isEmpty
())
{
onSearchResult
(
sort
?
mCardLoader
.
sort
(
cardList
)
:
cardList
,
false
);
//根据情况不同,判断是否调用CardLoader的sort方法排序List<Card>
onSearchResult
(
sort
?
mCardLoader
.
sort
(
cardList
)
:
cardList
,
false
);
//根据情况不同,判断是否调用CardLoader的sort方法排序List<Card>
...
...
mobile/src/main/res/layout/dialog_cardinfo.xml
View file @
bafe0abf
...
@@ -40,7 +40,6 @@
...
@@ -40,7 +40,6 @@
android:layout_marginLeft=
"5dp"
android:layout_marginLeft=
"5dp"
android:background=
"@drawable/button2_bg"
android:background=
"@drawable/button2_bg"
android:gravity=
"center"
android:gravity=
"center"
android:paddingLeft=
"16dp"
android:paddingRight=
"16dp"
android:paddingRight=
"16dp"
android:shadowColor=
"@color/black"
android:shadowColor=
"@color/black"
android:text=
"@string/card_faq"
android:text=
"@string/card_faq"
...
...
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