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
0bac7691
Commit
0bac7691
authored
Sep 11, 2023
by
fallenstardust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
将正式卡密转换成先行卡密
维护在线对照表来解决未及时更新的卡组码转换问题
parent
d98e4411
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
64 additions
and
8 deletions
+64
-8
mobile/src/main/java/cn/garymb/ygomobile/loader/DeckLoader.java
.../src/main/java/cn/garymb/ygomobile/loader/DeckLoader.java
+26
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/home/HomeActivity.java
...c/main/java/cn/garymb/ygomobile/ui/home/HomeActivity.java
+8
-8
mobile/src/main/java/cn/garymb/ygomobile/ui/settings/SettingFragment.java
...java/cn/garymb/ygomobile/ui/settings/SettingFragment.java
+25
-0
mobile/src/main/java/cn/garymb/ygomobile/utils/DeckUtil.java
mobile/src/main/java/cn/garymb/ygomobile/utils/DeckUtil.java
+5
-0
No files found.
mobile/src/main/java/cn/garymb/ygomobile/loader/DeckLoader.java
View file @
0bac7691
...
...
@@ -2,7 +2,10 @@ package cn.garymb.ygomobile.loader;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
newIDsArray
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
oldIDsArray
;
import
static
cn
.
garymb
.
ygomobile
.
ui
.
home
.
HomeActivity
.
pre_code_list
;
import
static
cn
.
garymb
.
ygomobile
.
ui
.
home
.
HomeActivity
.
released_code_list
;
import
android.os.Build
;
import
android.text.TextUtils
;
import
android.util.Log
;
import
android.util.SparseArray
;
...
...
@@ -20,6 +23,7 @@ import cn.garymb.ygomobile.bean.Deck;
import
cn.garymb.ygomobile.bean.DeckInfo
;
import
cn.garymb.ygomobile.ui.cards.deck.DeckItemType
;
import
cn.garymb.ygomobile.ui.cards.deck.DeckUtils
;
import
cn.garymb.ygomobile.ui.home.HomeActivity
;
import
cn.garymb.ygomobile.utils.IOUtils
;
import
cn.hutool.core.util.ArrayUtil
;
import
ocgcore.data.Card
;
...
...
@@ -131,6 +135,13 @@ public class DeckLoader {
int
code
;
isChanged
=
false
;
for
(
Integer
id
:
deck
.
getMainlist
())
{
if
(
released_code_list
.
contains
(
tmp
.
get
(
id
).
getCode
()))
{
//先查看id对应的卡片密码是否在正式数组中存在
code
=
pre_code_list
.
get
(
released_code_list
.
indexOf
(
tmp
.
get
(
id
).
getCode
()));
//替换成对应先行数组里的code
if
(
cardLoader
.
readAllCardCodes
().
get
(
code
)
!=
null
)
{
//万一他还没下载扩展卡包就不执行否则会空指错误
tmp
.
remove
(
id
);
tmp
.
put
(
id
,
cardLoader
.
readAllCardCodes
().
get
(
code
));
}
}
//执行完后变成先行密码,如果constants对照表里存在该密码,则如下又转换一次,确保正式更新后不会出错,最好发布app后必须及时更新在线对照表
if
(
ArrayUtil
.
contains
(
oldIDsArray
,
tmp
.
get
(
id
).
getCode
()))
{
code
=
ArrayUtil
.
get
(
newIDsArray
,
ArrayUtil
.
indexOf
(
oldIDsArray
,
tmp
.
get
(
id
).
getCode
()));
tmp
.
remove
(
id
);
...
...
@@ -141,6 +152,13 @@ public class DeckLoader {
}
tmp
=
cardLoader
.
readCards
(
deck
.
getExtraList
(),
true
);
for
(
Integer
id
:
deck
.
getExtraList
())
{
if
(
released_code_list
.
contains
(
tmp
.
get
(
id
).
getCode
()))
{
code
=
pre_code_list
.
get
(
released_code_list
.
indexOf
(
tmp
.
get
(
id
).
getCode
()));
if
(
cardLoader
.
readAllCardCodes
().
get
(
code
)
!=
null
)
{
tmp
.
remove
(
id
);
tmp
.
put
(
id
,
cardLoader
.
readAllCardCodes
().
get
(
code
));
}
}
if
(
ArrayUtil
.
contains
(
oldIDsArray
,
tmp
.
get
(
id
).
getCode
()))
{
code
=
ArrayUtil
.
get
(
newIDsArray
,
ArrayUtil
.
indexOf
(
oldIDsArray
,
tmp
.
get
(
id
).
getCode
()));
tmp
.
remove
(
id
);
...
...
@@ -152,6 +170,13 @@ public class DeckLoader {
tmp
=
cardLoader
.
readCards
(
deck
.
getSideList
(),
true
);
// Log.i("kk", "desk:" + tmp.size()+"/"+side.size());
for
(
Integer
id
:
deck
.
getSideList
())
{
if
(
released_code_list
.
contains
(
tmp
.
get
(
id
).
getCode
()))
{
code
=
pre_code_list
.
get
(
released_code_list
.
indexOf
(
tmp
.
get
(
id
).
getCode
()));
if
(
cardLoader
.
readAllCardCodes
().
get
(
code
)
!=
null
)
{
tmp
.
remove
(
id
);
tmp
.
put
(
id
,
cardLoader
.
readAllCardCodes
().
get
(
code
));
}
}
if
(
ArrayUtil
.
contains
(
oldIDsArray
,
tmp
.
get
(
id
).
getCode
()))
{
code
=
ArrayUtil
.
get
(
newIDsArray
,
ArrayUtil
.
indexOf
(
oldIDsArray
,
tmp
.
get
(
id
).
getCode
()));
tmp
.
remove
(
id
);
...
...
@@ -160,6 +185,7 @@ public class DeckLoader {
}
deckInfo
.
addSideCards
(
tmp
.
get
(
id
));
}
Log
.
w
(
"deck.source"
,
deckInfo
.
toLongString
());
return
deckInfo
;
}
}
mobile/src/main/java/cn/garymb/ygomobile/ui/home/HomeActivity.java
View file @
0bac7691
...
...
@@ -96,10 +96,11 @@ public abstract class HomeActivity extends BaseActivity implements BottomNavigat
switch
(
msg
.
what
)
{
case
TYPE_GET_VERSION_OK:
Version
=
msg
.
obj
.
toString
().
substring
(
0
,
msg
.
obj
.
toString
().
indexOf
(
"|"
));
//截取版本号
Cache_link
=
msg
.
obj
.
toString
().
substring
(
msg
.
obj
.
toString
().
indexOf
(
"|"
)
+
1
,
msg
.
obj
.
toString
().
indexOf
(
"\n"
));
Cache_pre_release_code
=
msg
.
obj
.
toString
().
substring
(
msg
.
obj
.
toString
().
indexOf
(
"\n"
)
+
1
);
arrangeCodeList
(
Cache_pre_release_code
);
Log
.
i
(
Constants
.
TAG
,
Cache_pre_release_code
);
Cache_link
=
msg
.
obj
.
toString
().
substring
(
msg
.
obj
.
toString
().
indexOf
(
"|"
)
+
1
,
msg
.
obj
.
toString
().
indexOf
(
"\n"
));
//截取下载地址
Cache_pre_release_code
=
msg
.
obj
.
toString
().
substring
(
msg
.
obj
.
toString
().
indexOf
(
"\n"
)
+
1
);
//截取先行-正式对照文本
if
(!
Cache_pre_release_code
.
isEmpty
())
{
arrangeCodeList
(
Cache_pre_release_code
);
//转换成两个数组
}
if
(!
Version
.
equals
(
BuildConfig
.
VERSION_NAME
)
&&
!
Version
.
isEmpty
()
&&
!
Cache_link
.
isEmpty
())
{
DialogPlus
dialog
=
new
DialogPlus
(
getActivity
());
dialog
.
setMessage
(
R
.
string
.
Found_Update
);
...
...
@@ -429,10 +430,9 @@ public abstract class HomeActivity extends BaseActivity implements BottomNavigat
}
}
catch
(
Exception
e
)
{
Log
.
e
(
"读取对照表"
,
e
+
""
);
}
finally
{
Log
.
w
(
"读取对照表"
,
pre_code_list
.
toString
());
Log
.
e
(
"读取对照表"
,
released_code_list
.
toString
());
Log
.
e
(
Constants
.
TAG
,
e
+
""
);
}
finally
{
}
}
}
mobile/src/main/java/cn/garymb/ygomobile/ui/settings/SettingFragment.java
View file @
0bac7691
...
...
@@ -35,6 +35,9 @@ import static cn.garymb.ygomobile.Constants.SETTINGS_AVATAR;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
SETTINGS_CARD_BG
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
SETTINGS_COVER
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
URL_HOME_VERSION
;
import
static
cn
.
garymb
.
ygomobile
.
ui
.
home
.
HomeActivity
.
Cache_pre_release_code
;
import
static
cn
.
garymb
.
ygomobile
.
ui
.
home
.
HomeActivity
.
pre_code_list
;
import
static
cn
.
garymb
.
ygomobile
.
ui
.
home
.
HomeActivity
.
released_code_list
;
import
static
cn
.
garymb
.
ygomobile
.
ui
.
home
.
ResCheckTask
.
getDatapath
;
import
android.annotation.SuppressLint
;
...
...
@@ -65,10 +68,12 @@ import com.bumptech.glide.signature.MediaStoreSignature;
import
org.greenrobot.eventbus.EventBus
;
import
java.io.BufferedReader
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.StringReader
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -114,6 +119,11 @@ public class SettingFragment extends PreferenceFragmentPlus {
case
TYPE_SETTING_GET_VERSION_OK:
Version
=
msg
.
obj
.
toString
().
substring
(
0
,
msg
.
obj
.
toString
().
indexOf
(
"|"
));
//截取版本号
Cache_link
=
msg
.
obj
.
toString
().
substring
(
msg
.
obj
.
toString
().
indexOf
(
"|"
)
+
1
);
Cache_link
=
msg
.
obj
.
toString
().
substring
(
msg
.
obj
.
toString
().
indexOf
(
"|"
)
+
1
,
msg
.
obj
.
toString
().
indexOf
(
"\n"
));
//截取下载地址
Cache_pre_release_code
=
msg
.
obj
.
toString
().
substring
(
msg
.
obj
.
toString
().
indexOf
(
"\n"
)
+
1
);
//截取先行-正式对照文本
if
(!
Cache_pre_release_code
.
isEmpty
())
{
arrangeCodeList
(
Cache_pre_release_code
);
//转换成两个数组
}
if
(!
Version
.
equals
(
BuildConfig
.
VERSION_NAME
)
&&
!
Version
.
isEmpty
()
&&
!
Cache_link
.
isEmpty
())
{
DialogPlus
dialog
=
new
DialogPlus
(
getActivity
());
dialog
.
setMessage
(
R
.
string
.
Found_Update
);
...
...
@@ -662,6 +672,21 @@ public class SettingFragment extends PreferenceFragmentPlus {
return
false
;
}
}
private
void
arrangeCodeList
(
String
code
)
{
BufferedReader
br
=
new
BufferedReader
(
new
StringReader
(
code
));
try
{
String
line
;
while
((
line
=
br
.
readLine
())
!=
null
)
{
String
[]
words
=
line
.
trim
().
split
(
"[ ]+"
);
pre_code_list
.
add
(
Integer
.
valueOf
(
words
[
0
]));
released_code_list
.
add
(
Integer
.
valueOf
(
words
[
1
]));
}
}
catch
(
Exception
e
)
{
Log
.
e
(
Constants
.
TAG
,
e
+
""
);
}
finally
{
}
}
}
mobile/src/main/java/cn/garymb/ygomobile/utils/DeckUtil.java
View file @
0bac7691
...
...
@@ -2,6 +2,8 @@ package cn.garymb.ygomobile.utils;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
newIDsArray
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
oldIDsArray
;
import
static
cn
.
garymb
.
ygomobile
.
ui
.
home
.
HomeActivity
.
pre_code_list
;
import
static
cn
.
garymb
.
ygomobile
.
ui
.
home
.
HomeActivity
.
released_code_list
;
import
android.content.Context
;
import
android.text.TextUtils
;
...
...
@@ -224,6 +226,9 @@ public class DeckUtil {
continue
;
}
Integer
id
=
Integer
.
parseInt
(
line
);
if
(
released_code_list
.
contains
(
id
))
{
//先查看id对应的卡片密码是否在正式数组中存在
id
=
pre_code_list
.
get
(
released_code_list
.
indexOf
(
id
));
//替换成对应先行数组里的code
}
//执行完后变成先行密码,如果constants对照表里存在该密码,则如下又转换一次,所以发布app后必须及时更新在线对照表
if
(
ArrayUtil
.
contains
(
oldIDsArray
,
id
))
{
id
=
ArrayUtil
.
get
(
newIDsArray
,
ArrayUtil
.
indexOf
(
oldIDsArray
,
id
));
}
...
...
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