Commit 330a3543 authored by fallenstardust's avatar fallenstardust

竖屏卡组删除搜索结果的禁卡表控制功能,统一在筛选条件的禁卡表选择上进行切换

添加禁卡表选择点击监听:每次重新刷新禁卡表以便新导入的禁卡表可以被读取
DataManager每次都强制重读配置文本
parent 348adfe4
...@@ -245,7 +245,7 @@ public class GameUriManager { ...@@ -245,7 +245,7 @@ public class GameUriManager {
activity.startActivity(startSetting);//todo ??再次打开MainActivity? activity.startActivity(startSetting);//todo ??再次打开MainActivity?
YGOUtil.showTextToast(activity.getString(R.string.start_game_error), Toast.LENGTH_LONG); YGOUtil.showTextToast(activity.getString(R.string.start_game_error), Toast.LENGTH_LONG);
} else { } else {
DataManager.get().load(true); DataManager.get().load();
YGOUtil.showTextToast(activity.getString(R.string.ypk_installed), Toast.LENGTH_LONG); YGOUtil.showTextToast(activity.getString(R.string.ypk_installed), Toast.LENGTH_LONG);
loadServerInfoFromZipOrYpk(getActivity(), file); loadServerInfoFromZipOrYpk(getActivity(), file);
//ypk不与excard机制相干涉 //ypk不与excard机制相干涉
...@@ -266,7 +266,7 @@ public class GameUriManager { ...@@ -266,7 +266,7 @@ public class GameUriManager {
Log.w(Constants.TAG, "game is running"); Log.w(Constants.TAG, "game is running");
} }
} else if (isConf) { } else if (isConf) {
DataManager.get().load(true); DataManager.get().load();
YGOUtil.showTextToast(activity.getString(R.string.restart_app), Toast.LENGTH_LONG); YGOUtil.showTextToast(activity.getString(R.string.restart_app), Toast.LENGTH_LONG);
} }
} else { } else {
......
...@@ -218,7 +218,7 @@ public class ExCardListFragment extends Fragment { ...@@ -218,7 +218,7 @@ public class ExCardListFragment extends Fragment {
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();
YGOUtil.showTextToast(getString(R.string.ypk_installed)); YGOUtil.showTextToast(getString(R.string.ypk_installed));
......
...@@ -88,7 +88,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener, O ...@@ -88,7 +88,7 @@ public class WebActivity extends BaseActivity implements View.OnClickListener, O
YGOUtil.showTextToast(Gravity.TOP, getString(R.string.tip_download_OK) + getString(R.string.replay_list), Toast.LENGTH_SHORT); YGOUtil.showTextToast(Gravity.TOP, getString(R.string.tip_download_OK) + getString(R.string.replay_list), Toast.LENGTH_SHORT);
} else if (msg.obj.toString().endsWith(Constants.YPK_FILE_EX) || msg.obj.toString().endsWith(Constants.CORE_LIMIT_PATH)) { } else if (msg.obj.toString().endsWith(Constants.YPK_FILE_EX) || msg.obj.toString().endsWith(Constants.CORE_LIMIT_PATH)) {
YGOUtil.showTextToast(Gravity.TOP, getString(R.string.ypk_installed) + getString(R.string.restart_app), Toast.LENGTH_SHORT); YGOUtil.showTextToast(Gravity.TOP, getString(R.string.ypk_installed) + getString(R.string.restart_app), Toast.LENGTH_SHORT);
DataManager.get().load(true); DataManager.get().load();
} else { } else {
YGOUtil.showTextToast(Gravity.TOP, getString(R.string.tip_download_OK) + AppsSettings.get().getResourcePath(), Toast.LENGTH_LONG); YGOUtil.showTextToast(Gravity.TOP, getString(R.string.tip_download_OK) + AppsSettings.get().getResourcePath(), Toast.LENGTH_LONG);
} }
......
...@@ -107,7 +107,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB ...@@ -107,7 +107,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
setListeners(); setListeners();
DialogPlus dlg = DialogPlus.show(getContext(), null, getString(R.string.loading)); DialogPlus dlg = DialogPlus.show(getContext(), null, getString(R.string.loading));
VUiKit.defer().when(() -> { VUiKit.defer().when(() -> {
DataManager.get().load(true); DataManager.get().load();
if (activity.getmLimitManager().getCount() > 0) { if (activity.getmLimitManager().getCount() > 0) {
mCardLoader.setLimitList(activity.getmLimitManager().getTopLimit()); mCardLoader.setLimitList(activity.getmLimitManager().getTopLimit());
} }
......
...@@ -13,7 +13,6 @@ import android.widget.Button; ...@@ -13,7 +13,6 @@ import android.widget.Button;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.CompoundButton; import android.widget.CompoundButton;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Spinner; import android.widget.Spinner;
import android.widget.TextView.OnEditorActionListener; import android.widget.TextView.OnEditorActionListener;
...@@ -126,7 +125,7 @@ public class CardSearcher implements View.OnClickListener { ...@@ -126,7 +125,7 @@ public class CardSearcher implements View.OnClickListener {
}; };
keyWord.setOnEditorActionListener(searchListener); keyWord.setOnEditorActionListener(searchListener);
chk_multi_keyword.setChecked(mSettings.getKeyWordsSplit() == 0 ? false : true); chk_multi_keyword.setChecked(mSettings.getKeyWordsSplit() != 0);
chk_multi_keyword.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { chk_multi_keyword.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override @Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
......
...@@ -167,7 +167,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -167,7 +167,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
private TextView tv_credit_count; private TextView tv_credit_count;
private TextView tv_credit_limit; private TextView tv_credit_limit;
private TextView tv_credit_remain; private TextView tv_credit_remain;
private AppCompatSpinner mLimitSpinner; private AppCompatSpinner mCardSearchLimitSpinner;
private CardDetail mCardDetail; private CardDetail mCardDetail;
private DialogPlus mDialog; private DialogPlus mDialog;
private DialogPlus builderShareLoading; private DialogPlus builderShareLoading;
...@@ -261,9 +261,9 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -261,9 +261,9 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
tv_deck = layoutView.findViewById(R.id.tv_deck); tv_deck = layoutView.findViewById(R.id.tv_deck);
tv_result_count = layoutView.findViewById(R.id.result_count); tv_result_count = layoutView.findViewById(R.id.result_count);
// 初始化限制条件选择下拉框并设置背景颜色 // 初始化右侧抽屉的条件搜索禁卡表下拉框并设置背景颜色
mLimitSpinner = layoutView.findViewById(R.id.sp_limit_list); mCardSearchLimitSpinner = layoutView.findViewById(R.id.nav_view_list).findViewById(R.id.sp_limit_list);
mLimitSpinner.setPopupBackgroundResource(R.color.colorNavy); mCardSearchLimitSpinner.setPopupBackgroundResource(R.color.colorNavy);
// 初始化网格形式的卡组显示区域 // 初始化网格形式的卡组显示区域
mRecyclerView = layoutView.findViewById(R.id.grid_cards); mRecyclerView = layoutView.findViewById(R.id.grid_cards);
...@@ -631,7 +631,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -631,7 +631,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
VUiKit.defer().when(() -> { VUiKit.defer().when(() -> {
// 加载数据管理器 // 加载数据管理器
DataManager.get().load(true); DataManager.get().load();
// 设置限制卡表列表,使用第一个可用的限制列表 // 设置限制卡表列表,使用第一个可用的限制列表
if (activity.getmLimitManager().getCount() > 0) { if (activity.getmLimitManager().getCount() > 0) {
...@@ -643,7 +643,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -643,7 +643,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
if (file == null || !file.exists()) { if (file == null || !file.exists()) {
// 当默认卡组不存在的时候,尝试获取其他可用的ydk文件 // 当默认卡组不存在的时候,尝试获取其他可用的ydk文件
List<File> files = getYdkFiles(); List<File> files = getYdkFiles();
if (files != null && files.size() > 0) { if (files != null && !files.isEmpty()) {
file = files.get(0); file = files.get(0);
} }
} }
...@@ -666,7 +666,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -666,7 +666,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
isLoad = true; isLoad = true;
dlg.dismiss(); dlg.dismiss();
mCardSearcher.initItems(); mCardSearcher.initItems();
initLimitListSpinners(mLimitSpinner, mCardLoader.getLimitList()); initLimitListSpinners(mCardSearchLimitSpinner, mCardLoader.getLimitList());
// 根据资源路径判断是否进入卡包展示模式 // 根据资源路径判断是否进入卡包展示模式
if (rs != null && rs.source != null) { if (rs != null && rs.source != null) {
String parentPath = rs.source.getParent(); String parentPath = rs.source.getParent();
...@@ -836,7 +836,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -836,7 +836,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
private void refreshDeckCreditCount() { private void refreshDeckCreditCount() {
LimitList limitList = mDeckAdapater.getLimitList(); LimitList limitList = mDeckAdapater.getLimitList();
int currentCredit = 0 ; int currentCredit = 0;
int creditLimit = 0; int creditLimit = 0;
int difference = 0; int difference = 0;
// 检查是否有有效的信用分限制 // 检查是否有有效的信用分限制
...@@ -1612,6 +1612,12 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -1612,6 +1612,12 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
* @param cur 当前选中的限制列表对象,用于设置默认选中项 * @param cur 当前选中的限制列表对象,用于设置默认选中项
*/ */
private void initLimitListSpinners(Spinner spinner, LimitList cur) { private void initLimitListSpinners(Spinner spinner, LimitList cur) {
// 首先清除所有现有的item
if (spinner.getAdapter() != null && spinner.getAdapter() instanceof SimpleSpinnerAdapter) {
((SimpleSpinnerAdapter) spinner.getAdapter()).clear();
DataManager.get().getLimitManager().load();
}
List<SimpleSpinnerItem> items = new ArrayList<>(); List<SimpleSpinnerItem> items = new ArrayList<>();
List<String> limitLists = activity.getmLimitManager().getLimitNames(); List<String> limitLists = activity.getmLimitManager().getLimitNames();
int index = -1; int index = -1;
...@@ -1624,6 +1630,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -1624,6 +1630,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
int j = i + 1; int j = i + 1;
String name = limitLists.get(i); String name = limitLists.get(i);
LogUtil.w(TAG, i + ":" +"卡表名称:" + name);
items.add(new SimpleSpinnerItem(j, name)); items.add(new SimpleSpinnerItem(j, name));
if (cur != null && TextUtils.equals(cur.getName(), name)) { if (cur != null && TextUtils.equals(cur.getName(), name)) {
index = j; index = j;
...@@ -1653,6 +1660,16 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -1653,6 +1660,16 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
} }
}); });
spinner.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
// 重新初始化spinner
initLimitListSpinners(spinner, cur);
}
return false;
}
});
} }
/** /**
......
...@@ -27,6 +27,8 @@ import android.os.Message; ...@@ -27,6 +27,8 @@ import android.os.Message;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import androidx.annotation.NonNull;
import java.io.File; import java.io.File;
import java.io.FilenameFilter; import java.io.FilenameFilter;
import java.io.IOException; import java.io.IOException;
...@@ -60,7 +62,7 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> { ...@@ -60,7 +62,7 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> {
Handler han = new Handler() { Handler han = new Handler() {
@Override @Override
public void handleMessage(Message msg) { public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg); super.handleMessage(msg);
switch (msg.what) { switch (msg.what) {
case 0: case 0:
...@@ -421,7 +423,7 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> { ...@@ -421,7 +423,7 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> {
private void loadData() { private void loadData() {
setMessage(mContext.getString(R.string.loading)); setMessage(mContext.getString(R.string.loading));
DataManager.get().load(false); DataManager.get().load();
} }
void copyCdbFile(String assetPath, boolean needsUpdate) throws IOException { void copyCdbFile(String assetPath, boolean needsUpdate) throws IOException {
...@@ -521,7 +523,7 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> { ...@@ -521,7 +523,7 @@ public class ResCheckTask extends AsyncTask<Void, Integer, Integer> {
mSettings.getDataBasePath() + "/" + DATABASE_NAME, mSettings.getDataBasePath() + "/" + DATABASE_NAME,
mSettings.getResourcePath() + "/" + CORE_BOT_CONF_PATH); mSettings.getResourcePath() + "/" + CORE_BOT_CONF_PATH);
} catch (Throwable e) { } catch (Throwable e) {
e.printStackTrace(); LogUtil.e(TAG, "init windbot error " + e.getMessage());
} }
IntentFilter filter = new IntentFilter(); IntentFilter filter = new IntentFilter();
filter.addAction("RUN_WINDBOT"); filter.addAction("RUN_WINDBOT");
......
...@@ -116,7 +116,7 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener ...@@ -116,7 +116,7 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
YGOUtil.showTextToast(Gravity.TOP, getString(R.string.tip_download_OK) + getString(R.string.replay_list), Toast.LENGTH_SHORT); YGOUtil.showTextToast(Gravity.TOP, getString(R.string.tip_download_OK) + getString(R.string.replay_list), Toast.LENGTH_SHORT);
} else if (msg.obj.toString().endsWith(Constants.YPK_FILE_EX) || msg.obj.toString().endsWith(Constants.CORE_LIMIT_PATH)) { } else if (msg.obj.toString().endsWith(Constants.YPK_FILE_EX) || msg.obj.toString().endsWith(Constants.CORE_LIMIT_PATH)) {
YGOUtil.showTextToast(Gravity.TOP, getString(R.string.ypk_installed) + getString(R.string.restart_app), Toast.LENGTH_SHORT); YGOUtil.showTextToast(Gravity.TOP, getString(R.string.ypk_installed) + getString(R.string.restart_app), Toast.LENGTH_SHORT);
DataManager.get().load(true); DataManager.get().load();
} else { } else {
YGOUtil.showTextToast(Gravity.TOP, getString(R.string.tip_download_OK) + AppsSettings.get().getResourcePath(), Toast.LENGTH_LONG); YGOUtil.showTextToast(Gravity.TOP, getString(R.string.tip_download_OK) + AppsSettings.get().getResourcePath(), Toast.LENGTH_LONG);
} }
......
...@@ -196,7 +196,7 @@ public class SettingFragment extends PreferenceFragmentPlus { ...@@ -196,7 +196,7 @@ public class SettingFragment extends PreferenceFragmentPlus {
//如果是设置额外卡库的选项 //如果是设置额外卡库的选项
if (preference.getKey().equals(PREF_READ_EX)) { if (preference.getKey().equals(PREF_READ_EX)) {
//设置使用额外卡库后重新加载卡片数据 //设置使用额外卡库后重新加载卡片数据
DataManager.get().load(true); DataManager.get().load();
EventBus.getDefault().postSticky(new ExCardEvent(ExCardEvent.EventType.exCardPrefChange)); EventBus.getDefault().postSticky(new ExCardEvent(ExCardEvent.EventType.exCardPrefChange));
//ServerUtil.initExCardState(); //ServerUtil.initExCardState();
} }
...@@ -258,7 +258,7 @@ public class SettingFragment extends PreferenceFragmentPlus { ...@@ -258,7 +258,7 @@ public class SettingFragment extends PreferenceFragmentPlus {
} }
mSettings.setDataLanguage(Integer.valueOf(listPreference.getValue())); mSettings.setDataLanguage(Integer.valueOf(listPreference.getValue()));
YGOUtil.showTextToast(R.string.restart_app, Toast.LENGTH_LONG); YGOUtil.showTextToast(R.string.restart_app, Toast.LENGTH_LONG);
DataManager.get().load(true); DataManager.get().load();
} }
mSharedPreferences.edit().putString(preference.getKey(), listPreference.getValue()).apply(); mSharedPreferences.edit().putString(preference.getKey(), listPreference.getValue()).apply();
} else { } else {
...@@ -334,7 +334,7 @@ public class SettingFragment extends PreferenceFragmentPlus { ...@@ -334,7 +334,7 @@ public class SettingFragment extends PreferenceFragmentPlus {
simpleListAdapter.remove(pos); simpleListAdapter.remove(pos);
simpleListAdapter.notifyDataSetChanged(); simpleListAdapter.notifyDataSetChanged();
FileUtils.delFile(mSettings.getExpansionsPath().getAbsolutePath() + "/" + name); FileUtils.delFile(mSettings.getExpansionsPath().getAbsolutePath() + "/" + name);
DataManager.get().load(true); DataManager.get().load();
YGOUtil.showTextToast(R.string.done, Toast.LENGTH_LONG); YGOUtil.showTextToast(R.string.done, Toast.LENGTH_LONG);
if (name.contains(Constants.officialExCardPackageName)) {//如果删除的是官方先行卡ypk,则更新其相关UI状态 if (name.contains(Constants.officialExCardPackageName)) {//如果删除的是官方先行卡ypk,则更新其相关UI状态
SharedPreferenceUtil.setExpansionDataVer(null);//删除先行卡后,更新版本状态 SharedPreferenceUtil.setExpansionDataVer(null);//删除先行卡后,更新版本状态
......
...@@ -48,11 +48,11 @@ public class DataManager { ...@@ -48,11 +48,11 @@ public class DataManager {
} }
private boolean mInit; private boolean mInit;
public void load(boolean force) { public void load() {
//LogUtil.i("webCrawler", "DataManager load data"); //LogUtil.i("webCrawler", "DataManager load data");
boolean needLoad = false; boolean needLoad = false;
synchronized (this) { synchronized (this) {
if (!mInit || force) { if (!mInit) {
needLoad = true; needLoad = true;
} }
mInit = true; mInit = true;
......
...@@ -77,6 +77,9 @@ public class LimitManager implements Closeable { ...@@ -77,6 +77,9 @@ public class LimitManager implements Closeable {
* @return boolean 加载成功返回true,否则返回false * @return boolean 加载成功返回true,否则返回false
*/ */
public boolean load() { public boolean load() {
// 清理旧数据,不让缓存干扰读取结果
mLimitLists.clear();
mLimitNames.clear();
// 创建主资源路径下的限制文件对象 // 创建主资源路径下的限制文件对象
File stringFile = new File(AppsSettings.get().getResourcePath(), Constants.CORE_LIMIT_PATH); File stringFile = new File(AppsSettings.get().getResourcePath(), Constants.CORE_LIMIT_PATH);
boolean rs1 = true; boolean rs1 = true;
...@@ -104,7 +107,7 @@ public class LimitManager implements Closeable { ...@@ -104,7 +107,7 @@ public class LimitManager implements Closeable {
} }
} }
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); LogUtil.e("LimitManager", "读取压缩包失败", e);
res3 = false; res3 = false;
} }
} }
...@@ -116,6 +119,7 @@ public class LimitManager implements Closeable { ...@@ -116,6 +119,7 @@ public class LimitManager implements Closeable {
mLimitLists.put("N/A", blank_list); mLimitLists.put("N/A", blank_list);
mLimitNames.add("N/A"); mLimitNames.add("N/A");
++mCount; ++mCount;
Log.e("加载情况","rs1="+rs1+" rs2="+rs2+" res3="+res3);
return rs1 && rs2 && res3; return rs1 && rs2 && res3;
} }
...@@ -194,6 +198,7 @@ public class LimitManager implements Closeable { ...@@ -194,6 +198,7 @@ public class LimitManager implements Closeable {
// 更新限制列表计数 // 更新限制列表计数
mCount = mLimitLists.size(); mCount = mLimitLists.size();
Log.e("LimitManager", "限制列表数量:" + mCount);
return true; return true;
} }
......
...@@ -418,21 +418,6 @@ ...@@ -418,21 +418,6 @@
android:orientation="horizontal" android:orientation="horizontal"
android:paddingLeft="10dp"> android:paddingLeft="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/label_limitlist"
android:textColor="@color/holo_blue_light" />
<androidx.appcompat.widget.AppCompatSpinner
android:id="@+id/sp_limit_list"
android:layout_width="wrap_content"
android:layout_height="@dimen/item_height"
android:layout_weight="1"
android:ellipsize="end"
android:gravity="fill_horizontal" />
<TextView <TextView
android:id="@+id/result_count" android:id="@+id/result_count"
android:layout_width="wrap_content" android:layout_width="wrap_content"
......
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