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
0d9cd2e8
Commit
0d9cd2e8
authored
Jul 28, 2024
by
wangfugui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add some comments
parent
128eacba
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
50 additions
and
21 deletions
+50
-21
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
...ava/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
+8
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck/DeckAdapater.java
.../java/cn/garymb/ygomobile/ui/cards/deck/DeckAdapater.java
+17
-13
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck/DeckItemType.java
.../java/cn/garymb/ygomobile/ui/cards/deck/DeckItemType.java
+10
-7
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck/DeckViewHolder.java
...ava/cn/garymb/ygomobile/ui/cards/deck/DeckViewHolder.java
+15
-1
No files found.
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/DeckManagerFragment.java
View file @
0d9cd2e8
...
@@ -107,6 +107,10 @@ import ocgcore.data.Card;
...
@@ -107,6 +107,10 @@ import ocgcore.data.Card;
import
ocgcore.data.LimitList
;
import
ocgcore.data.LimitList
;
import
ocgcore.enums.LimitType
;
import
ocgcore.enums.LimitType
;
/**
* 注意,卡组编辑页面中的长按事件回调在ItemTouchHelperPlus中实现,而非在
* RecyclerViewItemListener.OnItemListener中
*/
public
class
DeckManagerFragment
extends
BaseFragemnt
implements
RecyclerViewItemListener
.
OnItemListener
,
OnItemDragListener
,
YGODialogUtil
.
OnDeckMenuListener
,
CardLoader
.
CallBack
,
CardSearcher
.
CallBack
{
public
class
DeckManagerFragment
extends
BaseFragemnt
implements
RecyclerViewItemListener
.
OnItemListener
,
OnItemDragListener
,
YGODialogUtil
.
OnDeckMenuListener
,
CardLoader
.
CallBack
,
CardSearcher
.
CallBack
{
private
static
final
String
TAG
=
"DeckManagerFragment"
;
private
static
final
String
TAG
=
"DeckManagerFragment"
;
protected
DrawerLayout
mDrawerLayout
;
protected
DrawerLayout
mDrawerLayout
;
...
@@ -298,6 +302,10 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
...
@@ -298,6 +302,10 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
}
}
/**
* 在此处处理卡组中卡片的长按删除
* @param pos
*/
@Override
@Override
public
void
onDragLongPress
(
int
pos
)
{
public
void
onDragLongPress
(
int
pos
)
{
if
(
pos
<
0
)
return
;
if
(
pos
<
0
)
return
;
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck/DeckAdapater.java
View file @
0d9cd2e8
...
@@ -32,6 +32,9 @@ import ocgcore.data.LimitList;
...
@@ -32,6 +32,9 @@ import ocgcore.data.LimitList;
import
ocgcore.enums.CardType
;
import
ocgcore.enums.CardType
;
import
ocgcore.enums.LimitType
;
import
ocgcore.enums.LimitType
;
/**
* 在对应的recyclerview中添加了很多透明的item来“占位”,占位后便于根据“拖动卡片的位置”计算添加的卡片类型(是主卡组、额外卡组还是副卡组)
*/
public
class
DeckAdapater
extends
RecyclerView
.
Adapter
<
DeckViewHolder
>
implements
CardListProvider
{
public
class
DeckAdapater
extends
RecyclerView
.
Adapter
<
DeckViewHolder
>
implements
CardListProvider
{
private
final
List
<
DeckItem
>
mItems
=
new
ArrayList
<>();
private
final
List
<
DeckItem
>
mItems
=
new
ArrayList
<>();
private
final
SparseArray
<
Integer
>
mCount
=
new
SparseArray
<>();
private
final
SparseArray
<
Integer
>
mCount
=
new
SparseArray
<>();
...
@@ -107,7 +110,7 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
...
@@ -107,7 +110,7 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
int
id
=
DeckItem
.
MainStart
+
getMainCount
();
int
id
=
DeckItem
.
MainStart
+
getMainCount
();
removeItem
(
DeckItem
.
MainEnd
);
removeItem
(
DeckItem
.
MainEnd
);
addItem
(
id
,
new
DeckItem
(
cardInfo
,
type
));
addItem
(
id
,
new
DeckItem
(
cardInfo
,
type
));
notifyItemChanged
(
DeckItem
.
MainEnd
);
//notifyItemChanged(DeckItem.MainEnd);//todo 这行好像没啥用啊??
notifyItemChanged
(
id
);
notifyItemChanged
(
id
);
notifyItemChanged
(
DeckItem
.
MainLabel
);
notifyItemChanged
(
DeckItem
.
MainLabel
);
return
true
;
return
true
;
...
@@ -452,12 +455,6 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
...
@@ -452,12 +455,6 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
return
!
TextUtils
.
equals
(
mDeckMd5
,
md5
);
return
!
TextUtils
.
equals
(
mDeckMd5
,
md5
);
}
}
@Override
public
DeckViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
View
view
=
mLayoutInflater
.
inflate
(
R
.
layout
.
item_deck_card
,
parent
,
false
);
return
new
DeckViewHolder
(
view
);
}
private
String
getString
(
int
id
,
Object
...
args
)
{
private
String
getString
(
int
id
,
Object
...
args
)
{
return
context
.
getString
(
id
,
args
);
return
context
.
getString
(
id
,
args
);
}
}
...
@@ -543,13 +540,20 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
...
@@ -543,13 +540,20 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
// notifyItemChanged(DeckItem.HeadView);
// notifyItemChanged(DeckItem.HeadView);
}
}
@Override
public
DeckViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
// Inflating a layout from XML and returning the holder
View
view
=
mLayoutInflater
.
inflate
(
R
.
layout
.
item_deck_card
,
parent
,
false
);
return
new
DeckViewHolder
(
view
);
}
@Override
@Override
public
void
onBindViewHolder
(
DeckViewHolder
holder
,
int
position
)
{
public
void
onBindViewHolder
(
DeckViewHolder
holder
,
int
position
)
{
//Populating data into the item through holder
DeckItem
item
=
mItems
.
get
(
position
);
DeckItem
item
=
mItems
.
get
(
position
);
holder
.
setItemType
(
item
.
getType
());
holder
.
setItemType
(
item
.
getType
());
if
(
item
.
getType
()
==
DeckItemType
.
MainLabel
||
item
.
getType
()
==
DeckItemType
.
SideLabel
if
(
item
.
getType
()
==
DeckItemType
.
MainLabel
||
item
.
getType
()
==
DeckItemType
.
SideLabel
||
item
.
getType
()
==
DeckItemType
.
ExtraLabel
)
{
||
item
.
getType
()
==
DeckItemType
.
ExtraLabel
)
{
//处理分隔栏的item view
//分隔栏
if
(
item
.
getType
()
==
DeckItemType
.
MainLabel
)
{
if
(
item
.
getType
()
==
DeckItemType
.
MainLabel
)
{
holder
.
setText
(
getMainString
());
holder
.
setText
(
getMainString
());
}
else
if
(
item
.
getType
()
==
DeckItemType
.
SideLabel
)
{
}
else
if
(
item
.
getType
()
==
DeckItemType
.
SideLabel
)
{
...
@@ -557,7 +561,8 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
...
@@ -557,7 +561,8 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
}
else
if
(
item
.
getType
()
==
DeckItemType
.
ExtraLabel
)
{
}
else
if
(
item
.
getType
()
==
DeckItemType
.
ExtraLabel
)
{
holder
.
setText
(
getExtraString
());
holder
.
setText
(
getExtraString
());
}
}
}
else
{
}
else
{
//处理展示卡图的item view
/* 动态计算控件的高度,优先根据卡图的实际大小计算高度,如果结果<=0,则根据recyclerView的宽度计算控件高度 */
if
(
mHeight
<=
0
)
{
if
(
mHeight
<=
0
)
{
if
(
holder
.
cardImage
.
getMeasuredWidth
()
>
0
)
{
if
(
holder
.
cardImage
.
getMeasuredWidth
()
>
0
)
{
mWidth
=
holder
.
cardImage
.
getMeasuredWidth
();
mWidth
=
holder
.
cardImage
.
getMeasuredWidth
();
...
@@ -574,11 +579,10 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
...
@@ -574,11 +579,10 @@ public class DeckAdapater extends RecyclerView.Adapter<DeckViewHolder> implement
//显示卡片
//显示卡片
holder
.
showImage
();
holder
.
showImage
();
holder
.
setSize
(
mHeight
);
holder
.
setSize
(
mHeight
);
if
(
item
.
getType
()
==
DeckItemType
.
Space
)
{
if
(
item
.
getType
()
==
DeckItemType
.
Space
)
{
//占位,不显示卡图
//占位但是不显示卡图
holder
.
setCardType
(
0
);
holder
.
setCardType
(
0
);
holder
.
showEmpty
();
holder
.
showEmpty
();
}
else
{
}
else
{
//非占位,显示卡图
Card
cardInfo
=
item
.
getCardInfo
();
Card
cardInfo
=
item
.
getCardInfo
();
// holder.cardImage.setOnClickListener(new View.OnClickListener() {
// holder.cardImage.setOnClickListener(new View.OnClickListener() {
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck/DeckItemType.java
View file @
0d9cd2e8
package
cn.garymb.ygomobile.ui.cards.deck
;
package
cn.garymb.ygomobile.ui.cards.deck
;
/**
* DeckItemType的不同值对应着,recyclerView中的item的不同布局形式
*/
public
enum
DeckItemType
{
public
enum
DeckItemType
{
MainLabel
,
MainLabel
,
//对应“主卡组:60怪兽:21...“这种分隔标签
MainCard
,
MainCard
,
//对应主卡组中的卡图控件
ExtraLabel
,
ExtraLabel
,
//额外卡组
ExtraCard
,
ExtraCard
,
//对应额外卡组中的卡图控件
SideLabel
,
SideLabel
,
//副卡组
SideCard
,
SideCard
,
//对应副卡组中的卡图控件
Space
,
Space
,
//对应占位的卡图控件
Pack
Pack
}
}
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck/DeckViewHolder.java
View file @
0d9cd2e8
...
@@ -12,7 +12,11 @@ import androidx.recyclerview.widget.RecyclerView;
...
@@ -12,7 +12,11 @@ import androidx.recyclerview.widget.RecyclerView;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.loader.ImageLoader
;
import
cn.garymb.ygomobile.loader.ImageLoader
;
// Provide a direct reference to each of the views within a data item
// Used to cache the views within the item layout for fast access
class
DeckViewHolder
extends
RecyclerView
.
ViewHolder
{
class
DeckViewHolder
extends
RecyclerView
.
ViewHolder
{
// Your holder should contain a member variable
// for any view that will be set as you render a row
private
final
View
view
;
private
final
View
view
;
private
final
View
headView
;
private
final
View
headView
;
private
final
View
textlayout
;
private
final
View
textlayout
;
...
@@ -22,8 +26,11 @@ class DeckViewHolder extends RecyclerView.ViewHolder {
...
@@ -22,8 +26,11 @@ class DeckViewHolder extends RecyclerView.ViewHolder {
private
long
mCardType
;
private
long
mCardType
;
private
DeckItemType
mItemType
;
private
DeckItemType
mItemType
;
// Create a constructor that accepts the entire item row
// and does the view lookups to find each subview
public
DeckViewHolder
(
View
view
)
{
public
DeckViewHolder
(
View
view
)
{
// Stores the view in a public final member variable that can be used
// to access the context from any ViewHolder instance.
super
(
view
);
super
(
view
);
this
.
view
=
view
;
this
.
view
=
view
;
view
.
setTag
(
view
.
getId
(),
this
);
view
.
setTag
(
view
.
getId
(),
this
);
...
@@ -88,6 +95,10 @@ class DeckViewHolder extends RecyclerView.ViewHolder {
...
@@ -88,6 +95,10 @@ class DeckViewHolder extends RecyclerView.ViewHolder {
// imageLoader.$(outFile, cardImage, outFile.getName().endsWith(Constants.BPG), 0, null);
// imageLoader.$(outFile, cardImage, outFile.getName().endsWith(Constants.BPG), 0, null);
}
}
/**
* 只展示分隔标签(例如“主卡组:60怪兽:21“),隐藏掉卡图ImageView
* @param text
*/
public
void
setText
(
String
text
)
{
public
void
setText
(
String
text
)
{
labelText
.
setText
(
text
);
labelText
.
setText
(
text
);
textlayout
.
setVisibility
(
View
.
VISIBLE
);
textlayout
.
setVisibility
(
View
.
VISIBLE
);
...
@@ -95,6 +106,9 @@ class DeckViewHolder extends RecyclerView.ViewHolder {
...
@@ -95,6 +106,9 @@ class DeckViewHolder extends RecyclerView.ViewHolder {
rightImage
.
setVisibility
(
View
.
GONE
);
rightImage
.
setVisibility
(
View
.
GONE
);
}
}
/**
* 展示卡图,隐藏分隔标签
*/
public
void
showImage
()
{
public
void
showImage
()
{
textlayout
.
setVisibility
(
View
.
GONE
);
textlayout
.
setVisibility
(
View
.
GONE
);
cardImage
.
setVisibility
(
View
.
VISIBLE
);
cardImage
.
setVisibility
(
View
.
VISIBLE
);
...
...
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