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
8423a99e
Commit
8423a99e
authored
Oct 01, 2021
by
feihuaduo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
卡组1.0协议优化,减短url长度
parent
dfdc0d7b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
251 additions
and
99 deletions
+251
-99
mobile/src/main/java/cn/garymb/ygomobile/Constants.java
mobile/src/main/java/cn/garymb/ygomobile/Constants.java
+1
-0
mobile/src/main/java/cn/garymb/ygomobile/bean/Deck.java
mobile/src/main/java/cn/garymb/ygomobile/bean/Deck.java
+173
-74
mobile/src/main/java/cn/garymb/ygomobile/utils/YGOUtil.java
mobile/src/main/java/cn/garymb/ygomobile/utils/YGOUtil.java
+77
-25
No files found.
mobile/src/main/java/cn/garymb/ygomobile/Constants.java
View file @
8423a99e
...
@@ -209,6 +209,7 @@ public interface Constants {
...
@@ -209,6 +209,7 @@ public interface Constants {
String
QUERY_YDK
=
"ydk"
;
String
QUERY_YDK
=
"ydk"
;
String
QUERY_NAME
=
"name"
;
String
QUERY_NAME
=
"name"
;
String
QUERY_MAIN
=
"m"
;
String
QUERY_MAIN
=
"m"
;
String
QUERY_DECK
=
"d"
;
String
QUERY_EXTRA
=
"e"
;
String
QUERY_EXTRA
=
"e"
;
String
QUERY_SIDE
=
"s"
;
String
QUERY_SIDE
=
"s"
;
String
QUERY_VERSION
=
"v"
;
String
QUERY_VERSION
=
"v"
;
...
...
mobile/src/main/java/cn/garymb/ygomobile/bean/Deck.java
View file @
8423a99e
...
@@ -2,11 +2,9 @@ package cn.garymb.ygomobile.bean;
...
@@ -2,11 +2,9 @@ package cn.garymb.ygomobile.bean;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
ARG_DECK
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
ARG_DECK
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
NUM_40_LIST
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
NUM_40_LIST
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_
EXTRA
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_
DECK
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_EXTRA_ALL
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_EXTRA_ALL
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_MAIN
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_MAIN_ALL
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_MAIN_ALL
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_SIDE
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_SIDE_ALL
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_SIDE_ALL
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_VERSION
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_VERSION
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_YDK
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
QUERY_YDK
;
...
@@ -17,6 +15,7 @@ import android.net.Uri;
...
@@ -17,6 +15,7 @@ import android.net.Uri;
import
android.os.Parcel
;
import
android.os.Parcel
;
import
android.os.Parcelable
;
import
android.os.Parcelable
;
import
android.text.TextUtils
;
import
android.text.TextUtils
;
import
android.util.Base64
;
import
android.util.Log
;
import
android.util.Log
;
import
java.io.File
;
import
java.io.File
;
...
@@ -26,6 +25,7 @@ import java.util.List;
...
@@ -26,6 +25,7 @@ import java.util.List;
import
cn.garymb.ygomobile.Constants
;
import
cn.garymb.ygomobile.Constants
;
import
cn.garymb.ygomobile.ui.cards.deck.DeckUtils
;
import
cn.garymb.ygomobile.ui.cards.deck.DeckUtils
;
import
cn.garymb.ygomobile.utils.YGOUtil
;
public
class
Deck
implements
Parcelable
{
public
class
Deck
implements
Parcelable
{
public
static
final
Creator
<
Deck
>
CREATOR
=
new
Creator
<
Deck
>()
{
public
static
final
Creator
<
Deck
>
CREATOR
=
new
Creator
<
Deck
>()
{
...
@@ -90,65 +90,97 @@ public class Deck implements Parcelable {
...
@@ -90,65 +90,97 @@ public class Deck implements Parcelable {
sides
=
side
.
split
(
CARD_DIVIDE_ID
);
sides
=
side
.
split
(
CARD_DIVIDE_ID
);
sList
.
addAll
(
Arrays
.
asList
(
sides
));
sList
.
addAll
(
Arrays
.
asList
(
sides
));
break
;
case
YGO_DECK_PROTOCOL_1:
main
=
uri
.
getQueryParameter
(
QUERY_MAIN
);
extra
=
uri
.
getQueryParameter
(
QUERY_EXTRA
);
side
=
uri
.
getQueryParameter
(
QUERY_SIDE
);
for
(
int
i
=
0
;
i
<
main
.
length
()
/
6
;
i
++)
for
(
String
m
:
mList
)
{
mList
.
add
(
main
.
substring
(
i
*
6
,
i
*
6
+
6
));
int
[]
idNum
=
toIdAndNum
(
m
,
version
);
if
(
idNum
[
0
]
>
0
)
{
for
(
int
i
=
0
;
i
<
idNum
[
1
];
i
++)
{
mainlist
.
add
(
idNum
[
0
]);
}
}
}
for
(
String
m
:
eList
)
{
int
[]
idNum
=
toIdAndNum
(
m
,
version
);
if
(
idNum
[
0
]
>
0
)
{
for
(
int
i
=
0
;
i
<
idNum
[
1
];
i
++)
{
extraList
.
add
(
idNum
[
0
]);
}
}
}
for
(
int
i
=
0
;
i
<
extra
.
length
()
/
6
;
i
++)
for
(
String
m
:
sList
)
{
eList
.
add
(
extra
.
substring
(
i
*
6
,
i
*
6
+
6
));
int
[]
idNum
=
toIdAndNum
(
m
,
version
);
if
(
idNum
[
0
]
>
0
)
{
for
(
int
i
=
0
;
i
<
idNum
[
1
];
i
++)
{
sideList
.
add
(
idNum
[
0
]);
}
}
}
for
(
int
i
=
0
;
i
<
side
.
length
()
/
6
;
i
++)
sList
.
add
(
side
.
substring
(
i
*
6
,
i
*
6
+
6
));
break
;
break
;
default
:
case
YGO_DECK_PROTOCOL_1:
main
=
uri
.
getQueryParameter
(
QUERY_MAIN_ALL
);
extra
=
uri
.
getQueryParameter
(
QUERY_EXTRA_ALL
);
side
=
uri
.
getQueryParameter
(
QUERY_SIDE_ALL
);
mains
=
main
.
split
(
CARD_DIVIDE_ID
);
String
deck
=
uri
.
getQueryParameter
(
QUERY_DECK
);
mList
.
addAll
(
Arrays
.
asList
(
mains
));
deck
=
deck
.
replace
(
"-"
,
"+"
);
deck
=
deck
.
replace
(
"_"
,
"/"
);
byte
[]
bytes
=
Base64
.
decode
(
deck
,
Base64
.
NO_WRAP
);
Log
.
e
(
"Deck"
,
deck
.
length
()+
"字符位数"
+
bytes
.
length
);
String
[]
bits
=
new
String
[
bytes
.
length
*
8
];
extras
=
extra
.
split
(
CARD_DIVIDE_ID
);
for
(
int
i
=
0
;
i
<
bytes
.
length
;
i
++)
{
eList
.
addAll
(
Arrays
.
asList
(
extras
));
sides
=
side
.
split
(
CARD_DIVIDE_ID
);
String
b
=
Integer
.
toBinaryString
(
bytes
[
i
]);
sList
.
addAll
(
Arrays
.
asList
(
sides
));
}
for
(
String
m
:
mList
)
{
b
=
YGOUtil
.
toNumLength
(
b
,
8
);
int
[]
idNum
=
toIdAndNum
(
m
,
version
);
if
(
b
.
length
()>
8
)
if
(
idNum
[
0
]
>
0
)
{
b
=
b
.
substring
(
b
.
length
()-
8
);
for
(
int
i
=
0
;
i
<
idNum
[
1
];
i
++)
{
if
(
i
<
8
)
mainlist
.
add
(
idNum
[
0
]);
Log
.
e
(
"Deck"
,
b
+
" byte:"
+
bytes
[
i
]);
for
(
int
x
=
0
;
x
<
8
;
x
++)
bits
[
i
*
8
+
x
]
=
b
.
substring
(
x
,
x
+
1
);
}
}
}
bits
=
YGOUtil
.
toNumLength
(
bits
,
16
);
}
int
mNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
0
,
8
),
2
);
for
(
String
m
:
eList
)
{
int
eNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
8
,
12
),
2
);
int
[]
idNum
=
toIdAndNum
(
m
,
version
);
int
sNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
12
,
16
),
2
);
if
(
idNum
[
0
]
>
0
)
{
Log
.
e
(
"Deck"
,
"种类数量"
+
mNum
+
" "
+
eNum
+
" "
+
sNum
+
" "
);
for
(
int
i
=
0
;
i
<
idNum
[
1
];
i
++)
{
Log
.
e
(
"Deck"
,
"m:"
+
YGOUtil
.
getArrayString
(
bits
,
0
,
8
));
extraList
.
add
(
idNum
[
0
]);
Log
.
e
(
"Deck"
,
"e:"
+
YGOUtil
.
getArrayString
(
bits
,
8
,
16
));
Log
.
e
(
"Deck"
,
"s:"
+
YGOUtil
.
getArrayString
(
bits
,
16
,
24
));
for
(
int
i
=
0
;
i
<
mNum
;
i
++)
{
int
cStart
=
16
+
(
i
*
29
);
int
cardNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
cStart
,
cStart
+
2
),
2
);
int
cardId
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
cStart
+
2
,
cStart
+
29
),
2
);
if
(
i
<
4
)
for
(
int
x
=
0
;
x
<
cardNum
;
x
++)
{
mainlist
.
add
(
cardId
);
}
}
}
}
}
for
(
int
i
=
0
;
i
<
eNum
;
i
++)
{
int
cStart
=
16
+
mNum
*
29
+
(
i
*
29
);
int
cardNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
cStart
,
cStart
+
2
),
2
);
int
cardId
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
cStart
+
2
,
cStart
+
29
),
2
);
for
(
int
x
=
0
;
x
<
cardNum
;
x
++)
{
extraList
.
add
(
cardId
);
}
}
for
(
String
m
:
sList
)
{
for
(
int
i
=
0
;
i
<
sNum
;
i
++)
{
int
[]
idNum
=
toIdAndNum
(
m
,
version
);
int
cStart
=
16
+
mNum
*
29
+
eNum
*
29
+
(
i
*
29
);
if
(
idNum
[
0
]
>
0
)
{
int
cardNum
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
cStart
,
cStart
+
2
),
2
);
for
(
int
i
=
0
;
i
<
idNum
[
1
];
i
++)
{
int
cardId
=
Integer
.
valueOf
(
YGOUtil
.
getArrayString
(
bits
,
cStart
+
2
,
cStart
+
29
),
2
);
sideList
.
add
(
idNum
[
0
]);
for
(
int
x
=
0
;
x
<
cardNum
;
x
++)
{
sideList
.
add
(
cardId
);
}
}
}
}
break
;
}
}
}
}
public
Deck
(
Uri
uri
)
{
public
Deck
(
Uri
uri
)
{
...
@@ -180,9 +212,6 @@ public class Deck implements Parcelable {
...
@@ -180,9 +212,6 @@ public class Deck implements Parcelable {
case
YGO_DECK_PROTOCOL_0:
case
YGO_DECK_PROTOCOL_0:
idNum
=
toIdAndNum0
(
m
);
idNum
=
toIdAndNum0
(
m
);
break
;
break
;
case
YGO_DECK_PROTOCOL_1:
idNum
=
toIdAndNum1
(
m
);
break
;
default
:
default
:
idNum
=
toIdAndNum0
(
m
);
idNum
=
toIdAndNum0
(
m
);
break
;
break
;
...
@@ -190,13 +219,6 @@ public class Deck implements Parcelable {
...
@@ -190,13 +219,6 @@ public class Deck implements Parcelable {
return
idNum
;
return
idNum
;
}
}
private
int
[]
toIdAndNum1
(
String
m
)
{
//元素0为卡密,元素1为卡片数量
int
[]
idNum
=
{
0
,
1
};
idNum
[
0
]
=
toId
(
m
.
substring
(
0
,
m
.
length
()
-
1
),
YGO_DECK_PROTOCOL_1
);
idNum
[
1
]
=
Integer
.
parseInt
(
m
.
substring
(
m
.
length
()
-
1
));
return
idNum
;
}
private
int
[]
toIdAndNum0
(
String
m
)
{
private
int
[]
toIdAndNum0
(
String
m
)
{
//元素0为卡密,元素1为卡片数量
//元素0为卡密,元素1为卡片数量
...
@@ -232,26 +254,87 @@ public class Deck implements Parcelable {
...
@@ -232,26 +254,87 @@ public class Deck implements Parcelable {
}
}
uri
.
appendQueryParameter
(
QUERY_YGO_TYPE
,
ARG_DECK
);
uri
.
appendQueryParameter
(
QUERY_YGO_TYPE
,
ARG_DECK
);
uri
.
appendQueryParameter
(
Constants
.
QUERY_VERSION
,
"1"
);
uri
.
appendQueryParameter
(
Constants
.
QUERY_VERSION
,
"1"
);
if
(
mainlist
.
size
()
!=
0
)
uri
.
appendQueryParameter
(
Constants
.
QUERY_MAIN
,
toString
(
mainlist
));
// if (mainlist.size() != 0)
if
(
extraList
.
size
()
!=
0
)
// deck+=toString(mainlist);
uri
.
appendQueryParameter
(
Constants
.
QUERY_EXTRA
,
toString
(
extraList
));
// if (extraList.size() != 0)
if
(
sideList
.
size
()
!=
0
)
// deck+=toString(extraList);
uri
.
appendQueryParameter
(
Constants
.
QUERY_SIDE
,
toString
(
sideList
));
// if (sideList.size() != 0)
// deck+=toString(sideList);
int
mNum
=
getTypeNum
(
mainlist
);
int
eNum
=
getTypeNum
(
extraList
);
int
sNum
=
getTypeNum
(
sideList
);
String
deck
=
toBit
(
mainlist
,
extraList
,
sideList
,
mNum
,
eNum
,
sNum
);
String
m
=
Integer
.
toBinaryString
(
mNum
);
String
e
=
Integer
.
toBinaryString
(
eNum
);
String
s
=
Integer
.
toBinaryString
(
sNum
);
m
=
YGOUtil
.
toNumLength
(
m
,
8
);
e
=
YGOUtil
.
toNumLength
(
e
,
4
);
s
=
YGOUtil
.
toNumLength
(
s
,
4
);
Log
.
e
(
"Deck"
,
"分享数量"
+
mNum
+
" "
+
eNum
+
" "
+
sNum
);
deck
=
m
+
e
+
s
+
deck
;
byte
[]
bytes
=
YGOUtil
.
toBytes
(
deck
);
String
message
=
Base64
.
encodeToString
(
bytes
,
Base64
.
NO_WRAP
);
Log
.
e
(
"Deck"
,
message
.
length
()+
" 转换时位数 "
+
bytes
.
length
);
message
=
message
.
replace
(
"+"
,
"-"
);
message
=
message
.
replace
(
"/"
,
"_"
);
message
=
message
.
replace
(
"="
,
""
);
Log
.
e
(
"Deck"
,
"转换后数据"
+
message
);
for
(
int
i
=
0
;
i
<
8
;
i
++){
}
uri
.
appendQueryParameter
(
QUERY_DECK
,
message
);
return
uri
.
build
();
return
uri
.
build
();
}
}
private
String
toString
(
List
<
Integer
>
ids
)
{
private
String
toBit
(
ArrayList
<
Integer
>
mainlist
,
ArrayList
<
Integer
>
extraList
,
ArrayList
<
Integer
>
sideList
,
int
mNum
,
int
eNum
,
int
sNum
)
{
StringBuilder
builder
=
new
StringBuilder
();
String
mains
=
tobyte
(
mainlist
,
mNum
);
String
extras
=
tobyte
(
extraList
,
eNum
);
String
sides
=
tobyte
(
sideList
,
sNum
);
String
message
=
mains
+
extras
+
sides
;
return
message
;
}
public
int
getTypeNum
(
List
<
Integer
>
list
)
{
int
num
=
0
;
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
Integer
id
=
list
.
get
(
i
);
if
(
id
>
0
)
{
num
++;
//如果是最后一张就不用对比下张卡
if
(
i
!=
list
.
size
()
-
1
)
{
int
id1
=
list
.
get
(
i
+
1
);
//如果下张是同名卡
if
(
id1
==
id
)
{
//如果是倒数第二张就不用对比下下张卡
if
(
i
!=
list
.
size
()
-
2
)
{
id1
=
list
.
get
(
i
+
2
);
//如果下下张是同名卡
if
(
id1
==
id
)
{
i
++;
}
}
i
++;
}
}
}
}
return
num
;
}
private
String
tobyte
(
List
<
Integer
>
ids
,
int
typeNum
)
{
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 (i > 0) {
// builder.append(CARD_DIVIDE_ID);
// }
if
(
id
>
0
)
{
if
(
id
>
0
)
{
//如果需要使用十六进制码:
//转换为29位二进制码
builder
.
append
(
compressedId
(
id
));
String
idB
=
toB
(
id
);
// builder.append(id);
//如果是最后一张就不用对比下张卡
//如果是最后一张就不用对比下张卡
if
(
i
!=
ids
.
size
()
-
1
)
{
if
(
i
!=
ids
.
size
()
-
1
)
{
int
id1
=
ids
.
get
(
i
+
1
);
int
id1
=
ids
.
get
(
i
+
1
);
...
@@ -272,13 +355,29 @@ public class Deck implements Parcelable {
...
@@ -272,13 +355,29 @@ public class Deck implements Parcelable {
i
++;
i
++;
}
}
tNum
=
Math
.
min
(
3
,
tNum
);
tNum
=
Math
.
min
(
3
,
tNum
);
builder
.
append
(
tNum
);
switch
(
tNum
)
{
case
1
:
idB
=
"01"
+
idB
;
break
;
case
2
:
idB
=
"10"
+
idB
;
break
;
case
3
:
idB
=
"11"
+
idB
;
break
;
}
}
else
{
}
else
{
builder
.
append
(
1
)
;
idB
=
"01"
+
idB
;
}
}
bytes
+=
idB
;
}
}
}
}
return
builder
.
toString
();
return
bytes
;
}
private
String
toB
(
int
id
)
{
return
YGOUtil
.
toNumLength
(
Integer
.
toBinaryString
(
id
),
27
);
}
}
//压缩卡密,目前直接转换为40进制
//压缩卡密,目前直接转换为40进制
...
...
mobile/src/main/java/cn/garymb/ygomobile/utils/YGOUtil.java
View file @
8423a99e
...
@@ -17,7 +17,6 @@ import com.ourygo.assistant.util.PermissionUtil;
...
@@ -17,7 +17,6 @@ import com.ourygo.assistant.util.PermissionUtil;
import
com.ourygo.assistant.util.Util
;
import
com.ourygo.assistant.util.Util
;
import
cn.garymb.ygomobile.App
;
import
cn.garymb.ygomobile.App
;
import
cn.garymb.ygomobile.AppsSettings
;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.ui.plus.DialogPlus
;
import
cn.garymb.ygomobile.ui.plus.DialogPlus
;
...
@@ -36,6 +35,51 @@ public class YGOUtil {
...
@@ -36,6 +35,51 @@ public class YGOUtil {
return
App
.
get
().
getResources
().
getString
(
stringId
);
return
App
.
get
().
getResources
().
getString
(
stringId
);
}
}
public
static
byte
[]
toBytes
(
String
bits
)
{
int
y
=
bits
.
length
()
%
8
;
Log
.
e
(
"Deck"
,
bits
.
length
()+
"之前余数"
+
y
);
if
(
y
!=
0
)
bits
=
toNumLengthLast
(
bits
,
bits
.
length
()+
8
-
y
);
Log
.
e
(
"Deck"
,
bits
.
length
()+
"余数"
+
y
);
byte
[]
bytes
=
new
byte
[
bits
.
length
()/
8
];
for
(
int
i
=
0
;
i
<
bits
.
length
()/
8
;
i
++)
{
bytes
[
i
]
=
(
byte
)
Integer
.
valueOf
(
bits
.
substring
(
i
*
8
,
i
*
8
+
8
),
2
).
intValue
();
if
(
i
<
8
){
Log
.
e
(
"Deck"
,
bits
.
substring
(
i
*
8
,
i
*
8
+
8
)+
" 字节 "
+
bytes
[
i
]
);
}
}
Log
.
e
(
"Deck"
,
"二进制"
+
bits
);
return
bytes
;
}
public
static
String
toNumLength
(
String
message
,
int
num
)
{
while
(
message
.
length
()
<
num
)
{
message
=
"0"
+
message
;
}
return
message
;
}
public
static
String
toNumLengthLast
(
String
message
,
int
num
)
{
while
(
message
.
length
()
<
num
)
{
message
+=
"0"
;
}
return
message
;
}
public
static
String
[]
toNumLength
(
String
[]
nums
,
int
num
)
{
if
(
nums
.
length
<
num
)
{
String
[]
bms
=
nums
;
nums
=
new
String
[
num
];
for
(
int
i
=
0
;
i
<
num
-
bms
.
length
;
i
++)
nums
[
i
]
=
"0"
;
for
(
int
i
=
0
;
i
<
bms
.
length
;
i
++)
nums
[
i
+
num
-
bms
.
length
]
=
bms
[
i
];
}
return
nums
;
}
/**
/**
* 根据卡密获取高清图下载地址
* 根据卡密获取高清图下载地址
*
*
...
@@ -46,6 +90,14 @@ public class YGOUtil {
...
@@ -46,6 +90,14 @@ public class YGOUtil {
return
"https://cdn02.moecube.com:444/ygomobile-images/"
+
code
+
".png"
;
return
"https://cdn02.moecube.com:444/ygomobile-images/"
+
code
+
".png"
;
}
}
public
static
String
getArrayString
(
String
[]
bytes
,
int
start
,
int
end
)
{
String
message
=
""
;
for
(
int
i
=
start
;
i
<
end
;
i
++)
{
message
+=
bytes
[
i
];
}
return
message
;
}
//关闭输入法
//关闭输入法
public
static
void
closeKeyboard
(
Activity
activity
)
{
public
static
void
closeKeyboard
(
Activity
activity
)
{
...
@@ -96,9 +148,9 @@ public class YGOUtil {
...
@@ -96,9 +148,9 @@ public class YGOUtil {
dialog
.
setOnDismissListener
(
new
DialogInterface
.
OnDismissListener
()
{
dialog
.
setOnDismissListener
(
new
DialogInterface
.
OnDismissListener
()
{
@Override
@Override
public
void
onDismiss
(
DialogInterface
dialogInterface
)
{
public
void
onDismiss
(
DialogInterface
dialogInterface
)
{
Log
.
e
(
"YGOUtil"
,
"当前版本"
+
Build
.
VERSION
.
SDK_INT
);
Log
.
e
(
"YGOUtil"
,
"当前版本"
+
Build
.
VERSION
.
SDK_INT
);
Log
.
e
(
"YGOUtil"
,
"o的版本"
+
Build
.
VERSION_CODES
.
O
);
Log
.
e
(
"YGOUtil"
,
"o的版本"
+
Build
.
VERSION_CODES
.
O
);
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
&&
!
PermissionUtil
.
isNotificationListenerEnabled
(
context
))
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
&&
!
PermissionUtil
.
isNotificationListenerEnabled
(
context
))
{
getNotificationPermissionDialog
(
context
).
show
();
getNotificationPermissionDialog
(
context
).
show
();
}
}
}
}
...
@@ -118,27 +170,27 @@ public class YGOUtil {
...
@@ -118,27 +170,27 @@ public class YGOUtil {
public
static
DialogPlus
getNotificationPermissionDialog
(
Context
context
)
{
public
static
DialogPlus
getNotificationPermissionDialog
(
Context
context
)
{
DialogPlus
dialog
=
new
DialogPlus
(
context
);
DialogPlus
dialog
=
new
DialogPlus
(
context
);
dialog
.
setTitle
(
R
.
string
.
tip
);
dialog
.
setTitle
(
R
.
string
.
tip
);
dialog
.
setMessage
(
R
.
string
.
EXPAND_STATUS_BAR
);
dialog
.
setMessage
(
R
.
string
.
EXPAND_STATUS_BAR
);
dialog
.
setLeftButtonText
(
R
.
string
.
to_open
);
dialog
.
setLeftButtonText
(
R
.
string
.
to_open
);
dialog
.
setRightButtonText
(
R
.
string
.
Cancel
);
dialog
.
setRightButtonText
(
R
.
string
.
Cancel
);
dialog
.
setLeftButtonListener
(
new
DialogInterface
.
OnClickListener
()
{
dialog
.
setLeftButtonListener
(
new
DialogInterface
.
OnClickListener
()
{
@Override
@Override
public
void
onClick
(
DialogInterface
dialogInterface
,
int
i
)
{
public
void
onClick
(
DialogInterface
dialogInterface
,
int
i
)
{
// 根据isOpened结果,判断是否需要提醒用户跳转AppInfo页面,去打开App通知权限
// 根据isOpened结果,判断是否需要提醒用户跳转AppInfo页面,去打开App通知权限
context
.
startActivity
(
Util
.
getNotificationPermissionInitent
(
context
));
context
.
startActivity
(
Util
.
getNotificationPermissionInitent
(
context
));
dialog
.
dismiss
();
dialog
.
dismiss
();
}
}
});
});
dialog
.
setRightButtonListener
(
new
DialogInterface
.
OnClickListener
()
{
dialog
.
setRightButtonListener
(
new
DialogInterface
.
OnClickListener
()
{
@Override
@Override
public
void
onClick
(
DialogInterface
dialogInterface
,
int
i
)
{
public
void
onClick
(
DialogInterface
dialogInterface
,
int
i
)
{
dialog
.
dismiss
();
dialog
.
dismiss
();
}
}
});
});
return
dialog
;
return
dialog
;
}
}
...
...
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