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
c5670f5e
Commit
c5670f5e
authored
Dec 24, 2024
by
fallenstardust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
卡片详情点击卡包名称搜索显示该卡包的卡片列表
parent
f5e11e53
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
160 additions
and
17 deletions
+160
-17
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/CardDetail.java
...rc/main/java/cn/garymb/ygomobile/ui/cards/CardDetail.java
+30
-1
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/CardSearchFragment.java
...java/cn/garymb/ygomobile/ui/cards/CardSearchFragment.java
+30
-7
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
...ava/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
+26
-1
mobile/src/main/java/ocgcore/PackManager.java
mobile/src/main/java/ocgcore/PackManager.java
+55
-1
mobile/src/main/res/layout/dialog_cardinfo.xml
mobile/src/main/res/layout/dialog_cardinfo.xml
+19
-7
No files found.
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/CardDetail.java
View file @
c5670f5e
...
@@ -34,6 +34,8 @@ import cn.garymb.ygomobile.lite.R;
...
@@ -34,6 +34,8 @@ import cn.garymb.ygomobile.lite.R;
import
cn.garymb.ygomobile.loader.ImageLoader
;
import
cn.garymb.ygomobile.loader.ImageLoader
;
import
cn.garymb.ygomobile.ui.activities.BaseActivity
;
import
cn.garymb.ygomobile.ui.activities.BaseActivity
;
import
cn.garymb.ygomobile.ui.adapters.BaseAdapterPlus
;
import
cn.garymb.ygomobile.ui.adapters.BaseAdapterPlus
;
import
cn.garymb.ygomobile.ui.widget.Shimmer
;
import
cn.garymb.ygomobile.ui.widget.ShimmerTextView
;
import
cn.garymb.ygomobile.utils.CardUtils
;
import
cn.garymb.ygomobile.utils.CardUtils
;
import
cn.garymb.ygomobile.utils.DownloadUtil
;
import
cn.garymb.ygomobile.utils.DownloadUtil
;
import
cn.garymb.ygomobile.utils.FileUtils
;
import
cn.garymb.ygomobile.utils.FileUtils
;
...
@@ -66,7 +68,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -66,7 +68,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
private
final
TextView
cardAtk
;
private
final
TextView
cardAtk
;
private
final
TextView
cardDef
;
private
final
TextView
cardDef
;
private
final
LinearLayout
ll_pack
;
private
final
LinearLayout
ll_pack
;
private
final
TextView
packName
;
private
final
Shimmer
TextView
packName
;
private
final
TextView
setName
;
private
final
TextView
setName
;
private
final
TextView
otView
;
private
final
TextView
otView
;
private
final
TextView
attrView
;
private
final
TextView
attrView
;
...
@@ -98,6 +100,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -98,6 +100,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
private
Button
btn_redownload
;
private
Button
btn_redownload
;
private
Button
btn_share
;
private
Button
btn_share
;
private
boolean
isDownloadCardImage
=
true
;
private
boolean
isDownloadCardImage
=
true
;
private
Shimmer
shimmer
;
@SuppressLint
(
"HandlerLeak"
)
@SuppressLint
(
"HandlerLeak"
)
Handler
handler
=
new
Handler
()
{
Handler
handler
=
new
Handler
()
{
...
@@ -140,6 +143,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -140,6 +143,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
mStringManager
=
stringManager
;
mStringManager
=
stringManager
;
ll_pack
=
findViewById
(
R
.
id
.
ll_pack
);
ll_pack
=
findViewById
(
R
.
id
.
ll_pack
);
packName
=
findViewById
(
R
.
id
.
pack_name
);
packName
=
findViewById
(
R
.
id
.
pack_name
);
toggleAnimation
(
packName
);
name
=
findViewById
(
R
.
id
.
text_name
);
name
=
findViewById
(
R
.
id
.
text_name
);
desc
=
findViewById
(
R
.
id
.
text_desc
);
desc
=
findViewById
(
R
.
id
.
text_desc
);
close
=
findViewById
(
R
.
id
.
btn_close
);
close
=
findViewById
(
R
.
id
.
btn_close
);
...
@@ -206,6 +210,25 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -206,6 +210,25 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
mImageFav
.
setOnClickListener
((
v
)
->
{
mImageFav
.
setOnClickListener
((
v
)
->
{
doMyFavorites
(
getCardInfo
());
doMyFavorites
(
getCardInfo
());
});
});
ll_pack
.
setOnClickListener
((
v
)
->
{
if
(
mListener
!=
null
)
{
Card
cardInfo
=
getCardInfo
();
if
(
cardInfo
==
null
)
{
return
;
}
mListener
.
onShowPackList
(
cardInfo
);
}
});
}
public
void
toggleAnimation
(
ShimmerTextView
target
)
{
if
(
shimmer
!=
null
&&
shimmer
.
isAnimating
())
{
shimmer
.
cancel
();
}
else
{
shimmer
=
new
Shimmer
();
shimmer
.
start
(
target
);
}
}
}
/**
/**
...
@@ -559,6 +582,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -559,6 +582,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
void
onAddMainCard
(
Card
cardInfo
);
void
onAddMainCard
(
Card
cardInfo
);
void
onAddSideCard
(
Card
cardInfo
);
void
onAddSideCard
(
Card
cardInfo
);
void
onImageUpdate
(
Card
cardInfo
);
void
onImageUpdate
(
Card
cardInfo
);
void
onShowPackList
(
Card
cardInfo
);
void
onClose
();
void
onClose
();
}
}
...
@@ -580,6 +604,11 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
...
@@ -580,6 +604,11 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
}
}
@Override
public
void
onShowPackList
(
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 @
c5670f5e
...
@@ -43,9 +43,12 @@ import cn.garymb.ygomobile.ui.home.HomeActivity;
...
@@ -43,9 +43,12 @@ import cn.garymb.ygomobile.ui.home.HomeActivity;
import
cn.garymb.ygomobile.ui.plus.AOnGestureListener
;
import
cn.garymb.ygomobile.ui.plus.AOnGestureListener
;
import
cn.garymb.ygomobile.ui.plus.DialogPlus
;
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.ui.widget.Shimmer
;
import
cn.garymb.ygomobile.ui.widget.ShimmerTextView
;
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.DataManager
;
import
ocgcore.DataManager
;
import
ocgcore.PackManager
;
import
ocgcore.data.Card
;
import
ocgcore.data.Card
;
import
ocgcore.data.LimitList
;
import
ocgcore.data.LimitList
;
...
@@ -56,7 +59,8 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
...
@@ -56,7 +59,8 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
private
HomeActivity
activity
;
private
HomeActivity
activity
;
protected
CardLoader
mCardLoader
;
protected
CardLoader
mCardLoader
;
protected
DrawerLayout
mDrawerlayout
;
protected
DrawerLayout
mDrawerlayout
;
protected
CardSearcher
mCardSelector
;
protected
CardSearcher
mCardSearcher
;
protected
PackManager
mPackManager
;
protected
CardListAdapter
mCardListAdapter
;
protected
CardListAdapter
mCardListAdapter
;
protected
boolean
isLoad
=
false
;
protected
boolean
isLoad
=
false
;
private
RecyclerView
mListView
;
private
RecyclerView
mListView
;
...
@@ -92,10 +96,11 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
...
@@ -92,10 +96,11 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
mListView
.
setAdapter
(
mCardListAdapter
);
mListView
.
setAdapter
(
mCardListAdapter
);
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
();
mCardLoader
=
new
CardLoader
(
getContext
());
mCardLoader
=
new
CardLoader
(
getContext
());
mCardLoader
.
setCallBack
(
this
);
mCardLoader
.
setCallBack
(
this
);
mCardSe
lecto
r
=
new
CardSearcher
(
layoutView
.
findViewById
(
R
.
id
.
nav_view_list
),
mCardLoader
);
mCardSe
arche
r
=
new
CardSearcher
(
layoutView
.
findViewById
(
R
.
id
.
nav_view_list
),
mCardLoader
);
mCardSe
lecto
r
.
setCallBack
(
this
);
mCardSe
arche
r
.
setCallBack
(
this
);
setListeners
();
setListeners
();
DialogPlus
dlg
=
DialogPlus
.
show
(
getContext
(),
null
,
getString
(
R
.
string
.
loading
));
DialogPlus
dlg
=
DialogPlus
.
show
(
getContext
(),
null
,
getString
(
R
.
string
.
loading
));
VUiKit
.
defer
().
when
(()
->
{
VUiKit
.
defer
().
when
(()
->
{
...
@@ -110,7 +115,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
...
@@ -110,7 +115,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
dlg
.
dismiss
();
dlg
.
dismiss
();
isLoad
=
true
;
isLoad
=
true
;
mCardLoader
.
loadData
();
mCardLoader
.
loadData
();
mCardSe
lecto
r
.
initItems
();
mCardSe
arche
r
.
initItems
();
//数据库初始化完毕后搜索被传入的关键字
//数据库初始化完毕后搜索被传入的关键字
intentSearch
(
intentSearchMessage
);
intentSearch
(
intentSearchMessage
);
isInitCdbOk
=
true
;
isInitCdbOk
=
true
;
...
@@ -147,7 +152,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
...
@@ -147,7 +152,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
//卡查关键字为空不卡查
//卡查关键字为空不卡查
if
(
TextUtils
.
isEmpty
(
currentCardSearchMessage
))
if
(
TextUtils
.
isEmpty
(
currentCardSearchMessage
))
return
;
return
;
mCardSe
lecto
r
.
search
(
currentCardSearchMessage
);
mCardSe
arche
r
.
search
(
currentCardSearchMessage
);
}
}
protected
void
setListeners
()
{
protected
void
setListeners
()
{
...
@@ -284,8 +289,8 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
...
@@ -284,8 +289,8 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
if
(
mCardDetail
==
null
)
{
if
(
mCardDetail
==
null
)
{
mCardDetail
=
new
CardDetail
((
BaseActivity
)
getActivity
(),
activity
.
getImageLoader
(),
activity
.
getStringManager
());
mCardDetail
=
new
CardDetail
((
BaseActivity
)
getActivity
(),
activity
.
getImageLoader
(),
activity
.
getStringManager
());
mCardDetail
.
setCallBack
((
card
,
favorite
)
->
{
mCardDetail
.
setCallBack
((
card
,
favorite
)
->
{
if
(
mCardSe
lecto
r
.
isShowFavorite
())
{
if
(
mCardSe
arche
r
.
isShowFavorite
())
{
mCardSe
lecto
r
.
showFavorites
(
false
);
mCardSe
arche
r
.
showFavorites
(
false
);
}
}
});
});
mCardDetail
.
setOnCardClickListener
(
new
CardDetail
.
OnCardSearcherCardClickListener
()
{
mCardDetail
.
setOnCardClickListener
(
new
CardDetail
.
OnCardSearcherCardClickListener
()
{
...
@@ -294,6 +299,11 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
...
@@ -294,6 +299,11 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
WebActivity
.
openFAQ
(
getContext
(),
cardInfo
);
WebActivity
.
openFAQ
(
getContext
(),
cardInfo
);
}
}
@Override
public
void
onShowPackList
(
Card
cardInfo
)
{
showPackList
(
cardInfo
);
}
@Override
@Override
public
void
onImageUpdate
(
Card
cardInfo
)
{
public
void
onImageUpdate
(
Card
cardInfo
)
{
mCardListAdapter
.
notifyItemChanged
(
cardInfo
);
mCardListAdapter
.
notifyItemChanged
(
cardInfo
);
...
@@ -331,6 +341,19 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
...
@@ -331,6 +341,19 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
}
}
}
}
private
void
showPackList
(
Card
cardInfo
)
{
Integer
idToUse
=
cardInfo
.
Alias
!=
0
?
cardInfo
.
Alias
:
cardInfo
.
Code
;
List
<
Card
>
packList
=
mPackManager
.
getCards
(
mCardLoader
,
idToUse
);
if
(
packList
!=
null
)
{
onSearchResult
(
packList
,
false
);
}
else
{
Log
.
w
(
"cc"
,
"No pack found for the given ID/Alias: "
+
idToUse
);
}
}
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 @
c5670f5e
...
@@ -167,7 +167,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
...
@@ -167,7 +167,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
mListView
.
setAdapter
(
mCardListAdapter
);
mListView
.
setAdapter
(
mCardListAdapter
);
setListeners
();
setListeners
();
mPackManager
=
new
PackManager
();
mPackManager
=
DataManager
.
get
().
get
PackManager
();
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
);
...
@@ -557,6 +557,11 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
...
@@ -557,6 +557,11 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
mCardListAdapter
.
notifyItemChanged
(
cardInfo
);
mCardListAdapter
.
notifyItemChanged
(
cardInfo
);
}
}
@Override
public
void
onShowPackList
(
Card
cardInfo
)
{
showPackList
(
cardInfo
);
}
@Override
@Override
public
void
onClose
()
{
public
void
onClose
()
{
mDialog
.
dismiss
();
mDialog
.
dismiss
();
...
@@ -605,6 +610,26 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
...
@@ -605,6 +610,26 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
}
}
}
}
private
void
showPackList
(
Card
cardInfo
)
{
Integer
idToUse
=
cardInfo
.
Alias
!=
0
?
cardInfo
.
Alias
:
cardInfo
.
Code
;
Log
.
d
(
"seesee"
,
"Looking for pack with ID/Alias: "
+
idToUse
);
// 确保再次检查 PackManager 是否已经加载完成
if
(
mPackManager
==
null
)
{
Log
.
w
(
"seesee"
,
"PackManager not loaded when showing pack list."
);
return
;
}
List
<
Card
>
packList
=
mPackManager
.
getCards
(
mCardLoader
,
idToUse
);
Log
.
d
(
"seesee"
,
"Retrieved pack list: "
+
(
packList
==
null
?
"null"
:
packList
.
toString
()));
if
(
packList
!=
null
)
{
onSearchResult
(
packList
,
false
);
}
else
{
Log
.
w
(
"seesee"
,
"No pack found for the given ID/Alias: "
+
idToUse
);
}
}
private
boolean
addSideCard
(
Card
cardInfo
)
{
private
boolean
addSideCard
(
Card
cardInfo
)
{
if
(
checkLimit
(
cardInfo
))
{
if
(
checkLimit
(
cardInfo
))
{
boolean
rs
=
mDeckAdapater
.
AddCard
(
cardInfo
,
DeckItemType
.
SideCard
);
boolean
rs
=
mDeckAdapater
.
AddCard
(
cardInfo
,
DeckItemType
.
SideCard
);
...
...
mobile/src/main/java/ocgcore/PackManager.java
View file @
c5670f5e
package
ocgcore
;
package
ocgcore
;
import
android.os.Build
;
import
android.util.Log
;
import
android.util.Log
;
import
android.util.SparseArray
;
import
java.io.BufferedReader
;
import
java.io.BufferedReader
;
import
java.io.Closeable
;
import
java.io.Closeable
;
...
@@ -16,7 +18,9 @@ import java.util.Map;
...
@@ -16,7 +18,9 @@ import java.util.Map;
import
cn.garymb.ygomobile.AppsSettings
;
import
cn.garymb.ygomobile.AppsSettings
;
import
cn.garymb.ygomobile.Constants
;
import
cn.garymb.ygomobile.Constants
;
import
cn.garymb.ygomobile.loader.CardLoader
;
import
cn.garymb.ygomobile.ui.plus.VUiKit
;
import
cn.garymb.ygomobile.ui.plus.VUiKit
;
import
ocgcore.data.Card
;
public
class
PackManager
implements
Closeable
{
public
class
PackManager
implements
Closeable
{
private
static
final
String
TAG
=
PackManager
.
class
.
getSimpleName
();
private
static
final
String
TAG
=
PackManager
.
class
.
getSimpleName
();
...
@@ -132,6 +136,54 @@ public class PackManager implements Closeable {
...
@@ -132,6 +136,54 @@ public class PackManager implements Closeable {
}
}
return
null
;
// 如果没有找到匹配项,则返回null
return
null
;
// 如果没有找到匹配项,则返回null
}
}
/**
* 根据给定的ID查找其所属的packName下的所有ID。
*
* @param id 给定的ID。
* @return 包含给定ID所属的packName下的所有ID的列表。
*/
public
List
<
Integer
>
getAllIdsById
(
Integer
id
)
{
String
packName
=
findPackNameById
(
id
);
if
(
packName
==
null
)
{
Log
.
w
(
"seesee"
,
"No pack found for ID: "
+
id
);
return
new
ArrayList
<>();
}
return
findIdsByPackName
(
packName
);
}
/**
* 从cardLoader查询收藏的卡片
*
* @param cardLoader
* @return 排序后的列表
*/
public
List
<
Card
>
getCards
(
CardLoader
cardLoader
,
Integer
code
)
{
List
<
Integer
>
mList
=
getAllIdsById
(
code
);
SparseArray
<
Card
>
id
=
cardLoader
.
readCards
(
mList
,
false
);
List
<
Card
>
list
=
new
ArrayList
<>();
if
(
id
!=
null
)
{
for
(
int
i
=
0
;
i
<
id
.
size
();
i
++)
{
list
.
add
(
id
.
valueAt
(
i
));
}
}
return
list
;
}
/**
* 从cardLoader查询收藏的卡片
*
* @param cardLoader
* @return 排序后的列表
*/
public
List
<
Card
>
getCards
(
CardLoader
cardLoader
,
String
packName
)
{
List
<
Integer
>
mList
=
findIdsByPackName
(
packName
);
SparseArray
<
Card
>
id
=
cardLoader
.
readCards
(
mList
,
false
);
List
<
Card
>
list
=
new
ArrayList
<>();
if
(
id
!=
null
)
{
for
(
int
i
=
0
;
i
<
id
.
size
();
i
++)
{
list
.
add
(
id
.
valueAt
(
i
));
}
}
return
list
;
}
/**
/**
* 将packList的内容转换为字符串表示。
* 将packList的内容转换为字符串表示。
...
@@ -142,7 +194,9 @@ public class PackManager implements Closeable {
...
@@ -142,7 +194,9 @@ public class PackManager implements Closeable {
for
(
int
i
=
0
;
i
<
packList
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
packList
.
size
();
i
++)
{
Map
.
Entry
<
String
,
List
<
Integer
>>
entry
=
packList
.
get
(
i
);
Map
.
Entry
<
String
,
List
<
Integer
>>
entry
=
packList
.
get
(
i
);
sb
.
append
(
"Entry "
).
append
(
i
+
1
).
append
(
": "
).
append
(
entry
.
getKey
()).
append
(
" -> ["
);
sb
.
append
(
"Entry "
).
append
(
i
+
1
).
append
(
": "
).
append
(
entry
.
getKey
()).
append
(
" -> ["
);
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
N
)
{
sb
.
append
(
String
.
join
(
", "
,
entry
.
getValue
().
stream
().
map
(
String:
:
valueOf
).
toArray
(
String
[]::
new
)));
sb
.
append
(
String
.
join
(
", "
,
entry
.
getValue
().
stream
().
map
(
String:
:
valueOf
).
toArray
(
String
[]::
new
)));
}
sb
.
append
(
"]\n"
);
sb
.
append
(
"]\n"
);
}
}
return
sb
.
toString
();
return
sb
.
toString
();
...
...
mobile/src/main/res/layout/dialog_cardinfo.xml
View file @
c5670f5e
...
@@ -188,15 +188,27 @@
...
@@ -188,15 +188,27 @@
android:textAppearance=
"@style/TextAppearance.AppCompat.Caption"
android:textAppearance=
"@style/TextAppearance.AppCompat.Caption"
android:textColor=
"@color/item_title"
/>
android:textColor=
"@color/item_title"
/>
<TextView
<LinearLayout
android:id=
"@+id/pack_name"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
>
<cn.garymb.ygomobile.ui.widget.ShimmerTextView
android:id=
"@+id/pack_name"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_gravity=
"center"
android:gravity=
"center_vertical"
android:gravity=
"center_vertical"
android:textAppearance=
"@style/TextAppearance.AppCompat.Caption"
android:textAppearance=
"@style/TextAppearance.AppCompat.Caption"
android:textColor=
"@color/holo_blue_bright"
android:textColor=
"@color/holo_blue_bright"
tools:text=
"2024-12-21 25PP"
/>
tools:text=
"2024-12-21 25PP"
/>
<ImageView
android:layout_width=
"15dp"
android:layout_height=
"15dp"
android:src=
"@drawable/ic_search"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
<LinearLayout
...
...
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