Commit e7e48591 authored by fallenstardust's avatar fallenstardust Committed by GitHub

Merge pull request #112 from zhuhongbozhuhongbo/master

gitignore修改 修改日志 自动切换webview页面
parents 667c04cf 985df11d
...@@ -55,6 +55,7 @@ libYGOMobile.so ...@@ -55,6 +55,7 @@ libYGOMobile.so
/mobile/src/main/res/drawable-xhdpi/Thumbs.db /mobile/src/main/res/drawable-xhdpi/Thumbs.db
Thumbs.db Thumbs.db
output.json output.json
output-metadata.json
/libcore/.cxx /libcore/.cxx
/libygo/.cxx /libygo/.cxx
......
{
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "cn.garymb.ygomobile.CN",
"variantName": "cnRelease",
"elements": [
{
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 310080942,
"versionName": "3.10.8",
"outputFile": "YGOMobile_3.10.8.apk"
}
],
"elementType": "File"
}
\ No newline at end of file
...@@ -277,13 +277,13 @@ public class GameUriManager { ...@@ -277,13 +277,13 @@ public class GameUriManager {
} else { } else {
YGODAUtil.deDeckListener(uri, (uri1, mainList, exList, sideList, isCompleteDeck, exception) -> { YGODAUtil.deDeckListener(uri, (uri1, mainList, exList, sideList, isCompleteDeck, exception) -> {
if (!TextUtils.isEmpty(exception)) { if (!TextUtils.isEmpty(exception)) {
YGOUtil.show("卡组解析失败,原因为:" + exception); YGOUtil.showTextToast("卡组解析失败,原因为:" + exception);
return; return;
} }
Deck deckInfo = new Deck(uri, mainList, exList, sideList); Deck deckInfo = new Deck(uri, mainList, exList, sideList);
File file = deckInfo.saveTemp(AppsSettings.get().getDeckDir()); File file = deckInfo.saveTemp(AppsSettings.get().getDeckDir());
if (!deckInfo.isCompleteDeck()) { if (!deckInfo.isCompleteDeck()) {
YGOUtil.show(activity.getString(R.string.tip_deckInfo_isNot_completeDeck)); YGOUtil.showTextToast("当前卡组缺少完整信息,将只显示已有卡片");
} }
startSetting.putExtra(Intent.EXTRA_TEXT, file.getAbsolutePath()); startSetting.putExtra(Intent.EXTRA_TEXT, file.getAbsolutePath());
activity.startActivity(startSetting); activity.startActivity(startSetting);
...@@ -295,7 +295,7 @@ public class GameUriManager { ...@@ -295,7 +295,7 @@ public class GameUriManager {
if (activity instanceof MainActivity) { if (activity instanceof MainActivity) {
((HomeActivity) activity).fragment_home.quickjoinRoom(host1, port, password); ((HomeActivity) activity).fragment_home.quickjoinRoom(host1, port, password);
} else { } else {
YGOUtil.show(exception); YGOUtil.showTextToast(exception);
} }
}); });
} }
......
...@@ -6,7 +6,7 @@ import android.os.Parcelable; ...@@ -6,7 +6,7 @@ import android.os.Parcelable;
/* /*
This class contains two types of card information:ex-card information and updating log, which is marked This class contains two types of card information:ex-card information and updating log, which is marked
by "type 0" and "type 1", respectively. by "type 0" and "type 1", respectively.
本类包括两种卡牌信息,先行卡信息和更新日志(分别由·type 0和type 1表示)。 本类包括两种卡牌信息,先行卡信息和更新日志(分别由·type 0和type 1表示)。
*/ */
public class ExCard implements Parcelable { public class ExCard implements Parcelable {
private String name; private String name;
......
package cn.garymb.ygomobile.ex_card; package cn.garymb.ygomobile.ex_card;
import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.widget.Toolbar;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import com.google.android.material.tabs.TabLayout; import com.google.android.material.tabs.TabLayout;
import cn.garymb.ygomobile.lite.R; import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.activities.BaseActivity; import cn.garymb.ygomobile.ui.activities.BaseActivity;
import cn.garymb.ygomobile.utils.LogUtil;
public class ExCardActivity extends BaseActivity { public class ExCardActivity extends BaseActivity {
private static final String TAG = String.valueOf(ExCardActivity.class); private static final String TAG = String.valueOf(ExCardActivity.class);
public static TabLayout tabLayout; public static TabLayout tabLayout;
public static ViewPager viewPager; public static ViewPager viewPager;
private PackageTabAdapter adapter; private ExPackageTabAdapter adapter;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
...@@ -33,10 +31,11 @@ public class ExCardActivity extends BaseActivity { ...@@ -33,10 +31,11 @@ public class ExCardActivity extends BaseActivity {
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
Log.i(TAG, "excard activity destroy"); LogUtil.i(TAG, "excard activity destroy");
} }
private void createTabFragment() { private void createTabFragment() {
adapter = new PackageTabAdapter(getSupportFragmentManager(), tabLayout); adapter = new ExPackageTabAdapter(getSupportFragmentManager(), tabLayout, getContext());
viewPager.setAdapter(adapter); viewPager.setAdapter(adapter);
/* setupWithViewPager() is used to link the TabLayout to the ViewPager */ /* setupWithViewPager() is used to link the TabLayout to the ViewPager */
tabLayout.setupWithViewPager(viewPager); tabLayout.setupWithViewPager(viewPager);
......
...@@ -2,7 +2,6 @@ package cn.garymb.ygomobile.ex_card; ...@@ -2,7 +2,6 @@ package cn.garymb.ygomobile.ex_card;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.util.Log;
import android.widget.ImageView; import android.widget.ImageView;
import com.bumptech.glide.RequestBuilder; import com.bumptech.glide.RequestBuilder;
...@@ -21,10 +20,11 @@ import cn.garymb.ygomobile.lite.R; ...@@ -21,10 +20,11 @@ import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.loader.ImageLoader; import cn.garymb.ygomobile.loader.ImageLoader;
import cn.garymb.ygomobile.ui.plus.DialogPlus; import cn.garymb.ygomobile.ui.plus.DialogPlus;
import cn.garymb.ygomobile.ui.plus.VUiKit; import cn.garymb.ygomobile.ui.plus.VUiKit;
import cn.garymb.ygomobile.utils.LogUtil;
import cn.garymb.ygomobile.utils.glide.GlideCompat; import cn.garymb.ygomobile.utils.glide.GlideCompat;
public class ExCardListAdapter extends BaseQuickAdapter<ExCard, BaseViewHolder> { public class ExCardListAdapter extends BaseQuickAdapter<ExCard, BaseViewHolder> {
private static final String TAG = String.valueOf(ExCardListAdapter.class); private static final String TAG = ExCardListAdapter.class.getSimpleName();
private ImageLoader imageLoader; private ImageLoader imageLoader;
public ExCardListAdapter(int layoutResId) { public ExCardListAdapter(int layoutResId) {
...@@ -34,9 +34,8 @@ public class ExCardListAdapter extends BaseQuickAdapter<ExCard, BaseViewHolder> ...@@ -34,9 +34,8 @@ public class ExCardListAdapter extends BaseQuickAdapter<ExCard, BaseViewHolder>
public void loadData() { public void loadData() {
final DialogPlus dialog_read_ex = DialogPlus.show(getContext(), null, getContext().getString(R.string.fetch_ex_card)); final DialogPlus dialog_read_ex = DialogPlus.show(getContext(), null, getContext().getString(R.string.fetch_ex_card));
VUiKit.defer().when(() -> { VUiKit.defer().when(() -> {
String aurl = Constants.URL_YGO233_ADVANCE;
//Connect to the website //Connect to the website
Document document = Jsoup.connect(aurl).get(); Document document = Jsoup.connect(Constants.URL_YGO233_ADVANCE).get();
Element pre_card_content = document.getElementById("pre_release_cards"); Element pre_card_content = document.getElementById("pre_release_cards");
Element tbody = pre_card_content.getElementsByTag("tbody").get(0); Element tbody = pre_card_content.getElementsByTag("tbody").get(0);
Elements cards = tbody.getElementsByTag("tr"); Elements cards = tbody.getElementsByTag("tr");
...@@ -71,17 +70,16 @@ public class ExCardListAdapter extends BaseQuickAdapter<ExCard, BaseViewHolder> ...@@ -71,17 +70,16 @@ public class ExCardListAdapter extends BaseQuickAdapter<ExCard, BaseViewHolder>
} }
} }
Log.i(TAG, "webCrawler fail"); LogUtil.i(TAG, "webCrawler fail");
}).done(exCardList -> { }).done(exCardList -> {
if (exCardList != null) { if (exCardList != null) {
Log.i(TAG, "webCrawler done"); LogUtil.i(TAG, "webCrawler done");
getData().clear(); getData().clear();
addData(exCardList); addData(exCardList);
notifyDataSetChanged(); notifyDataSetChanged();
} }
//关闭异常
if (dialog_read_ex.isShowing()) { if (dialog_read_ex.isShowing()) {
try { try {
dialog_read_ex.dismiss(); dialog_read_ex.dismiss();
......
...@@ -13,7 +13,6 @@ import android.content.Intent; ...@@ -13,7 +13,6 @@ import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -50,6 +49,7 @@ import cn.garymb.ygomobile.ui.plus.VUiKit; ...@@ -50,6 +49,7 @@ import cn.garymb.ygomobile.ui.plus.VUiKit;
import cn.garymb.ygomobile.utils.DownloadUtil; import cn.garymb.ygomobile.utils.DownloadUtil;
import cn.garymb.ygomobile.utils.FileUtils; import cn.garymb.ygomobile.utils.FileUtils;
import cn.garymb.ygomobile.utils.IOUtils; import cn.garymb.ygomobile.utils.IOUtils;
import cn.garymb.ygomobile.utils.LogUtil;
import cn.garymb.ygomobile.utils.ServerUtil; import cn.garymb.ygomobile.utils.ServerUtil;
import cn.garymb.ygomobile.utils.SharedPreferenceUtil; import cn.garymb.ygomobile.utils.SharedPreferenceUtil;
import cn.garymb.ygomobile.utils.SystemUtils; import cn.garymb.ygomobile.utils.SystemUtils;
...@@ -70,7 +70,7 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener ...@@ -70,7 +70,7 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener
private int FailedCount; private int FailedCount;
/** /**
* 用于标志当前下载状态,用于防止用户多次重复点击“下载按钮” * 用于标志当前下载状态,用于防止用户多次重复点击“下载按钮”
* Mark the download state, which can prevent user from clicking the download button * Mark the download state, which can prevent user from clicking the download button
* repeatedly. * repeatedly.
*/ */
...@@ -91,7 +91,7 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener ...@@ -91,7 +91,7 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener
this.context = getContext(); this.context = getContext();
initView(layoutView); initView(layoutView);
if (!EventBus.getDefault().isRegistered(this)) {//加上判断 if (!EventBus.getDefault().isRegistered(this)) {//加上判断
EventBus.getDefault().register(this); EventBus.getDefault().register(this);
} }
return layoutView; return layoutView;
...@@ -100,8 +100,8 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener ...@@ -100,8 +100,8 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener
@Override @Override
public void onStop() { public void onStop() {
super.onStop(); super.onStop();
Log.i(TAG, "excard fragment on stop"); LogUtil.i(TAG, "excard fragment on stop");
if (EventBus.getDefault().isRegistered(this))//加上判断 if (EventBus.getDefault().isRegistered(this))//加上判断
EventBus.getDefault().unregister(this); EventBus.getDefault().unregister(this);
} }
...@@ -123,6 +123,7 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener ...@@ -123,6 +123,7 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener
public void onClick(View v) { public void onClick(View v) {
switch (v.getId()) { switch (v.getId()) {
case R.id.btn_download_prerelease: case R.id.btn_download_prerelease:
LogUtil.i(TAG, "start download");
if (downloadState != DownloadState.DOWNLOAD_ING) { if (downloadState != DownloadState.DOWNLOAD_ING) {
downloadState = DownloadState.DOWNLOAD_ING; downloadState = DownloadState.DOWNLOAD_ING;
downloadfromWeb(URL_YGO233_FILE); downloadfromWeb(URL_YGO233_FILE);
...@@ -133,11 +134,11 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener ...@@ -133,11 +134,11 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener
} }
/** /**
* 根据先行卡包状态改变按钮样式 * 根据先行卡包状态改变按钮样式
*/ */
public void changeDownloadText() { public void changeDownloadText() {
if (ServerUtil.exCardState == ServerUtil.ExCardState.UPDATED) { if (ServerUtil.exCardState == ServerUtil.ExCardState.UPDATED) {
//btn_download展示默认视图 //btn_download展示默认视图
textDownload.setText(R.string.tip_redownload); textDownload.setText(R.string.tip_redownload);
} else if (ServerUtil.exCardState == ServerUtil.ExCardState.NEED_UPDATE) { } else if (ServerUtil.exCardState == ServerUtil.ExCardState.NEED_UPDATE) {
textDownload.setText(R.string.Download); textDownload.setText(R.string.Download);
...@@ -164,38 +165,38 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener ...@@ -164,38 +165,38 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener
Toast.makeText(getActivity(), R.string.Ask_to_Change_Other_Way, Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), R.string.Ask_to_Change_Other_Way, Toast.LENGTH_SHORT).show();
downloadfromWeb(URL_YGO233_FILE_ALT); downloadfromWeb(URL_YGO233_FILE_ALT);
} }
YGOUtil.show("error" + msg.obj); YGOUtil.showTextToast("error" + msg.obj);
break; break;
case UnzipUtils.ZIP_READY: case UnzipUtils.ZIP_READY:
textDownload.setText(R.string.title_use_ex); textDownload.setText(R.string.title_use_ex);
break; break;
case UnzipUtils.ZIP_UNZIP_OK: case UnzipUtils.ZIP_UNZIP_OK:
/* 将先行服务器信息添加到服务器列表中 */ /* 将先行服务器信息添加到服务器列表中 */
String servername = ""; String servername = "";
if (AppsSettings.get().getDataLanguage() == 0) if (AppsSettings.get().getDataLanguage() == 0)
servername = "23333先行服务器"; servername = "23333先行服务器";
if (AppsSettings.get().getDataLanguage() == 1) if (AppsSettings.get().getDataLanguage() == 1)
servername = "YGOPRO 사전 게시 중국서버"; servername = "YGOPRO ?? ?? ????";
if (AppsSettings.get().getDataLanguage() == 2) if (AppsSettings.get().getDataLanguage() == 2)
servername = "Mercury23333 OCG/TCG Pre-release"; servername = "Mercury23333 OCG/TCG Pre-release";
AddServer(getActivity(), servername, "s1.ygo233.com", 23333, "Knight of Hanoi"); AddServer(getActivity(), servername, "s1.ygo233.com", 23333, "Knight of Hanoi");
//changeDownloadButton();在下载完成后,通过EventBus通知下载完成(加入用户点击下载后临时切出本fragment,又在下载完成后切回,通过eventbus能保证按钮样式正确更新 //changeDownloadButton();在下载完成后,通过EventBus通知下载完成(加入用户点击下载后临时切出本fragment,又在下载完成后切回,通过eventbus能保证按钮样式正确更新
/* 注意,要先更新版本号 */ /* 注意,要先更新版本号 */
SharedPreferenceUtil.setExpansionDataVer(ServerUtil.serverExCardVersion); SharedPreferenceUtil.setExpansionDataVer(ServerUtil.serverExCardVersion);
ServerUtil.exCardState = ServerUtil.ExCardState.UPDATED; ServerUtil.exCardState = ServerUtil.ExCardState.UPDATED;
EventBus.getDefault().postSticky(new ExCardEvent(ExCardEvent.EventType.exCardPackageChange));//安装后,通知UI做更新 EventBus.getDefault().postSticky(new ExCardEvent(ExCardEvent.EventType.exCardPackageChange));//安装后,通知UI做更新
DataManager.get().load(true); DataManager.get().load(true);
Toast.makeText(context, R.string.ypk_installed, Toast.LENGTH_LONG).show(); Toast.makeText(context, R.string.ypk_installed, Toast.LENGTH_LONG).show();
Log.i("webCrawler", "Ex-card package is installed"); LogUtil.i("webCrawler", "Ex-card package is installed");
/* 如果未开启先行卡设置,则跳转到设置页面 */ /* 如果未开启先行卡设置,则跳转到设置页面 */
if (!AppsSettings.get().isReadExpansions()) {//解压完毕,但此时 if (!AppsSettings.get().isReadExpansions()) {//解压完毕,但此时
Log.i("webCrawler", "Ex-card setting is not opened"); LogUtil.i("webCrawler", "Ex-card setting is not opened");
Intent startSetting = new Intent(context, MainActivity.class); Intent startSetting = new Intent(context, MainActivity.class);
startSetting.putExtra("flag", 4); startSetting.putExtra("flag", 4);
startActivity(startSetting); startActivity(startSetting);
...@@ -212,7 +213,7 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener ...@@ -212,7 +213,7 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener
// String oldVer = SharedPreferenceUtil.getExpansionDataVer(); // String oldVer = SharedPreferenceUtil.getExpansionDataVer();
// if (!TextUtils.isEmpty(WebActivity.exCardVer)) { // if (!TextUtils.isEmpty(WebActivity.exCardVer)) {
// if (!WebActivity.exCardVer.equals(oldVer)) { // if (!WebActivity.exCardVer.equals(oldVer)) {
// //btn_download展示默认视图 // //btn_download展示默认视图
// } else { // } else {
// btnDownload.setText(R.string.tip_redownload); // btnDownload.setText(R.string.tip_redownload);
// } // }
...@@ -233,7 +234,7 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener ...@@ -233,7 +234,7 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener
} }
} }
private void downloadfromWeb(String fileUrl) { private void downloadfromWeb(String fileUrl) {
textDownload.setText("0%");//点击下载后,距离onDownloading触发要等几秒,这一延迟会造成软件响应慢的错觉 textDownload.setText("0%");//点击下载后,距离onDownloading触发要等几秒,这一延迟会造成软件响应慢的错觉,因此在下载函数开始就设置文本
File file = new File(AppsSettings.get().getResourcePath() + "-preRlease.zip"); File file = new File(AppsSettings.get().getResourcePath() + "-preRlease.zip");
if (file.exists()) { if (file.exists()) {
FileUtils.deleteFile(file); FileUtils.deleteFile(file);
...@@ -255,7 +256,7 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener ...@@ -255,7 +256,7 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener
} catch (Exception e) { } catch (Exception e) {
message.what = UnzipUtils.ZIP_UNZIP_EXCEPTION; message.what = UnzipUtils.ZIP_UNZIP_EXCEPTION;
} finally { } finally {
message.what = UnzipUtils.ZIP_UNZIP_OK;//TODO 不对吧,finally是一定执行,这样即使有exception也会发unzip_ok啊 message.what = UnzipUtils.ZIP_UNZIP_OK;//TODO 不对吧,finally是一定执行,这样即使有exception也会发unzip_ok啊
} }
handler.sendMessage(message); handler.sendMessage(message);
} }
...@@ -271,7 +272,7 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener ...@@ -271,7 +272,7 @@ public class ExCardListFragment extends Fragment implements View.OnClickListener
@Override @Override
public void onDownloadFailed(Exception e) { public void onDownloadFailed(Exception e) {
//下载失败后删除下载的文件 //下载失败后删除下载的文件
FileUtils.deleteFile(file); FileUtils.deleteFile(file);
Message message = new Message(); Message message = new Message();
message.what = TYPE_DOWNLOAD_EXCEPTION; message.what = TYPE_DOWNLOAD_EXCEPTION;
......
...@@ -2,7 +2,6 @@ package cn.garymb.ygomobile.ex_card; ...@@ -2,7 +2,6 @@ package cn.garymb.ygomobile.ex_card;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -25,6 +24,7 @@ import cn.garymb.ygomobile.lite.R; ...@@ -25,6 +24,7 @@ import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.activities.WebActivity; import cn.garymb.ygomobile.ui.activities.WebActivity;
import cn.garymb.ygomobile.ui.plus.DialogPlus; import cn.garymb.ygomobile.ui.plus.DialogPlus;
import cn.garymb.ygomobile.ui.plus.VUiKit; import cn.garymb.ygomobile.ui.plus.VUiKit;
import cn.garymb.ygomobile.utils.LogUtil;
public class ExCardLogFragment extends Fragment implements View.OnClickListener { public class ExCardLogFragment extends Fragment implements View.OnClickListener {
private static final String TAG = String.valueOf(ExCardLogFragment.class); private static final String TAG = String.valueOf(ExCardLogFragment.class);
...@@ -92,7 +92,7 @@ public class ExCardLogFragment extends Fragment implements View.OnClickListener ...@@ -92,7 +92,7 @@ public class ExCardLogFragment extends Fragment implements View.OnClickListener
} }
}).fail((e) -> { }).fail((e) -> {
//关闭异常 //ر쳣
if (dialog_read_ex.isShowing()) { if (dialog_read_ex.isShowing()) {
try { try {
dialog_read_ex.dismiss(); dialog_read_ex.dismiss();
...@@ -100,7 +100,7 @@ public class ExCardLogFragment extends Fragment implements View.OnClickListener ...@@ -100,7 +100,7 @@ public class ExCardLogFragment extends Fragment implements View.OnClickListener
} }
} }
Log.i(TAG, "webCrawler fail"); LogUtil.i(TAG, "webCrawler fail");
}).done(exCardLogList -> { }).done(exCardLogList -> {
mExCardLogAdapter.setData(exCardLogList); mExCardLogAdapter.setData(exCardLogList);
mExCardLogAdapter.notifyDataSetChanged(); mExCardLogAdapter.notifyDataSetChanged();
...@@ -109,9 +109,9 @@ public class ExCardLogFragment extends Fragment implements View.OnClickListener ...@@ -109,9 +109,9 @@ public class ExCardLogFragment extends Fragment implements View.OnClickListener
mExCardLogView.expandGroup(1); mExCardLogView.expandGroup(1);
mExCardLogView.expandGroup(2); mExCardLogView.expandGroup(2);
if (exCardLogList != null) { if (exCardLogList != null) {
Log.i(TAG, "webCrawler parse html complete"); LogUtil.i(TAG, "webCrawler parse html complete");
} }
//关闭异常 //ر쳣
if (dialog_read_ex.isShowing()) { if (dialog_read_ex.isShowing()) {
try { try {
dialog_read_ex.dismiss(); dialog_read_ex.dismiss();
......
package cn.garymb.ygomobile.ex_card; package cn.garymb.ygomobile.ex_card;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
...@@ -9,30 +8,28 @@ import androidx.fragment.app.FragmentStatePagerAdapter; ...@@ -9,30 +8,28 @@ import androidx.fragment.app.FragmentStatePagerAdapter;
import com.google.android.material.tabs.TabLayout; import com.google.android.material.tabs.TabLayout;
import cn.garymb.ygomobile.Constants;
import cn.garymb.ygomobile.lite.R; import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.activities.WebActivity;
import cn.garymb.ygomobile.ui.home.HomeActivity;
/** /**
* Tab的适配器,用来实现页面切换 * 先行卡相关Fragment的Tab的适配器,用来实现页面切换
*/ */
public class PackageTabAdapter extends FragmentStatePagerAdapter { public class ExPackageTabAdapter extends FragmentStatePagerAdapter {
TabLayout tabLayout; TabLayout tabLayout;
public PackageTabAdapter(FragmentManager fm, TabLayout _tabLayout) { /* 仅用于获取strings.xml中的字符串。It's used just for getting strings from strings.xml */
Context context;
public ExPackageTabAdapter(FragmentManager fm, TabLayout _tabLayout, Context context) {
super(fm); super(fm);
this.tabLayout = _tabLayout; this.tabLayout = _tabLayout;
this.context = context;
} }
@Override @Override
public Fragment getItem(int position) { public Fragment getItem(int position) {
Fragment fragment = null; Fragment fragment = null;
if (position == 0) if (position == 0) {
{ fragment = new ExCardListFragment();
fragment = new ExCardListFragment();//TODO } else if (position == 1) {
}
else if (position == 1)
{
fragment = new ExCardLogFragment(); fragment = new ExCardLogFragment();
} }
return fragment; return fragment;
...@@ -46,13 +43,11 @@ public class PackageTabAdapter extends FragmentStatePagerAdapter { ...@@ -46,13 +43,11 @@ public class PackageTabAdapter extends FragmentStatePagerAdapter {
@Override @Override
public CharSequence getPageTitle(int position) { public CharSequence getPageTitle(int position) {
String title = null; String title = null;
if (position == 0) if (position == 0) {
{
title = "先行卡";//TODO title = context.getString(R.string.ex_card_list_title);
} } else if (position == 1) {
else if (position == 1) title = context.getString(R.string.ex_card_log_title);
{
title = "更新日志";
} }
return title; return title;
} }
......
...@@ -3,7 +3,6 @@ package cn.garymb.ygomobile.loader; ...@@ -3,7 +3,6 @@ package cn.garymb.ygomobile.loader;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import android.util.SparseArray; import android.util.SparseArray;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
...@@ -18,6 +17,7 @@ import cn.garymb.ygomobile.lite.R; ...@@ -18,6 +17,7 @@ import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.plus.DialogPlus; import cn.garymb.ygomobile.ui.plus.DialogPlus;
import cn.garymb.ygomobile.ui.plus.VUiKit; import cn.garymb.ygomobile.ui.plus.VUiKit;
import cn.garymb.ygomobile.utils.CardSort; import cn.garymb.ygomobile.utils.CardSort;
import cn.garymb.ygomobile.utils.LogUtil;
import ocgcore.CardManager; import ocgcore.CardManager;
import ocgcore.DataManager; import ocgcore.DataManager;
import ocgcore.LimitManager; import ocgcore.LimitManager;
...@@ -25,6 +25,12 @@ import ocgcore.data.Card; ...@@ -25,6 +25,12 @@ import ocgcore.data.Card;
import ocgcore.data.LimitList; import ocgcore.data.LimitList;
import ocgcore.enums.LimitType; import ocgcore.enums.LimitType;
/**
* 包括LimitManager、CardManager、LimitList
* LimitList负责判断禁止卡等
*
*
*/
public class CardLoader implements ICardSearcher { public class CardLoader implements ICardSearcher {
private final LimitManager mLimitManager; private final LimitManager mLimitManager;
private final CardManager mCardManager; private final CardManager mCardManager;
...@@ -59,6 +65,11 @@ public class CardLoader implements ICardSearcher { ...@@ -59,6 +65,11 @@ public class CardLoader implements ICardSearcher {
} }
} }
/**
* @param ids
* @param isSorted
* @return
*/
@Override @Override
public SparseArray<Card> readCards(List<Integer> ids, boolean isSorted) { public SparseArray<Card> readCards(List<Integer> ids, boolean isSorted) {
if (!isOpen()) { if (!isOpen()) {
...@@ -116,7 +127,7 @@ public class CardLoader implements ICardSearcher { ...@@ -116,7 +127,7 @@ public class CardLoader implements ICardSearcher {
return; return;
} }
if (Constants.DEBUG) if (Constants.DEBUG)
Log.i(TAG, "searchInfo=" + searchInfo); LogUtil.i(TAG, "searchInfo=" + searchInfo);
if (mCallBack != null) { if (mCallBack != null) {
mCallBack.onSearchStart(); mCallBack.onSearchStart();
} }
...@@ -147,7 +158,7 @@ public class CardLoader implements ICardSearcher { ...@@ -147,7 +158,7 @@ public class CardLoader implements ICardSearcher {
ArrayList<Card> noting = new ArrayList<Card>(); ArrayList<Card> noting = new ArrayList<Card>();
mCallBack.onSearchResult(noting, false); mCallBack.onSearchResult(noting, false);
} }
Log.e("kk", "search", e); LogUtil.e("kk", "search", e);
wait.dismiss(); wait.dismiss();
}).done((tmp) -> { }).done((tmp) -> {
if (mCallBack != null) { if (mCallBack != null) {
......
...@@ -13,7 +13,7 @@ import android.net.Uri; ...@@ -13,7 +13,7 @@ import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.util.Log;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
...@@ -46,6 +46,7 @@ import cn.garymb.ygomobile.ui.plus.DefWebChromeClient; ...@@ -46,6 +46,7 @@ import cn.garymb.ygomobile.ui.plus.DefWebChromeClient;
import cn.garymb.ygomobile.ui.widget.WebViewPlus; import cn.garymb.ygomobile.ui.widget.WebViewPlus;
import cn.garymb.ygomobile.utils.DownloadUtil; import cn.garymb.ygomobile.utils.DownloadUtil;
import cn.garymb.ygomobile.utils.FileUtils; import cn.garymb.ygomobile.utils.FileUtils;
import cn.garymb.ygomobile.utils.LogUtil;
import cn.garymb.ygomobile.utils.SharedPreferenceUtil; import cn.garymb.ygomobile.utils.SharedPreferenceUtil;
import cn.garymb.ygomobile.utils.UnzipUtils; import cn.garymb.ygomobile.utils.UnzipUtils;
import cn.garymb.ygomobile.utils.YGOUtil; import cn.garymb.ygomobile.utils.YGOUtil;
...@@ -84,7 +85,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener { ...@@ -84,7 +85,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener {
Toast.makeText(getActivity(), R.string.Ask_to_Change_Other_Way, Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), R.string.Ask_to_Change_Other_Way, Toast.LENGTH_SHORT).show();
downloadfromWeb(URL_YGO233_FILE_ALT); downloadfromWeb(URL_YGO233_FILE_ALT);
} }
YGOUtil.show("error" + msg.obj); YGOUtil.showTextToast("error" + msg.obj);
break; break;
case UnzipUtils.ZIP_READY: case UnzipUtils.ZIP_READY:
btn_download.setText(R.string.title_use_ex); btn_download.setText(R.string.title_use_ex);
...@@ -134,7 +135,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener { ...@@ -134,7 +135,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener {
mWebViewPlus.setWebChromeClient(new DefWebChromeClient() { mWebViewPlus.setWebChromeClient(new DefWebChromeClient() {
@Override @Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) { public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) {
Log.i(TAG, "openFileChooser: " + fileChooserParams.getMode()); LogUtil.i(TAG, "openFileChooser: " + fileChooserParams.getMode());
mFilePathCallback = filePathCallback; mFilePathCallback = filePathCallback;
openFileChooseProcess(fileChooserParams.getMode() == FileChooserParams.MODE_OPEN_MULTIPLE); openFileChooseProcess(fileChooserParams.getMode() == FileChooserParams.MODE_OPEN_MULTIPLE);
return true; return true;
...@@ -169,7 +170,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener { ...@@ -169,7 +170,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener {
if (data != null && data.getClipData() != null) { if (data != null && data.getClipData() != null) {
//有选择多个文件 //有选择多个文件
int count = data.getClipData().getItemCount(); int count = data.getClipData().getItemCount();
Log.i(TAG, "url count : " + count); LogUtil.i(TAG, "url count : " + count);
Uri[] uris = new Uri[count]; Uri[] uris = new Uri[count];
int currentItem = 0; int currentItem = 0;
while (currentItem < count) { while (currentItem < count) {
...@@ -180,7 +181,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener { ...@@ -180,7 +181,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener {
mFilePathCallback.onReceiveValue(uris); mFilePathCallback.onReceiveValue(uris);
} else { } else {
Uri result = data == null ? null : data.getData(); Uri result = data == null ? null : data.getData();
Log.e(TAG, "" + result); LogUtil.e(TAG, "" + result);
mFilePathCallback.onReceiveValue(new Uri[]{result}); mFilePathCallback.onReceiveValue(new Uri[]{result});
} }
mFilePathCallback = null; mFilePathCallback = null;
...@@ -309,7 +310,8 @@ public class WebActivity extends BaseActivity implements View.OnClickListener { ...@@ -309,7 +310,8 @@ public class WebActivity extends BaseActivity implements View.OnClickListener {
} }
private void openFileChooseProcess(boolean isMulti) { private void openFileChooseProcess(boolean isMulti) {
Log.e(TAG, mWebViewPlus.getUrl()); LogUtil.e(TAG, mWebViewPlus.getUrl());
if (mWebViewPlus.getUrl().contains(MyCard.mCommunityReportUrl)) { if (mWebViewPlus.getUrl().contains(MyCard.mCommunityReportUrl)) {
Intent intent = FileActivity.getIntent(getActivity(), getString(R.string.dialog_select_file), null, AppsSettings.get().getReplayDir(), false, FileOpenType.SelectFile); Intent intent = FileActivity.getIntent(getActivity(), getString(R.string.dialog_select_file), null, AppsSettings.get().getReplayDir(), false, FileOpenType.SelectFile);
startActivityForResult(intent, FILE_CHOOSER_REQUEST); startActivityForResult(intent, FILE_CHOOSER_REQUEST);
......
...@@ -53,7 +53,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder { ...@@ -53,7 +53,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
private static final int TYPE_DOWNLOAD_CARD_IMAGE_EXCEPTION = 1; private static final int TYPE_DOWNLOAD_CARD_IMAGE_EXCEPTION = 1;
private static final int TYPE_DOWNLOAD_CARD_IMAGE_ING = 2; private static final int TYPE_DOWNLOAD_CARD_IMAGE_ING = 2;
private static final String TAG = "CardDetail"; private static final String TAG = String.valueOf(CardDetail.class);
private final CardManager cardManager; private final CardManager cardManager;
private final ImageView cardImage; private final ImageView cardImage;
private final TextView name; private final TextView name;
...@@ -120,7 +120,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder { ...@@ -120,7 +120,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
isDownloadCardImage = true; isDownloadCardImage = true;
ll_bar.startAnimation(AnimationUtils.loadAnimation(context, R.anim.out_from_bottom)); ll_bar.startAnimation(AnimationUtils.loadAnimation(context, R.anim.out_from_bottom));
ll_bar.setVisibility(View.GONE); ll_bar.setVisibility(View.GONE);
YGOUtil.show("error" + msg.obj); YGOUtil.showTextToast("error" + msg.obj);
break; break;
} }
...@@ -439,7 +439,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder { ...@@ -439,7 +439,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
private void downloadCardImage(int code, boolean force) { private void downloadCardImage(int code, boolean force) {
if (cardManager.getCard(code) == null) { if (cardManager.getCard(code) == null) {
YGOUtil.show(context.getString(R.string.tip_expansions_image)); YGOUtil.showTextToast(context.getString(R.string.tip_expansions_image));
return; return;
} }
File imgFile = new File(AppsSettings.get().getCardImagePath(code)); File imgFile = new File(AppsSettings.get().getCardImagePath(code));
......
...@@ -879,7 +879,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -879,7 +879,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
Deck deck = mDeckAdapater.toDeck(mDeckAdapater.getYdkFile()); Deck deck = mDeckAdapater.toDeck(mDeckAdapater.getYdkFile());
if (deck.getDeckCount() == 0) { if (deck.getDeckCount() == 0) {
builderShareLoading.dismiss(); builderShareLoading.dismiss();
YGOUtil.show("卡组中没有卡片"); YGOUtil.showTextToast("卡组中没有卡片");
return; return;
} }
......
...@@ -73,6 +73,7 @@ import cn.garymb.ygomobile.ui.plus.VUiKit; ...@@ -73,6 +73,7 @@ import cn.garymb.ygomobile.ui.plus.VUiKit;
import cn.garymb.ygomobile.ui.widget.Shimmer; import cn.garymb.ygomobile.ui.widget.Shimmer;
import cn.garymb.ygomobile.ui.widget.ShimmerTextView; import cn.garymb.ygomobile.ui.widget.ShimmerTextView;
import cn.garymb.ygomobile.utils.FileLogUtil; import cn.garymb.ygomobile.utils.FileLogUtil;
import cn.garymb.ygomobile.utils.LogUtil;
import cn.garymb.ygomobile.utils.ServerUtil; import cn.garymb.ygomobile.utils.ServerUtil;
import cn.garymb.ygomobile.utils.YGOUtil; import cn.garymb.ygomobile.utils.YGOUtil;
import ocgcore.CardManager; import ocgcore.CardManager;
...@@ -139,7 +140,7 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene ...@@ -139,7 +140,7 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene
if (!EventBus.getDefault().isRegistered(this)) {//加上判断 if (!EventBus.getDefault().isRegistered(this)) {//加上判断
EventBus.getDefault().register(this); EventBus.getDefault().register(this);
} }
ServerUtil.initExCardState();//HomeActivity中会调用一次本函数,此处再次调用是因为有时候HomeFragment的onCreateView()函数执行较慢,导致initExCardState()中eventbus事件发布完毕后仍未注册,因此在此处再调用一次检查,再次发布 ServerUtil.initExCardState();//HomeActivity中会调用一次本函数,此处再次调用的原因:有时HomeFragment的onCreateView()函数执行较慢,导致initExCardState()中eventbus事件发布完毕后仍未注册,因此在此处再调用一次检查,再次发布
changeColor(); changeColor();
//showNewbieGuide("homePage"); //showNewbieGuide("homePage");
return layoutView; return layoutView;
...@@ -280,7 +281,7 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene ...@@ -280,7 +281,7 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene
* ServerUtil获取到版本状态后会通过eventmessage通知调用本函数,不需要在主函数显式调用 * ServerUtil获取到版本状态后会通过eventmessage通知调用本函数,不需要在主函数显式调用
*/ */
public void changeExCardNewMark() { public void changeExCardNewMark() {
Log.i(TAG, "check excard new mark, version:" + ServerUtil.exCardState); LogUtil.i(TAG, "check excard new mark, version:" + ServerUtil.exCardState);
if (ServerUtil.exCardState == ServerUtil.ExCardState.UPDATED) { if (ServerUtil.exCardState == ServerUtil.ExCardState.UPDATED) {
ll_new_notice.setVisibility(View.GONE); ll_new_notice.setVisibility(View.GONE);
} else if (ServerUtil.exCardState == ServerUtil.ExCardState.NEED_UPDATE) { } else if (ServerUtil.exCardState == ServerUtil.ExCardState.NEED_UPDATE) {
...@@ -528,7 +529,7 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene ...@@ -528,7 +529,7 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene
public void saveDeck(Uri uri, List<Integer> mainList, List<Integer> exList, List<Integer> sideList, boolean isCompleteDeck, String exception) { public void saveDeck(Uri uri, List<Integer> mainList, List<Integer> exList, List<Integer> sideList, boolean isCompleteDeck, String exception) {
if (!TextUtils.isEmpty(exception)) { if (!TextUtils.isEmpty(exception)) {
YGOUtil.show("卡组解析失败,原因为:" + exception); YGOUtil.showTextToast("卡组解析失败,原因为:" + exception);
return; return;
} }
DialogPlus dialog = new DialogPlus(getContext()); DialogPlus dialog = new DialogPlus(getContext());
...@@ -553,7 +554,9 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene ...@@ -553,7 +554,9 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene
deckInfo.setCompleteDeck(isCompleteDeck); deckInfo.setCompleteDeck(isCompleteDeck);
File file = deckInfo.saveTemp(AppsSettings.get().getDeckDir()); File file = deckInfo.saveTemp(AppsSettings.get().getDeckDir());
if (!deckInfo.isCompleteDeck()) { if (!deckInfo.isCompleteDeck()) {
YGOUtil.show(activity.getString(R.string.tip_deckInfo_isNot_completeDeck));
YGOUtil.showTextToast(activity.getString(R.string.tip_deckInfo_isNot_completeDeck));
} }
if (!file.getAbsolutePath().isEmpty()) { if (!file.getAbsolutePath().isEmpty()) {
mBundle.putString("setDeck", file.getAbsolutePath()); mBundle.putString("setDeck", file.getAbsolutePath());
...@@ -723,13 +726,22 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene ...@@ -723,13 +726,22 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene
getFragmentManager().beginTransaction().remove(activity.fragment_deck_cards).commit(); getFragmentManager().beginTransaction().remove(activity.fragment_deck_cards).commit();
break; break;
case R.id.action_download_ex: case R.id.action_download_ex:
/*不检查先行卡设置,无论是否开启先行卡都要求能够打开先行卡页面,因此注释掉下面代码*/
// if (!AppsSettings.get().isReadExpansions()) {//如果未开启扩展卡设置,直接跳过 // if (!AppsSettings.get().isReadExpansions()) {//如果未开启扩展卡设置,直接跳过
// Toast.makeText(getActivity(), R.string.ypk_go_setting, Toast.LENGTH_LONG).show(); // Toast.makeText(getActivity(), R.string.ypk_go_setting, Toast.LENGTH_LONG).show();
// break; // break;
// } // }
/* using Web crawler to extract the information of pre card */
Intent exCardIntent = new Intent(getActivity(), ExCardActivity.class); if (ServerUtil.exCardState == ServerUtil.ExCardState.ERROR) {
startActivity(exCardIntent); WebActivity.open(getContext(), getString(R.string.action_download_expansions), Constants.URL_YGO233_ADVANCE);
LogUtil.i(TAG, "cannot connect to ex card server, open webactivity");
} else {
/* using Web crawler to extract the information of pre card */
LogUtil.i(TAG, "connect to ex card http server, open webactivity");
Intent exCardIntent = new Intent(getActivity(), ExCardActivity.class);
startActivity(exCardIntent);
}
break; break;
case R.id.action_help: { case R.id.action_help: {
final DialogPlus dialog = new DialogPlus(getContext()); final DialogPlus dialog = new DialogPlus(getContext());
......
...@@ -391,7 +391,7 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener ...@@ -391,7 +391,7 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
@Override @Override
public void onLogout(String message) { public void onLogout(String message) {
if (!TextUtils.isEmpty(message)) if (!TextUtils.isEmpty(message))
YGOUtil.show(message); YGOUtil.showTextToast(message);
serviceManagement.disSerVice(); serviceManagement.disSerVice();
} }
...@@ -435,11 +435,11 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener ...@@ -435,11 +435,11 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
HandlerUtil.sendMessage(handler, TYPE_MC_LOGIN_FAILED, exception); HandlerUtil.sendMessage(handler, TYPE_MC_LOGIN_FAILED, exception);
serviceManagement.setIsListener(false); serviceManagement.setIsListener(false);
if (exception.endsWith("not-authorized")) {//如果弹这个exception基本上是账号没验证邮箱 if (exception.endsWith("not-authorized")) {//如果弹这个exception基本上是账号没验证邮箱
YGOUtil.show(getString(R.string.notice_verify_email)); YGOUtil.showTextToast(getString(R.string.notice_verify_email));
} else if (exception.endsWith("No address associated with hostname")) {//如果弹这个exception有可能是未授权连接网络或者没有连接网络 } else if (exception.endsWith("No address associated with hostname")) {//如果弹这个exception有可能是未授权连接网络或者没有连接网络
YGOUtil.show(getString(R.string.tip_no_netwrok)); YGOUtil.showTextToast(getString(R.string.tip_no_netwrok));
} else { } else {
YGOUtil.show(getString(R.string.mc_chat) + getString(R.string.failed_reason) + exception); YGOUtil.showTextToast(getString(R.string.mc_chat) + getString(R.string.failed_reason) + exception);
} }
} }
} }
......
...@@ -109,13 +109,13 @@ public class MycardChatFragment extends BaseFragemnt implements ChatListener { ...@@ -109,13 +109,13 @@ public class MycardChatFragment extends BaseFragemnt implements ChatListener {
main_send.setOnClickListener(p1 -> { main_send.setOnClickListener(p1 -> {
String message = main_send_message.getText().toString().trim(); String message = main_send_message.getText().toString().trim();
if (message.equals("")) { if (message.equals("")) {
YGOUtil.show(getString(R.string.noting_to_send)); YGOUtil.showTextToast(getString(R.string.noting_to_send));
} else { } else {
try { try {
serviceManagement.sendMessage(message); serviceManagement.sendMessage(message);
main_send_message.setText(""); main_send_message.setText("");
} catch (Exception e) { } catch (Exception e) {
YGOUtil.show(getString(R.string.sending_failed)); YGOUtil.showTextToast(getString(R.string.sending_failed));
} }
} }
}); });
......
...@@ -85,7 +85,7 @@ public class ChatAdapter extends RecyclerView.Adapter<ChatAdapter.ViewHolder> { ...@@ -85,7 +85,7 @@ public class ChatAdapter extends RecyclerView.Adapter<ChatAdapter.ViewHolder> {
@Override @Override
public boolean onLongClick(View p1) { public boolean onLongClick(View p1) {
YGOUtil.copyMessage(context, cm.getMessage()); YGOUtil.copyMessage(context, cm.getMessage());
YGOUtil.show( "已复制到剪贴板"); YGOUtil.showTextToast( "已复制到剪贴板");
// TODO: Implement this method // TODO: Implement this method
return true; return true;
} }
......
package cn.garymb.ygomobile.utils;
import android.util.Log;
import cn.garymb.ygomobile.lite.BuildConfig;
public class LogUtil {
/**
* error的不判断直接输出
*
* @param tag
* @param message
*/
public static void e(String tag, String message) {
Log.e(tag, message);
}
public static void e(String tag, String message, Throwable e) {
Log.e(tag, message, e);
}
public static void w(String tag, String message) {
Log.w(tag, message);
}
public static void i(String tag, String message) {
if (BuildConfig.DEBUG) {
Log.i(tag, message);
}
}
public static void d(String tag, String message) {
if (BuildConfig.DEBUG) {
Log.d(tag, message);
}
}
public static void v(String tag, String message) {
if (BuildConfig.DEBUG) {
Log.v(tag, message);
}
}
}
\ No newline at end of file
...@@ -5,7 +5,6 @@ import static cn.garymb.ygomobile.Constants.URL_YGO233_DATAVER; ...@@ -5,7 +5,6 @@ import static cn.garymb.ygomobile.Constants.URL_YGO233_DATAVER;
import android.content.Context; import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import com.file.zip.ZipEntry; import com.file.zip.ZipEntry;
import com.file.zip.ZipFile; import com.file.zip.ZipFile;
...@@ -34,6 +33,8 @@ import okhttp3.Callback; ...@@ -34,6 +33,8 @@ import okhttp3.Callback;
import okhttp3.Response; import okhttp3.Response;
public class ServerUtil { public class ServerUtil {
private static final String TAG = ServerUtil.class.getSimpleName();
public enum ExCardState { public enum ExCardState {
/* 已安装最新版扩展卡,扩展卡不是最新版本,无法查询到服务器版本 */ /* 已安装最新版扩展卡,扩展卡不是最新版本,无法查询到服务器版本 */
UPDATED, NEED_UPDATE, ERROR UPDATED, NEED_UPDATE, ERROR
...@@ -63,16 +64,16 @@ public class ServerUtil { ...@@ -63,16 +64,16 @@ public class ServerUtil {
*/ */
public static void initExCardState() { public static void initExCardState() {
String oldVer = SharedPreferenceUtil.getExpansionDataVer(); String oldVer = SharedPreferenceUtil.getExpansionDataVer();
Log.i("webCrawler", "server util, old pre-card version:" + oldVer); LogUtil.i(TAG, "server util, old pre-card version:" + oldVer);
OkhttpUtil.get(URL_YGO233_DATAVER, new Callback() { OkhttpUtil.get(URL_YGO233_DATAVER, new Callback() {
@Override @Override
public void onFailure(Call call, IOException e) { public void onFailure(Call call, IOException e) {
exCardState = ExCardState.ERROR; exCardState = ExCardState.ERROR;
serverExCardVersion = ""; serverExCardVersion = "";
Log.i(BuildConfig.VERSION_NAME, "error" + e); LogUtil.e(TAG, BuildConfig.VERSION_NAME);
Log.i("webCrawler", "network failed, pre-card version:" + exCardState); LogUtil.i(TAG, "network failed, pre-card version:" + exCardState);
if (failCounter < 3) { if (failCounter < 10) {
Log.i("webCrawler", "network failed, retry fetch pre-card version:"); LogUtil.i(TAG, "network failed, retry fetch pre-card version:");
failCounter++; failCounter++;
initExCardState(); initExCardState();
} }
...@@ -84,7 +85,7 @@ public class ServerUtil { ...@@ -84,7 +85,7 @@ public class ServerUtil {
String newVer = response.body().string(); String newVer = response.body().string();
serverExCardVersion = newVer; serverExCardVersion = newVer;
Log.i("webCrawler", "ServerUtil fetch pre-card version:" + newVer); LogUtil.i(TAG, "ServerUtil fetch pre-card version:" + newVer);
if (!TextUtils.isEmpty(newVer)) { if (!TextUtils.isEmpty(newVer)) {
if (!newVer.equals(oldVer)) {//如果oldVer为null,也会触发 if (!newVer.equals(oldVer)) {//如果oldVer为null,也会触发
...@@ -101,15 +102,16 @@ public class ServerUtil { ...@@ -101,15 +102,16 @@ public class ServerUtil {
} }
}); });
} }
/** /**
* 解析zip或者ypk的file下内置的txt文件里的服务器name、host、prot * 解析zip或者ypk的file下内置的txt文件里的服务器name、host、prot
* *
* @param context * @param context
* @param file * @param file
*/ */
public static void loadServerInfoFromZipOrYpk (Context context, File file) { public static void loadServerInfoFromZipOrYpk(Context context, File file) {
if (file.getName().endsWith(".zip") || file.getName().endsWith(".ypk")) { if (file.getName().endsWith(".zip") || file.getName().endsWith(".ypk")) {
Log.e("GameUriManager", "读取压缩包"); LogUtil.e("GameUriManager", "读取压缩包");
try { try {
String serverName = null, serverHost = null, serverPort = null; String serverName = null, serverHost = null, serverPort = null;
ZipFile zipFile = new ZipFile(file.getAbsoluteFile(), "GBK"); ZipFile zipFile = new ZipFile(file.getAbsoluteFile(), "GBK");
...@@ -127,15 +129,15 @@ public class ServerUtil { ...@@ -127,15 +129,15 @@ public class ServerUtil {
scanner.close(); scanner.close();
serverName = content.substring(0, content.indexOf("|")); serverName = content.substring(0, content.indexOf("|"));
serverHost = content.substring(content.indexOf("|") + 1, content.indexOf(":")); serverHost = content.substring(content.indexOf("|") + 1, content.indexOf(":"));
serverPort = content.substring(content.indexOf(":") + 1,content.lastIndexOf("|")); serverPort = content.substring(content.indexOf(":") + 1, content.lastIndexOf("|"));
} }
} }
} }
AddServer(context, serverName, serverHost, Integer.valueOf(serverPort),"Knight of Hanoi"); AddServer(context, serverName, serverHost, Integer.valueOf(serverPort), "Knight of Hanoi");
Log.w("看看", serverName + "/" + serverHost + "/" + serverPort); LogUtil.w("看看", serverName + "/" + serverHost + "/" + serverPort);
zipFile.close(); zipFile.close();
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
...@@ -196,7 +198,7 @@ public class ServerUtil { ...@@ -196,7 +198,7 @@ public class ServerUtil {
/** /**
* 将最新的服务器列表存储到本地文件server_list.xml中 * 将最新的服务器列表存储到本地文件server_list.xml中
*/ */
public static void saveItems(Context context, File xmlFile,List<ServerInfo> serverInfos) { public static void saveItems(Context context, File xmlFile, List<ServerInfo> serverInfos) {
OutputStream outputStream = null; OutputStream outputStream = null;
try { try {
outputStream = new FileOutputStream(xmlFile); outputStream = new FileOutputStream(xmlFile);
......
...@@ -9,7 +9,6 @@ import android.text.Editable; ...@@ -9,7 +9,6 @@ import android.text.Editable;
import android.text.InputType; import android.text.InputType;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.util.Log;
import android.view.Gravity; import android.view.Gravity;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.View; import android.view.View;
...@@ -169,7 +168,7 @@ public class YGODialogUtil { ...@@ -169,7 +168,7 @@ public class YGODialogUtil {
try { try {
deckList.addAll(0, DeckUtil.getExpansionsDeckList());//置顶ypk缓存的cacheDeck下的先行卡ydk deckList.addAll(0, DeckUtil.getExpansionsDeckList());//置顶ypk缓存的cacheDeck下的先行卡ydk
} catch (IOException e) { } catch (IOException e) {
YGOUtil.show("额外卡库加载失败,原因为" + e); YGOUtil.showTextToast("额外卡库加载失败,原因为" + e);
} }
} }
} }
...@@ -188,7 +187,7 @@ public class YGODialogUtil { ...@@ -188,7 +187,7 @@ public class YGODialogUtil {
try { try {
deckList.addAll(0, DeckUtil.getExpansionsDeckList()); deckList.addAll(0, DeckUtil.getExpansionsDeckList());
} catch (IOException e) { } catch (IOException e) {
YGOUtil.show("额外卡库加载失败,原因为" + e); YGOUtil.showTextToast("额外卡库加载失败,原因为" + e);
} }
} }
} }
...@@ -316,7 +315,7 @@ public class YGODialogUtil { ...@@ -316,7 +315,7 @@ public class YGODialogUtil {
builder.setLeftButtonListener((dlg, s) -> { builder.setLeftButtonListener((dlg, s) -> {
CharSequence catename = editText.getText(); CharSequence catename = editText.getText();
if (TextUtils.isEmpty(catename)) { if (TextUtils.isEmpty(catename)) {
YGOUtil.show(context.getString(R.string.invalid_category_name)); YGOUtil.showTextToast(context.getString(R.string.invalid_category_name));
return; return;
} }
File file = new File(AppsSettings.get().getDeckDir(), catename.toString()); File file = new File(AppsSettings.get().getDeckDir(), catename.toString());
...@@ -325,7 +324,7 @@ public class YGODialogUtil { ...@@ -325,7 +324,7 @@ public class YGODialogUtil {
typeAdp.notifyItemInserted(typeList.size() - 1); typeAdp.notifyItemInserted(typeList.size() - 1);
dlg.dismiss(); dlg.dismiss();
} else { } else {
YGOUtil.show(context.getString(R.string.create_new_failed)); YGOUtil.showTextToast(context.getString(R.string.create_new_failed));
} }
}); });
builder.show(); builder.show();
...@@ -370,7 +369,7 @@ public class YGODialogUtil { ...@@ -370,7 +369,7 @@ public class YGODialogUtil {
} }
deckList.remove(deckFile); deckList.remove(deckFile);
} }
YGOUtil.show(context.getString(R.string.done)); YGOUtil.showTextToast(context.getString(R.string.done));
onDeckMenuListener.onDeckMove(deckAdp.getSelectList(), toType); onDeckMenuListener.onDeckMove(deckAdp.getSelectList(), toType);
clearDeckSelect(); clearDeckSelect();
dialog.dismiss(); dialog.dismiss();
...@@ -405,7 +404,7 @@ public class YGODialogUtil { ...@@ -405,7 +404,7 @@ public class YGODialogUtil {
e.printStackTrace(); e.printStackTrace();
} }
} }
YGOUtil.show(context.getString(R.string.done)); YGOUtil.showTextToast(context.getString(R.string.done));
onDeckMenuListener.onDeckCopy(deckAdp.getSelectList(), toType); onDeckMenuListener.onDeckCopy(deckAdp.getSelectList(), toType);
clearDeckSelect(); clearDeckSelect();
dialog.dismiss(); dialog.dismiss();
...@@ -417,7 +416,7 @@ public class YGODialogUtil { ...@@ -417,7 +416,7 @@ public class YGODialogUtil {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (deckAdp.getSelectList().size() == 0) { if (deckAdp.getSelectList().size() == 0) {
YGOUtil.show(context.getString(R.string.no_deck_is_selected)); YGOUtil.showTextToast(context.getString(R.string.no_deck_is_selected));
return; return;
} }
DialogPlus dialogPlus = new DialogPlus(context); DialogPlus dialogPlus = new DialogPlus(context);
...@@ -432,7 +431,7 @@ public class YGODialogUtil { ...@@ -432,7 +431,7 @@ public class YGODialogUtil {
deckFile.getPathFile().delete(); deckFile.getPathFile().delete();
deckList.remove(deckFile); deckList.remove(deckFile);
} }
YGOUtil.show(context.getString(R.string.done)); YGOUtil.showTextToast(context.getString(R.string.done));
dialogPlus.dismiss(); dialogPlus.dismiss();
onDeckMenuListener.onDeckDel(selectDeckList); onDeckMenuListener.onDeckDel(selectDeckList);
clearDeckSelect(); clearDeckSelect();
...@@ -478,7 +477,7 @@ public class YGODialogUtil { ...@@ -478,7 +477,7 @@ public class YGODialogUtil {
} }
} }
IOUtils.delete(file); IOUtils.delete(file);
YGOUtil.show(context.getString(R.string.done)); YGOUtil.showTextToast(context.getString(R.string.done));
onDeckMenuListener.onDeckDel(deckFileList); onDeckMenuListener.onDeckDel(deckFileList);
typeAdp.remove(positon); typeAdp.remove(positon);
if (typeAdp.getSelectPosition() == positon) { if (typeAdp.getSelectPosition() == positon) {
......
...@@ -25,7 +25,7 @@ import cn.garymb.ygomobile.ui.plus.DialogPlus; ...@@ -25,7 +25,7 @@ import cn.garymb.ygomobile.ui.plus.DialogPlus;
public class YGOUtil { public class YGOUtil {
//提示 //提示
public static void show(String message) { public static void showTextToast(String message) {
Toast.makeText(App.get(), message, Toast.LENGTH_SHORT).show(); Toast.makeText(App.get(), message, Toast.LENGTH_SHORT).show();
} }
......
...@@ -26,7 +26,6 @@ import java.util.zip.ZipInputStream; ...@@ -26,7 +26,6 @@ import java.util.zip.ZipInputStream;
import cn.garymb.ygomobile.App; import cn.garymb.ygomobile.App;
import cn.garymb.ygomobile.AppsSettings; import cn.garymb.ygomobile.AppsSettings;
import cn.garymb.ygomobile.core.IrrlichtBridge;
import cn.garymb.ygomobile.utils.IOUtils; import cn.garymb.ygomobile.utils.IOUtils;
import ocgcore.data.Card; import ocgcore.data.Card;
...@@ -36,7 +35,7 @@ public class CardManager { ...@@ -36,7 +35,7 @@ public class CardManager {
private final SparseArray<Card> cardDataHashMap = new SparseArray<>(); private final SparseArray<Card> cardDataHashMap = new SparseArray<>();
private final String dbDir; private final String dbDir;
private final String exDbPath; private final String exDbPath;
private static final String TAG = IrrlichtBridge.TAG; private static final String TAG = String.valueOf(CardManager.class);
/** /**
* @see DataManager#getCardManager() * @see DataManager#getCardManager()
...@@ -119,7 +118,7 @@ public class CardManager { ...@@ -119,7 +118,7 @@ public class CardManager {
public Card getCard(int code) { public Card getCard(int code) {
Card card = cardDataHashMap.get(code); Card card = cardDataHashMap.get(code);
if(card == null){ if (card == null) {
card = new Card(code); card = new Card(code);
cardDataHashMap.put(code, new Card(code)); cardDataHashMap.put(code, new Card(code));
return card; return card;
...@@ -179,7 +178,7 @@ public class CardManager { ...@@ -179,7 +178,7 @@ public class CardManager {
int N = getCount(); int N = getCount();
for (int i = 0; i < N; i++) { for (int i = 0; i < N; i++) {
Card c = cardDataHashMap.valueAt(i); Card c = cardDataHashMap.valueAt(i);
if(c.Alias == 0){ if (c.Alias == 0) {
continue; continue;
} }
//规则同名,或者多图同名 //规则同名,或者多图同名
...@@ -188,8 +187,8 @@ public class CardManager { ...@@ -188,8 +187,8 @@ public class CardManager {
if (c.isSame(alias)) { if (c.isSame(alias)) {
//多图同名,它们属性必定是一致 //多图同名,它们属性必定是一致
c.setRealCode(alias.Code); c.setRealCode(alias.Code);
} else if(Math.abs(c.Alias - c.Code) <= 10){ } else if (Math.abs(c.Alias - c.Code) <= 10) {
Log.w(TAG, c.Name + ":" + c.Code + " is same card "+c.Alias); Log.w(TAG, c.Name + ":" + c.Code + " is same card " + c.Alias);
} }
} }
} }
......
package ocgcore; package ocgcore;
import cn.garymb.ygomobile.AppsSettings; import cn.garymb.ygomobile.AppsSettings;
import cn.garymb.ygomobile.ex_card.ExCardListAdapter;
import cn.garymb.ygomobile.loader.CardLoader; import cn.garymb.ygomobile.loader.CardLoader;
/**
* 单例模式,使用get()方式自动获取单例
*/
public class DataManager { public class DataManager {
private static DataManager sLoader = null; private static DataManager sLoader = null;
private static final String TAG = String.valueOf(DataManager.class);
public static DataManager get() { public static DataManager get() {
if (sLoader != null) { if (sLoader != null) {
return sLoader; return sLoader;
......
...@@ -5,6 +5,13 @@ import java.util.List; ...@@ -5,6 +5,13 @@ import java.util.List;
import ocgcore.enums.LimitType; import ocgcore.enums.LimitType;
/**
* 用于存储禁止卡、限制卡、准限制卡
* 本类功能包括:
* 1设置禁止卡、限制卡、准限制卡
* 2读取禁止卡、限制卡、准限制卡
* 3判断某张卡是否属于禁止卡、限制卡、准限制卡
*/
public class LimitList { public class LimitList {
private String name = "?"; private String name = "?";
/** /**
...@@ -109,6 +116,13 @@ public class LimitList { ...@@ -109,6 +116,13 @@ public class LimitList {
return check(cardInfo.Code, cardInfo.Alias, type); return check(cardInfo.Code, cardInfo.Alias, type);
} }
/**
* 判断入参code或alias对应的卡片是否属于限制类型x,x由type确定
* @param code
* @param alias
* @param type
* @return
*/
public boolean check(Integer code, Integer alias, LimitType type) { public boolean check(Integer code, Integer alias, LimitType type) {
if (type == LimitType.All) { if (type == LimitType.All) {
getCodeList(); getCodeList();
......
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