Commit a98edafa authored by fallenstardust's avatar fallenstardust

删除残留的指定先行卡包,避免具备相同id的数据库之间引起冲突

parent e1decc67
...@@ -260,4 +260,6 @@ public interface Constants { ...@@ -260,4 +260,6 @@ public interface Constants {
}; };
public final String officialExCardPackageName = "ygopro-super-pre.ypk";//官方扩展卡包ypk文件的名称 public final String officialExCardPackageName = "ygopro-super-pre.ypk";//官方扩展卡包ypk文件的名称
public final String mercuryExCardPackageName = "ygo233.com-pre-release";//23333扩展卡包ypk文件的名称
public final String cacheExCardPackageName = "内测先行卡";//临时扩展卡包ypk文件的名称
} }
...@@ -44,6 +44,7 @@ import ocgcore.DataManager; ...@@ -44,6 +44,7 @@ import ocgcore.DataManager;
public class ExCardListFragment extends Fragment { public class ExCardListFragment extends Fragment {
private static final String TAG = String.valueOf(ExCardListFragment.class); private static final String TAG = String.valueOf(ExCardListFragment.class);
public static DownloadState downloadState;
private Context context; private Context context;
private View layoutView; private View layoutView;
private ExCardListAdapter mExCardListAdapter; private ExCardListAdapter mExCardListAdapter;
...@@ -51,19 +52,6 @@ public class ExCardListFragment extends Fragment { ...@@ -51,19 +52,6 @@ public class ExCardListFragment extends Fragment {
private TextView textDownload; private TextView textDownload;
private int FailedCount; 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 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
...@@ -112,7 +100,6 @@ public class ExCardListFragment extends Fragment { ...@@ -112,7 +100,6 @@ public class ExCardListFragment extends Fragment {
changeDownloadText(); changeDownloadText();
} }
/** /**
* 根据先行卡包状态改变按钮样式 * 根据先行卡包状态改变按钮样式
*/ */
...@@ -134,7 +121,58 @@ public class ExCardListFragment extends Fragment { ...@@ -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() { Handler handler = new Handler() {
@Override @Override
...@@ -161,6 +199,16 @@ public class ExCardListFragment extends Fragment { ...@@ -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"); 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能保证按钮样式正确更新 //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); SharedPreferenceUtil.setExpansionDataVer(ServerUtil.serverExCardVersion);
ServerUtil.exCardState = ServerUtil.ExCardState.UPDATED; ServerUtil.exCardState = ServerUtil.ExCardState.UPDATED;
...@@ -187,57 +235,16 @@ public class ExCardListFragment extends Fragment { ...@@ -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) enum DownloadState {
public void onMessageReceived(ExCardEvent event) { DOWNLOAD_ING,
if (event.getType() == ExCardEvent.EventType.exCardPackageChange) { NO_DOWNLOAD
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);
}
});
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment