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
751c6865
Commit
751c6865
authored
Jun 18, 2020
by
fallenstardust
Committed by
GitHub
Jun 18, 2020
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #41 from mercury233/patch-search
update search card
parents
5af2c0e7
deb9f402
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
57 additions
and
37 deletions
+57
-37
mobile/src/main/java/cn/garymb/ygomobile/loader/CardLoader.java
.../src/main/java/cn/garymb/ygomobile/loader/CardLoader.java
+11
-8
mobile/src/main/java/cn/garymb/ygomobile/loader/CardSearchInfo.java
.../main/java/cn/garymb/ygomobile/loader/CardSearchInfo.java
+35
-29
mobile/src/main/java/ocgcore/StringManager.java
mobile/src/main/java/ocgcore/StringManager.java
+11
-0
No files found.
mobile/src/main/java/cn/garymb/ygomobile/loader/CardLoader.java
View file @
751c6865
...
...
@@ -20,6 +20,7 @@ import cn.garymb.ygomobile.ui.plus.VUiKit;
import
ocgcore.CardManager
;
import
ocgcore.DataManager
;
import
ocgcore.LimitManager
;
import
ocgcore.StringManager
;
import
ocgcore.data.Card
;
import
ocgcore.data.LimitList
;
import
ocgcore.enums.CardType
;
...
...
@@ -28,6 +29,7 @@ import ocgcore.enums.LimitType;
public
class
CardLoader
implements
ICardLoader
{
private
LimitManager
mLimitManager
;
private
CardManager
mCardManager
;
private
StringManager
mStringManager
;
private
Context
context
;
private
CallBack
mCallBack
;
private
LimitList
mLimitList
;
...
...
@@ -48,6 +50,7 @@ public class CardLoader implements ICardLoader {
this
.
context
=
context
;
mLimitManager
=
DataManager
.
get
().
getLimitManager
();
mCardManager
=
DataManager
.
get
().
getCardManager
();
mStringManager
=
DataManager
.
get
().
getStringManager
();
mLimitList
=
mLimitManager
.
getTopLimit
();
}
...
...
@@ -133,7 +136,7 @@ public class CardLoader implements ICardLoader {
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
Card
card
=
cards
.
valueAt
(
i
);
if
(
searchInfo
==
null
||
searchInfo
.
check
(
card
))
{
if
(
searchInfo
!=
null
&&
card
.
Name
.
equals
(
searchInfo
.
word
))
{
if
(
searchInfo
!=
null
&&
card
.
Name
.
equals
IgnoreCase
(
searchInfo
.
keyWord1
))
{
cards
.
remove
(
i
);
tmp
.
add
(
card
);
}
else
if
(
card
.
isType
(
CardType
.
Monster
))
{
...
...
@@ -206,13 +209,13 @@ public class CardLoader implements ICardLoader {
String
atk
,
String
def
,
long
pscale
,
long
setcode
,
long
category
,
long
ot
,
int
linkKey
,
long
...
types
)
{
CardSearchInfo
searchInfo
=
new
CardSearchInfo
();
if
(!
TextUtils
.
isEmpty
(
prefixWord
)
&&
!
TextUtils
.
isEmpty
(
suffixWord
)
)
{
searchInfo
.
prefixWord
=
prefixWord
;
searchInfo
.
suffixWord
=
suffixWord
;
}
else
if
(!
TextUtils
.
isEmpty
(
prefixWord
))
{
searchInfo
.
word
=
prefixWord
;
}
else
if
(!
TextUtils
.
isEmpty
(
suffixWord
))
{
searchInfo
.
word
=
suffixWord
;
if
(!
TextUtils
.
isEmpty
(
prefixWord
))
{
searchInfo
.
keyWord1
=
prefixWord
;
searchInfo
.
keyWordSetcode1
=
mStringManager
.
getSetCode
(
prefixWord
)
;
}
if
(!
TextUtils
.
isEmpty
(
suffixWord
))
{
searchInfo
.
keyWord2
=
suffixWord
;
searchInfo
.
keyWordSetcode2
=
mStringManager
.
getSetCode
(
suffixWord
)
;
}
searchInfo
.
attribute
=
(
int
)
attribute
;
searchInfo
.
level
=
(
int
)
level
;
...
...
mobile/src/main/java/cn/garymb/ygomobile/loader/CardSearchInfo.java
View file @
751c6865
...
...
@@ -9,7 +9,7 @@ import ocgcore.enums.CardType;
class
CardSearchInfo
{
//名字或者描述
String
word
,
prefixWord
,
suffixWord
;
String
keyWord1
,
keyWord2
;
int
attribute
;
int
level
,
ot
,
pscale
=
-
1
;
long
race
,
category
;
...
...
@@ -17,11 +17,33 @@ class CardSearchInfo {
int
linkKey
;
List
<
Integer
>
inCards
;
long
[]
types
;
long
setcode
;
long
setcode
,
keyWordSetcode1
,
keyWordSetcode2
;
CardSearchInfo
()
{
}
public
static
boolean
containsIgnoreCase
(
String
src
,
String
what
)
{
// https://stackoverflow.com/a/25379180
final
int
length
=
what
.
length
();
if
(
length
==
0
)
return
true
;
// Empty string is contained
final
char
firstLo
=
Character
.
toLowerCase
(
what
.
charAt
(
0
));
final
char
firstUp
=
Character
.
toUpperCase
(
what
.
charAt
(
0
));
for
(
int
i
=
src
.
length
()
-
length
;
i
>=
0
;
i
--)
{
// Quick check before calling the more expensive regionMatches() method:
final
char
ch
=
src
.
charAt
(
i
);
if
(
ch
!=
firstLo
&&
ch
!=
firstUp
)
continue
;
if
(
src
.
regionMatches
(
true
,
i
,
what
,
0
,
length
))
return
true
;
}
return
false
;
}
List
<
Integer
>
getInCards
()
{
return
inCards
;
}
...
...
@@ -30,37 +52,21 @@ class CardSearchInfo {
if
(
inCards
!=
null
&&
!
inCards
.
contains
(
Integer
.
valueOf
(
card
.
Code
)))
{
return
false
;
}
if
(!
TextUtils
.
isEmpty
(
word
))
{
if
(
TextUtils
.
isDigitsOnly
(
word
)
&&
word
.
length
()
>=
5
)
{
if
(!
TextUtils
.
isEmpty
(
keyWord1
))
{
if
(
TextUtils
.
isDigitsOnly
(
keyWord1
)
&&
keyWord1
.
length
()
>=
5
)
{
//code
long
code
=
Long
.
parseLong
(
word
);
long
code
=
Long
.
parseLong
(
keyWord1
);
return
card
.
Code
==
code
||
card
.
Alias
==
code
;
}
else
if
(!((
card
.
Name
!=
null
&&
card
.
Name
.
contains
(
word
))
||
(
card
.
Desc
!=
null
&&
card
.
Desc
.
contains
(
word
))))
{
}
else
if
(!((
card
.
Name
!=
null
&&
containsIgnoreCase
(
card
.
Name
,
keyWord1
))
||
(
card
.
Desc
!=
null
&&
containsIgnoreCase
(
card
.
Desc
,
keyWord1
))
||
(
keyWordSetcode1
>
0
&&
card
.
isSetCode
(
keyWordSetcode1
))))
{
return
false
;
}
}
else
if
(!
TextUtils
.
isEmpty
(
prefixWord
)
&&
!
TextUtils
.
isEmpty
(
suffixWord
))
{
boolean
has
=
false
;
int
i1
=
-
1
,
i2
=
-
1
,
i3
,
i4
;
if
(
card
.
Name
!=
null
)
{
i1
=
card
.
Name
.
indexOf
(
prefixWord
);
i2
=
card
.
Name
.
indexOf
(
suffixWord
);
if
(
i1
>=
0
&&
i2
>=
0
)
{
has
=
true
;
}
}
if
(!
has
)
{
if
(
card
.
Desc
!=
null
)
{
i3
=
card
.
Desc
.
indexOf
(
prefixWord
);
i4
=
card
.
Desc
.
indexOf
(
suffixWord
);
if
((
i3
>=
0
&&
i4
>=
0
)
||
(
i3
>=
0
&&
i2
>=
0
)
||
(
i1
>=
0
&&
i4
>=
0
))
{
has
=
true
;
}
}
}
if
(!
has
)
{
if
(!
TextUtils
.
isEmpty
(
keyWord2
))
{
if
(!((
card
.
Name
!=
null
&&
containsIgnoreCase
(
card
.
Name
,
keyWord2
))
||
(
card
.
Desc
!=
null
&&
containsIgnoreCase
(
card
.
Desc
,
keyWord2
))
||
(
keyWordSetcode2
>
0
&&
card
.
isSetCode
(
keyWordSetcode2
))))
{
return
false
;
}
}
...
...
mobile/src/main/java/ocgcore/StringManager.java
View file @
751c6865
...
...
@@ -179,6 +179,17 @@ public class StringManager implements Closeable {
return
String
.
format
(
"0x%x"
,
key
);
}
public
long
getSetCode
(
String
key
)
{
for
(
int
i
=
0
;
i
<
mCardSets
.
size
();
i
++)
{
CardSet
cardSet
=
mCardSets
.
get
(
i
);
String
[]
setNames
=
cardSet
.
getName
().
split
(
"\\|"
);
if
(
setNames
[
0
].
equalsIgnoreCase
(
key
)){
return
cardSet
.
getCode
();
}
}
return
0
;
}
public
String
getSystemString
(
int
key
)
{
return
mSystem
.
get
(
Integer
.
valueOf
(
key
));
}
...
...
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