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
a88b350e
Commit
a88b350e
authored
Mar 01, 2022
by
feihuaduo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gradle版本更新到7.1.2
修复卡组码不完整时打开卡组崩溃的问题
parent
4ac0243d
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
65 additions
and
35 deletions
+65
-35
build.gradle
build.gradle
+1
-1
gradle/wrapper/gradle-wrapper.properties
gradle/wrapper/gradle-wrapper.properties
+1
-1
mobile/src/main/java/cn/garymb/ygomobile/GameUriManager.java
mobile/src/main/java/cn/garymb/ygomobile/GameUriManager.java
+3
-0
mobile/src/main/java/cn/garymb/ygomobile/bean/Deck.java
mobile/src/main/java/cn/garymb/ygomobile/bean/Deck.java
+53
-33
mobile/src/main/java/cn/garymb/ygomobile/ui/home/HomeActivity.java
...c/main/java/cn/garymb/ygomobile/ui/home/HomeActivity.java
+3
-0
mobile/src/main/java/com/ourygo/assistant/service/DuelAssistantService.java
...va/com/ourygo/assistant/service/DuelAssistantService.java
+4
-0
No files found.
build.gradle
View file @
a88b350e
...
@@ -9,7 +9,7 @@ buildscript {
...
@@ -9,7 +9,7 @@ buildscript {
google
()
google
()
}
}
dependencies
{
dependencies
{
classpath
'com.android.tools.build:gradle:7.
0.4
'
classpath
'com.android.tools.build:gradle:7.
1.2
'
classpath
'com.android.tools.build:gradle-experimental:0.11.1'
classpath
'com.android.tools.build:gradle-experimental:0.11.1'
//classpath 'me.tatarka:gradle-retrolambda:3.2.5'
//classpath 'me.tatarka:gradle-retrolambda:3.2.5'
}
}
...
...
gradle/wrapper/gradle-wrapper.properties
View file @
a88b350e
...
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
...
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath
=
wrapper/dists
distributionPath
=
wrapper/dists
zipStoreBase
=
GRADLE_USER_HOME
zipStoreBase
=
GRADLE_USER_HOME
zipStorePath
=
wrapper/dists
zipStorePath
=
wrapper/dists
distributionUrl
=
https
\:
//services.gradle.org/distributions/gradle-7.
0.
2-all.zip
distributionUrl
=
https
\:
//services.gradle.org/distributions/gradle-7.2-all.zip
mobile/src/main/java/cn/garymb/ygomobile/GameUriManager.java
View file @
a88b350e
...
@@ -246,6 +246,9 @@ public class GameUriManager {
...
@@ -246,6 +246,9 @@ public class GameUriManager {
}
else
{
}
else
{
Deck
deckInfo
=
new
Deck
(
uri
);
Deck
deckInfo
=
new
Deck
(
uri
);
File
file
=
deckInfo
.
saveTemp
(
AppsSettings
.
get
().
getDeckDir
());
File
file
=
deckInfo
.
saveTemp
(
AppsSettings
.
get
().
getDeckDir
());
if
(!
deckInfo
.
isCompleteDeck
()){
YGOUtil
.
show
(
"当前卡组缺少完整信息,将只显示已有卡片"
);
}
DeckManagerActivity
.
start
(
activity
,
file
.
getAbsolutePath
());
DeckManagerActivity
.
start
(
activity
,
file
.
getAbsolutePath
());
}
}
}
else
if
(
Constants
.
URI_ROOM
.
equals
(
host
))
{
}
else
if
(
Constants
.
URI_ROOM
.
equals
(
host
))
{
...
...
mobile/src/main/java/cn/garymb/ygomobile/bean/Deck.java
View file @
a88b350e
...
@@ -51,6 +51,7 @@ public class Deck implements Parcelable {
...
@@ -51,6 +51,7 @@ public class Deck implements Parcelable {
private
final
ArrayList
<
Integer
>
extraList
;
private
final
ArrayList
<
Integer
>
extraList
;
private
final
ArrayList
<
Integer
>
sideList
;
private
final
ArrayList
<
Integer
>
sideList
;
private
String
name
;
private
String
name
;
private
boolean
isCompleteDeck
=
true
;
public
Deck
()
{
public
Deck
()
{
mainlist
=
new
ArrayList
<>();
mainlist
=
new
ArrayList
<>();
...
@@ -124,10 +125,10 @@ public class Deck implements Parcelable {
...
@@ -124,10 +125,10 @@ public class Deck implements Parcelable {
case
YGO_DECK_PROTOCOL_1:
case
YGO_DECK_PROTOCOL_1:
String
deck
=
uri
.
getQueryParameter
(
QUERY_DECK
);
String
deck
=
uri
.
getQueryParameter
(
QUERY_DECK
);
deck
=
deck
.
replace
(
"-"
,
"+"
);
deck
=
deck
.
replace
(
"-"
,
"+"
);
deck
=
deck
.
replace
(
"_"
,
"/"
);
deck
=
deck
.
replace
(
"_"
,
"/"
);
byte
[]
bytes
=
Base64
.
decode
(
deck
,
Base64
.
NO_WRAP
);
byte
[]
bytes
=
Base64
.
decode
(
deck
,
Base64
.
NO_WRAP
);
Log
.
e
(
"Deck"
,
deck
.
length
()+
"字符位数"
+
bytes
.
length
);
Log
.
e
(
"Deck"
,
deck
.
length
()
+
"字符位数"
+
bytes
.
length
);
String
[]
bits
=
new
String
[
bytes
.
length
*
8
];
String
[]
bits
=
new
String
[
bytes
.
length
*
8
];
for
(
int
i
=
0
;
i
<
bytes
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
bytes
.
length
;
i
++)
{
...
@@ -135,12 +136,12 @@ public class Deck implements Parcelable {
...
@@ -135,12 +136,12 @@ public class Deck implements Parcelable {
String
b
=
Integer
.
toBinaryString
(
bytes
[
i
]);
String
b
=
Integer
.
toBinaryString
(
bytes
[
i
]);
b
=
YGOUtil
.
toNumLength
(
b
,
8
);
b
=
YGOUtil
.
toNumLength
(
b
,
8
);
if
(
b
.
length
()
>
8
)
if
(
b
.
length
()
>
8
)
b
=
b
.
substring
(
b
.
length
()-
8
);
b
=
b
.
substring
(
b
.
length
()
-
8
);
if
(
i
<
8
)
if
(
i
<
8
)
Log
.
e
(
"Deck"
,
b
+
" byte:"
+
bytes
[
i
]);
Log
.
e
(
"Deck"
,
b
+
" byte:"
+
bytes
[
i
]);
for
(
int
x
=
0
;
x
<
8
;
x
++)
for
(
int
x
=
0
;
x
<
8
;
x
++)
bits
[
i
*
8
+
x
]
=
b
.
substring
(
x
,
x
+
1
);
bits
[
i
*
8
+
x
]
=
b
.
substring
(
x
,
x
+
1
);
}
}
bits
=
YGOUtil
.
toNumLength
(
bits
,
16
);
bits
=
YGOUtil
.
toNumLength
(
bits
,
16
);
...
@@ -149,18 +150,22 @@ public class Deck implements Parcelable {
...
@@ -149,18 +150,22 @@ public class Deck implements Parcelable {
int
eNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
8
,
12
),
2
);
int
eNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
8
,
12
),
2
);
int
sNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
12
,
16
),
2
);
int
sNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
12
,
16
),
2
);
try
{
try
{
FileLogUtil
.
write
(
"种类数量"
+
mNum
+
" "
+
eNum
+
" "
+
sNum
+
" "
);
FileLogUtil
.
write
(
"种类数量"
+
mNum
+
" "
+
eNum
+
" "
+
sNum
+
" "
);
FileLogUtil
.
write
(
"m:"
+
YGOUtil
.
getArrayString
(
bits
,
0
,
8
));
FileLogUtil
.
write
(
"m:"
+
YGOUtil
.
getArrayString
(
bits
,
0
,
8
));
FileLogUtil
.
write
(
"s:"
+
YGOUtil
.
getArrayString
(
bits
,
8
,
12
));
FileLogUtil
.
write
(
"s:"
+
YGOUtil
.
getArrayString
(
bits
,
8
,
12
));
FileLogUtil
.
write
(
"e:"
+
YGOUtil
.
getArrayString
(
bits
,
12
,
16
));
FileLogUtil
.
write
(
"e:"
+
YGOUtil
.
getArrayString
(
bits
,
12
,
16
));
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
Log
.
e
(
"Deck"
,
"种类数量"
+
mNum
+
" "
+
eNum
+
" "
+
sNum
+
" "
);
Log
.
e
(
"Deck"
,
"种类数量"
+
mNum
+
" "
+
eNum
+
" "
+
sNum
+
" "
);
Log
.
e
(
"Deck"
,
"m:"
+
YGOUtil
.
getArrayString
(
bits
,
0
,
8
));
Log
.
e
(
"Deck"
,
"m:"
+
YGOUtil
.
getArrayString
(
bits
,
0
,
8
));
Log
.
e
(
"Deck"
,
"e:"
+
YGOUtil
.
getArrayString
(
bits
,
8
,
12
));
Log
.
e
(
"Deck"
,
"e:"
+
YGOUtil
.
getArrayString
(
bits
,
8
,
12
));
Log
.
e
(
"Deck"
,
"s:"
+
YGOUtil
.
getArrayString
(
bits
,
12
,
16
));
Log
.
e
(
"Deck"
,
"s:"
+
YGOUtil
.
getArrayString
(
bits
,
12
,
16
));
if
(
bits
.
length
<
(
16
+
(
mNum
*
29
)))
{
mNum
=
(
bits
.
length
-
16
)
/
29
;
isCompleteDeck
=
false
;
}
for
(
int
i
=
0
;
i
<
mNum
;
i
++)
{
for
(
int
i
=
0
;
i
<
mNum
;
i
++)
{
int
cStart
=
16
+
(
i
*
29
);
int
cStart
=
16
+
(
i
*
29
);
int
cardNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
cStart
,
cStart
+
2
),
2
);
int
cardNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
cStart
,
cStart
+
2
),
2
);
...
@@ -169,16 +174,28 @@ public class Deck implements Parcelable {
...
@@ -169,16 +174,28 @@ public class Deck implements Parcelable {
mainlist
.
add
(
cardId
);
mainlist
.
add
(
cardId
);
}
}
}
}
if
(!
isCompleteDeck
)
return
;
if
(
bits
.
length
<
(
16
+
mNum
*
29
+
(
eNum
*
29
)))
{
eNum
=
(
bits
.
length
-
16
-
(
mNum
*
29
))
/
29
;
isCompleteDeck
=
false
;
}
for
(
int
i
=
0
;
i
<
eNum
;
i
++)
{
for
(
int
i
=
0
;
i
<
eNum
;
i
++)
{
int
cStart
=
16
+
mNum
*
29
+
(
i
*
29
);
int
cStart
=
16
+
mNum
*
29
+
(
i
*
29
);
int
cardNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
cStart
,
cStart
+
2
),
2
);
int
cardNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
cStart
,
cStart
+
2
),
2
);
Log
.
e
(
"DeckSetting"
,
eNum
+
" 当前 "
+
i
+
" "
+
cStart
);
int
cardId
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
cStart
+
2
,
cStart
+
29
),
2
);
int
cardId
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
cStart
+
2
,
cStart
+
29
),
2
);
for
(
int
x
=
0
;
x
<
cardNum
;
x
++)
{
for
(
int
x
=
0
;
x
<
cardNum
;
x
++)
{
extraList
.
add
(
cardId
);
extraList
.
add
(
cardId
);
}
}
}
}
if
(!
isCompleteDeck
)
return
;
if
(
bits
.
length
<
(
16
+
mNum
*
29
+
(
eNum
*
29
)
+
(
sNum
*
29
)))
{
sNum
=
(
bits
.
length
-
16
-
(
mNum
*
29
)
-
(
eNum
*
29
))
/
29
;
isCompleteDeck
=
false
;
}
for
(
int
i
=
0
;
i
<
sNum
;
i
++)
{
for
(
int
i
=
0
;
i
<
sNum
;
i
++)
{
int
cStart
=
16
+
mNum
*
29
+
eNum
*
29
+
(
i
*
29
);
int
cStart
=
16
+
mNum
*
29
+
eNum
*
29
+
(
i
*
29
);
int
cardNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
cStart
,
cStart
+
2
),
2
);
int
cardNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
cStart
,
cStart
+
2
),
2
);
...
@@ -229,6 +246,9 @@ public class Deck implements Parcelable {
...
@@ -229,6 +246,9 @@ public class Deck implements Parcelable {
return
idNum
;
return
idNum
;
}
}
public
boolean
isCompleteDeck
()
{
return
isCompleteDeck
;
}
private
int
[]
toIdAndNum0
(
String
m
)
{
private
int
[]
toIdAndNum0
(
String
m
)
{
//元素0为卡密,元素1为卡片数量
//元素0为卡密,元素1为卡片数量
...
@@ -285,20 +305,20 @@ public class Deck implements Parcelable {
...
@@ -285,20 +305,20 @@ public class Deck implements Parcelable {
e
=
YGOUtil
.
toNumLength
(
e
,
4
);
e
=
YGOUtil
.
toNumLength
(
e
,
4
);
s
=
YGOUtil
.
toNumLength
(
s
,
4
);
s
=
YGOUtil
.
toNumLength
(
s
,
4
);
Log
.
e
(
"Deck"
,
"分享数量"
+
mNum
+
" "
+
eNum
+
" "
+
sNum
);
Log
.
e
(
"Deck"
,
"分享数量"
+
mNum
+
" "
+
eNum
+
" "
+
sNum
);
deck
=
m
+
e
+
s
+
deck
;
deck
=
m
+
e
+
s
+
deck
;
byte
[]
bytes
=
YGOUtil
.
toBytes
(
deck
);
byte
[]
bytes
=
YGOUtil
.
toBytes
(
deck
);
String
message
=
Base64
.
encodeToString
(
bytes
,
Base64
.
NO_WRAP
);
String
message
=
Base64
.
encodeToString
(
bytes
,
Base64
.
NO_WRAP
);
Log
.
e
(
"Deck"
,
message
.
length
()+
" 转换时位数 "
+
bytes
.
length
);
Log
.
e
(
"Deck"
,
message
.
length
()
+
" 转换时位数 "
+
bytes
.
length
);
message
=
message
.
replace
(
"+"
,
"-"
);
message
=
message
.
replace
(
"+"
,
"-"
);
message
=
message
.
replace
(
"/"
,
"_"
);
message
=
message
.
replace
(
"/"
,
"_"
);
message
=
message
.
replace
(
"="
,
""
);
message
=
message
.
replace
(
"="
,
""
);
Log
.
e
(
"Deck"
,
"转换后数据"
+
message
);
Log
.
e
(
"Deck"
,
"转换后数据"
+
message
);
for
(
int
i
=
0
;
i
<
8
;
i
++)
{
for
(
int
i
=
0
;
i
<
8
;
i
++)
{
}
}
uri
.
appendQueryParameter
(
QUERY_DECK
,
message
);
uri
.
appendQueryParameter
(
QUERY_DECK
,
message
);
return
uri
.
build
();
return
uri
.
build
();
}
}
...
@@ -307,7 +327,7 @@ Log.e("Deck",message.length()+" 转换时位数 "+bytes.length);
...
@@ -307,7 +327,7 @@ Log.e("Deck",message.length()+" 转换时位数 "+bytes.length);
String
mains
=
tobyte
(
mainlist
,
mNum
);
String
mains
=
tobyte
(
mainlist
,
mNum
);
String
extras
=
tobyte
(
extraList
,
eNum
);
String
extras
=
tobyte
(
extraList
,
eNum
);
String
sides
=
tobyte
(
sideList
,
sNum
);
String
sides
=
tobyte
(
sideList
,
sNum
);
String
message
=
mains
+
extras
+
sides
;
String
message
=
mains
+
extras
+
sides
;
return
message
;
return
message
;
}
}
...
@@ -339,7 +359,7 @@ Log.e("Deck",message.length()+" 转换时位数 "+bytes.length);
...
@@ -339,7 +359,7 @@ Log.e("Deck",message.length()+" 转换时位数 "+bytes.length);
}
}
private
String
tobyte
(
List
<
Integer
>
ids
,
int
typeNum
)
{
private
String
tobyte
(
List
<
Integer
>
ids
,
int
typeNum
)
{
String
bytes
=
""
;
String
bytes
=
""
;
for
(
int
i
=
0
;
i
<
ids
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
ids
.
size
();
i
++)
{
Integer
id
=
ids
.
get
(
i
);
Integer
id
=
ids
.
get
(
i
);
if
(
id
>
0
)
{
if
(
id
>
0
)
{
...
@@ -367,19 +387,19 @@ Log.e("Deck",message.length()+" 转换时位数 "+bytes.length);
...
@@ -367,19 +387,19 @@ Log.e("Deck",message.length()+" 转换时位数 "+bytes.length);
tNum
=
Math
.
min
(
3
,
tNum
);
tNum
=
Math
.
min
(
3
,
tNum
);
switch
(
tNum
)
{
switch
(
tNum
)
{
case
1
:
case
1
:
idB
=
"01"
+
idB
;
idB
=
"01"
+
idB
;
break
;
break
;
case
2
:
case
2
:
idB
=
"10"
+
idB
;
idB
=
"10"
+
idB
;
break
;
break
;
case
3
:
case
3
:
idB
=
"11"
+
idB
;
idB
=
"11"
+
idB
;
break
;
break
;
}
}
}
else
{
}
else
{
idB
=
"01"
+
idB
;
idB
=
"01"
+
idB
;
}
}
bytes
+=
idB
;
bytes
+=
idB
;
}
}
}
}
return
bytes
;
return
bytes
;
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/home/HomeActivity.java
View file @
a88b350e
...
@@ -607,6 +607,9 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
...
@@ -607,6 +607,9 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
if
(
isUrl
)
{
if
(
isUrl
)
{
Deck
deckInfo
=
new
Deck
(
getString
(
R
.
string
.
rename_deck
)
+
System
.
currentTimeMillis
(),
Uri
.
parse
(
deckMessage
));
Deck
deckInfo
=
new
Deck
(
getString
(
R
.
string
.
rename_deck
)
+
System
.
currentTimeMillis
(),
Uri
.
parse
(
deckMessage
));
File
file
=
deckInfo
.
saveTemp
(
AppsSettings
.
get
().
getDeckDir
());
File
file
=
deckInfo
.
saveTemp
(
AppsSettings
.
get
().
getDeckDir
());
if
(!
deckInfo
.
isCompleteDeck
()){
YGOUtil
.
show
(
"当前卡组缺少完整信息,将只显示已有卡片"
);
}
DeckManagerActivity
.
start
(
this
,
file
.
getAbsolutePath
());
DeckManagerActivity
.
start
(
this
,
file
.
getAbsolutePath
());
}
else
{
}
else
{
//如果是卡组文本
//如果是卡组文本
...
...
mobile/src/main/java/com/ourygo/assistant/service/DuelAssistantService.java
View file @
a88b350e
...
@@ -50,6 +50,7 @@ import cn.garymb.ygomobile.ui.cards.deck.DeckUtils;
...
@@ -50,6 +50,7 @@ import cn.garymb.ygomobile.ui.cards.deck.DeckUtils;
import
cn.garymb.ygomobile.ui.home.MainActivity
;
import
cn.garymb.ygomobile.ui.home.MainActivity
;
import
cn.garymb.ygomobile.ui.home.ServerListManager
;
import
cn.garymb.ygomobile.ui.home.ServerListManager
;
import
cn.garymb.ygomobile.ui.plus.VUiKit
;
import
cn.garymb.ygomobile.ui.plus.VUiKit
;
import
cn.garymb.ygomobile.utils.YGOUtil
;
public
class
DuelAssistantService
extends
Service
implements
OnDuelAssistantListener
{
public
class
DuelAssistantService
extends
Service
implements
OnDuelAssistantListener
{
...
@@ -228,6 +229,9 @@ public class DuelAssistantService extends Service implements OnDuelAssistantList
...
@@ -228,6 +229,9 @@ public class DuelAssistantService extends Service implements OnDuelAssistantList
if
(
isUrl
)
{
if
(
isUrl
)
{
Deck
deckInfo
=
new
Deck
(
getString
(
R
.
string
.
rename_deck
)
+
System
.
currentTimeMillis
(),
Uri
.
parse
(
deckMessage
));
Deck
deckInfo
=
new
Deck
(
getString
(
R
.
string
.
rename_deck
)
+
System
.
currentTimeMillis
(),
Uri
.
parse
(
deckMessage
));
File
file
=
deckInfo
.
saveTemp
(
AppsSettings
.
get
().
getDeckDir
());
File
file
=
deckInfo
.
saveTemp
(
AppsSettings
.
get
().
getDeckDir
());
if
(!
deckInfo
.
isCompleteDeck
()){
YGOUtil
.
show
(
"当前卡组缺少完整信息,将只显示已有卡片"
);
}
DeckManagerActivity
.
start
(
DuelAssistantService
.
this
,
file
.
getAbsolutePath
());
DeckManagerActivity
.
start
(
DuelAssistantService
.
this
,
file
.
getAbsolutePath
());
}
else
{
}
else
{
//如果是卡组文本
//如果是卡组文本
...
...
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