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
a98edafa
Commit
a98edafa
authored
Nov 25, 2023
by
fallenstardust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
删除残留的指定先行卡包,避免具备相同id的数据库之间引起冲突
parent
e1decc67
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
71 additions
and
62 deletions
+71
-62
mobile/src/main/java/cn/garymb/ygomobile/Constants.java
mobile/src/main/java/cn/garymb/ygomobile/Constants.java
+2
-0
mobile/src/main/java/cn/garymb/ygomobile/ex_card/ExCardListFragment.java
.../java/cn/garymb/ygomobile/ex_card/ExCardListFragment.java
+69
-62
No files found.
mobile/src/main/java/cn/garymb/ygomobile/Constants.java
View file @
a98edafa
...
...
@@ -260,4 +260,6 @@ public interface Constants {
};
public
final
String
officialExCardPackageName
=
"ygopro-super-pre.ypk"
;
//官方扩展卡包ypk文件的名称
public
final
String
mercuryExCardPackageName
=
"ygo233.com-pre-release"
;
//23333扩展卡包ypk文件的名称
public
final
String
cacheExCardPackageName
=
"内测先行卡"
;
//临时扩展卡包ypk文件的名称
}
mobile/src/main/java/cn/garymb/ygomobile/ex_card/ExCardListFragment.java
View file @
a98edafa
...
...
@@ -44,6 +44,7 @@ import ocgcore.DataManager;
public
class
ExCardListFragment
extends
Fragment
{
private
static
final
String
TAG
=
String
.
valueOf
(
ExCardListFragment
.
class
);
public
static
DownloadState
downloadState
;
private
Context
context
;
private
View
layoutView
;
private
ExCardListAdapter
mExCardListAdapter
;
...
...
@@ -51,19 +52,6 @@ public class ExCardListFragment extends Fragment {
private
TextView
textDownload
;
private
int
FailedCount
;
/**
* 用于标志当前下载状态,用于防止用户多次重复点击“下载按钮”
* Mark the download state, which can prevent user from clicking the download button
* repeatedly.
*/
enum
DownloadState
{
DOWNLOAD_ING
,
NO_DOWNLOAD
}
public
static
DownloadState
downloadState
;
@Override
public
View
onCreateView
(
LayoutInflater
inflater
,
ViewGroup
container
,
Bundle
savedInstanceState
)
{
...
...
@@ -112,7 +100,6 @@ public class ExCardListFragment extends Fragment {
changeDownloadText
();
}
/**
* 根据先行卡包状态改变按钮样式
*/
...
...
@@ -134,7 +121,58 @@ public class ExCardListFragment extends Fragment {
}
}
@SuppressLint
(
"HandlerLeak"
)
/**
* @param event
*/
@Subscribe
(
threadMode
=
ThreadMode
.
MAIN
)
public
void
onMessageReceived
(
ExCardEvent
event
)
{
if
(
event
.
getType
()
==
ExCardEvent
.
EventType
.
exCardPackageChange
)
{
changeDownloadText
();
}
}
private
void
downloadfromWeb
(
String
fileUrl
)
{
textDownload
.
setText
(
"0%"
);
//点击下载后,距离onDownloading触发要等几秒,这一延迟会造成软件响应慢的错觉,因此在下载函数开始就设置文本
String
path
=
AppsSettings
.
get
().
getExpansionsPath
().
getAbsolutePath
();
String
fileName
=
Constants
.
officialExCardPackageName
;
File
file
=
new
File
(
path
+
"/"
+
fileName
);
if
(
file
.
exists
())
{
/* 删除旧的先行卡包 */
FileUtils
.
deleteFile
(
file
);
SharedPreferenceUtil
.
setExpansionDataVer
(
null
);
//删除先行卡后,更新版本状态
ServerUtil
.
exCardState
=
ServerUtil
.
ExCardState
.
NEED_UPDATE
;
EventBus
.
getDefault
().
postSticky
(
new
ExCardEvent
(
ExCardEvent
.
EventType
.
exCardPackageChange
));
//删除后,通知UI做更新
}
DownloadUtil
.
get
().
download
(
fileUrl
,
path
,
fileName
,
new
DownloadUtil
.
OnDownloadListener
()
{
@Override
public
void
onDownloadSuccess
(
File
file
)
{
Message
message
=
new
Message
();
message
.
what
=
DownloadUtil
.
TYPE_DOWNLOAD_OK
;
handler
.
sendMessage
(
message
);
}
@Override
public
void
onDownloading
(
int
progress
)
{
Message
message
=
new
Message
();
message
.
what
=
DownloadUtil
.
TYPE_DOWNLOAD_ING
;
message
.
arg1
=
progress
;
handler
.
sendMessage
(
message
);
}
@Override
public
void
onDownloadFailed
(
Exception
e
)
{
//下载失败后删除下载的文件
FileUtils
.
deleteFile
(
file
);
Message
message
=
new
Message
();
message
.
what
=
TYPE_DOWNLOAD_EXCEPTION
;
handler
.
sendMessage
(
message
);
}
});
}
@SuppressLint
(
"HandlerLeak"
)
Handler
handler
=
new
Handler
()
{
@Override
...
...
@@ -161,6 +199,16 @@ public class ExCardListFragment extends Fragment {
AddServer
(
getActivity
(),
context
.
getString
(
R
.
string
.
Pre_Server_Name
),
Constants
.
URL_Mycard_Super_Pre_Server
,
Constants
.
PORT_Mycard_Super_Pre_Server
,
"Knight of Hanoi"
);
//changeDownloadButton();在下载完成后,通过EventBus通知下载完成(加入用户点击下载后临时切出本fragment,又在下载完成后切回,通过eventbus能保证按钮样式正确更新
File
[]
files
=
AppsSettings
.
get
().
getExpansionsPath
().
listFiles
();
if
(
files
!=
null
)
{
for
(
File
file
:
files
)
{
if
(
file
.
exists
()
&&
(
file
.
getName
().
contains
(
Constants
.
cacheExCardPackageName
)
||
file
.
getName
().
contains
(
Constants
.
mercuryExCardPackageName
)))
{
//删除残留的指定先行卡包,避免具备相同id的数据库之间引起冲突
FileUtils
.
deleteFile
(
file
);
}
}
}
/* 注意,要先更新版本号 */
SharedPreferenceUtil
.
setExpansionDataVer
(
ServerUtil
.
serverExCardVersion
);
ServerUtil
.
exCardState
=
ServerUtil
.
ExCardState
.
UPDATED
;
...
...
@@ -187,57 +235,16 @@ public class ExCardListFragment extends Fragment {
};
/**
* @param event
* 用于标志当前下载状态,用于防止用户多次重复点击“下载按钮”
* Mark the download state, which can prevent user from clicking the download button
* repeatedly.
*/
@Subscribe
(
threadMode
=
ThreadMode
.
MAIN
)
public
void
onMessageReceived
(
ExCardEvent
event
)
{
if
(
event
.
getType
()
==
ExCardEvent
.
EventType
.
exCardPackageChange
)
{
changeDownloadText
();
}
enum
DownloadState
{
DOWNLOAD_ING
,
NO_DOWNLOAD
}
private
void
downloadfromWeb
(
String
fileUrl
)
{
textDownload
.
setText
(
"0%"
);
//点击下载后,距离onDownloading触发要等几秒,这一延迟会造成软件响应慢的错觉,因此在下载函数开始就设置文本
String
path
=
AppsSettings
.
get
().
getExpansionsPath
().
getAbsolutePath
();
String
fileName
=
Constants
.
officialExCardPackageName
;
File
file
=
new
File
(
path
+
"/"
+
fileName
);
if
(
file
.
exists
())
{
/* 删除旧的先行卡包 */
FileUtils
.
deleteFile
(
file
);
SharedPreferenceUtil
.
setExpansionDataVer
(
null
);
//删除先行卡后,更新版本状态
ServerUtil
.
exCardState
=
ServerUtil
.
ExCardState
.
NEED_UPDATE
;
EventBus
.
getDefault
().
postSticky
(
new
ExCardEvent
(
ExCardEvent
.
EventType
.
exCardPackageChange
));
//删除后,通知UI做更新
}
DownloadUtil
.
get
().
download
(
fileUrl
,
path
,
fileName
,
new
DownloadUtil
.
OnDownloadListener
()
{
@Override
public
void
onDownloadSuccess
(
File
file
)
{
Message
message
=
new
Message
();
message
.
what
=
DownloadUtil
.
TYPE_DOWNLOAD_OK
;
handler
.
sendMessage
(
message
);
}
@Override
public
void
onDownloading
(
int
progress
)
{
Message
message
=
new
Message
();
message
.
what
=
DownloadUtil
.
TYPE_DOWNLOAD_ING
;
message
.
arg1
=
progress
;
handler
.
sendMessage
(
message
);
}
@Override
public
void
onDownloadFailed
(
Exception
e
)
{
//下载失败后删除下载的文件
FileUtils
.
deleteFile
(
file
);
Message
message
=
new
Message
();
message
.
what
=
TYPE_DOWNLOAD_EXCEPTION
;
handler
.
sendMessage
(
message
);
}
});
}
}
\ No newline at end of file
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