Commit eff384e6 authored by fallenstardust's avatar fallenstardust

第一次初始化limitManager时因为getLastLimit值还是null,则设置topLimit为禁卡表

parent 7fc4c123
...@@ -745,7 +745,8 @@ public class AppsSettings { ...@@ -745,7 +745,8 @@ public class AppsSettings {
public void saveSettings(String key, String value) { public void saveSettings(String key, String value) {
if ("lastdeck".equals(key)) mSharedPreferences.putString(Constants.PREF_LAST_YDK, value); if ("lastdeck".equals(key)) mSharedPreferences.putString(Constants.PREF_LAST_YDK, value);
if ("lastcategory".equals(key)) mSharedPreferences.putString(Constants.PREF_LAST_CATEGORY, value); if ("lastcategory".equals(key))
mSharedPreferences.putString(Constants.PREF_LAST_CATEGORY, value);
if ("lastLimit".equals(key)) setLastLimit(value); if ("lastLimit".equals(key)) setLastLimit(value);
mSharedPreferences.putString(Constants.PREF_START + key, value); mSharedPreferences.putString(Constants.PREF_START + key, value);
} }
......
package cn.garymb.ygomobile.loader; package cn.garymb.ygomobile.loader;
import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.SparseArray; import android.util.SparseArray;
...@@ -16,7 +15,6 @@ import cn.garymb.ygomobile.Constants; ...@@ -16,7 +15,6 @@ import cn.garymb.ygomobile.Constants;
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 cn.garymb.ygomobile.utils.LogUtil;
import cn.garymb.ygomobile.utils.SharedPreferenceUtil;
import ocgcore.CardManager; import ocgcore.CardManager;
import ocgcore.DataManager; import ocgcore.DataManager;
import ocgcore.LimitManager; import ocgcore.LimitManager;
...@@ -53,7 +51,7 @@ public class CardLoader implements ICardSearcher { ...@@ -53,7 +51,7 @@ public class CardLoader implements ICardSearcher {
mCardManager = DataManager.get().getCardManager(); mCardManager = DataManager.get().getCardManager();
// 读取上次使用的LimitList,如果有非空值存在且和禁卡表列表中有相同名称对应,则使用,否则设置第一个禁卡表 // 读取上次使用的LimitList,如果有非空值存在且和禁卡表列表中有相同名称对应,则使用,否则设置第一个禁卡表
mLimitList = mLimitManager.getLastLimit(); mLimitList = mLimitManager.getLastLimit() != null ? mLimitManager.getLastLimit() : mLimitManager.getTopLimit();
} }
@Override @Override
......
...@@ -416,32 +416,51 @@ public class CardSearcher implements View.OnClickListener { ...@@ -416,32 +416,51 @@ public class CardSearcher implements View.OnClickListener {
} }
private void initLimitListSpinners(Spinner spinner) { private void initLimitListSpinners(Spinner spinner) {
// 创建一个列表用于存储下拉选项
List<SimpleSpinnerItem> items = new ArrayList<>(); List<SimpleSpinnerItem> items = new ArrayList<>();
// 获取所有禁卡表名称列表
List<String> limits = mLimitManager.getLimitNames(); List<String> limits = mLimitManager.getLimitNames();
// 初始化选中项索引为-1(表示未选中)
int index = -1; int index = -1;
// 获取禁卡表总数
int count = mLimitManager.getCount(); int count = mLimitManager.getCount();
// 当前选中的禁卡表,初始化为null
LimitList cur = null; LimitList cur = null;
// 如果卡片搜索器不为null,则获取当前使用的禁卡表
if (mICardSearcher != null) { if (mICardSearcher != null) {
cur = mICardSearcher.getLimitList(); cur = mICardSearcher.getLimitList();
} }
// 添加默认选项"选择禁卡表"
items.add(new SimpleSpinnerItem(0, getString(R.string.label_limitlist))); items.add(new SimpleSpinnerItem(0, getString(R.string.label_limitlist)));
// 遍历所有禁卡表
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
// 计算选项索引(从1开始)
int j = i + 1; int j = i + 1;
// 获取禁卡表名称
String name = limits.get(i); String name = limits.get(i);
// 创建并添加禁卡表选项到列表
items.add(new SimpleSpinnerItem(j, name)); items.add(new SimpleSpinnerItem(j, name));
// 如果当前禁卡表不为null且名称匹配,则记录选中索引
if (cur != null && TextUtils.equals(cur.getName(), name)) { if (cur != null && TextUtils.equals(cur.getName(), name)) {
index = j; index = j;
} }
} }
// 创建适配器用于绑定数据到Spinner
SimpleSpinnerAdapter adapter = new SimpleSpinnerAdapter(mContext); SimpleSpinnerAdapter adapter = new SimpleSpinnerAdapter(mContext);
// 设置文字颜色为白色
adapter.setColor(Color.WHITE); adapter.setColor(Color.WHITE);
// 设置适配器的数据源
adapter.set(items); adapter.set(items);
// 将适配器设置给Spinner
spinner.setAdapter(adapter); spinner.setAdapter(adapter);
// 如果找到了匹配的禁卡表,则设置Spinner的选中项
Log.w(TAG, "index:" + index);
if (index >= 0) { if (index >= 0) {
spinner.setSelection(index); spinner.setSelection(index);
} }
} }
private void refreshLimitListSpinnerItems(Spinner spinner) { private void refreshLimitListSpinnerItems(Spinner spinner) {
// 首先清除所有现有的item // 首先清除所有现有的item
if (spinner.getAdapter() != null && spinner.getAdapter() instanceof SimpleSpinnerAdapter) { if (spinner.getAdapter() != null && spinner.getAdapter() instanceof SimpleSpinnerAdapter) {
......
...@@ -33,7 +33,6 @@ import android.view.View; ...@@ -33,7 +33,6 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.animation.Animation; import android.view.animation.Animation;
import android.view.animation.AnimationUtils; import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageButton; import android.widget.ImageButton;
...@@ -75,7 +74,6 @@ import java.util.ArrayList; ...@@ -75,7 +74,6 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Objects;
import cn.garymb.ygomobile.AppsSettings; import cn.garymb.ygomobile.AppsSettings;
import cn.garymb.ygomobile.Constants; import cn.garymb.ygomobile.Constants;
...@@ -93,7 +91,6 @@ import cn.garymb.ygomobile.ui.activities.BaseActivity; ...@@ -93,7 +91,6 @@ import cn.garymb.ygomobile.ui.activities.BaseActivity;
import cn.garymb.ygomobile.ui.activities.WebActivity; import cn.garymb.ygomobile.ui.activities.WebActivity;
import cn.garymb.ygomobile.ui.adapters.CardListAdapter; import cn.garymb.ygomobile.ui.adapters.CardListAdapter;
import cn.garymb.ygomobile.ui.adapters.SimpleSpinnerAdapter; import cn.garymb.ygomobile.ui.adapters.SimpleSpinnerAdapter;
import cn.garymb.ygomobile.ui.adapters.SimpleSpinnerItem;
import cn.garymb.ygomobile.ui.cards.deck.DeckAdapater; import cn.garymb.ygomobile.ui.cards.deck.DeckAdapater;
import cn.garymb.ygomobile.ui.cards.deck.DeckItem; import cn.garymb.ygomobile.ui.cards.deck.DeckItem;
import cn.garymb.ygomobile.ui.cards.deck.DeckItemTouchHelper; import cn.garymb.ygomobile.ui.cards.deck.DeckItemTouchHelper;
...@@ -839,7 +836,6 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -839,7 +836,6 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
int currentCredit = 0; int currentCredit = 0;
int creditLimit = 0; int creditLimit = 0;
// 检查并处理信用分限制逻辑
if (limitList.getCreditLimits() != null && limitList.getCreditLimits() > 0) { if (limitList.getCreditLimits() != null && limitList.getCreditLimits() > 0) {
creditLimit = limitList.getCreditLimits(); creditLimit = limitList.getCreditLimits();
currentCredit = getCreditCount(mDeckAdapater.getCurrentState()); currentCredit = getCreditCount(mDeckAdapater.getCurrentState());
...@@ -1818,7 +1814,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -1818,7 +1814,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
boolean result = DeckSquareFileUtil.saveFileToPath(dir.getPath(), fileFullName, deckData.getDeckYdk(), deckData.getDeckUpdateDate()); boolean result = DeckSquareFileUtil.saveFileToPath(dir.getPath(), fileFullName, deckData.getDeckYdk(), deckData.getDeckUpdateDate());
if (result) {//存储成功,使用预加载功能 if (result) {//存储成功,使用预加载功能
LogUtil.i(TAG, "square deck detail done"); LogUtil.i(TAG, "square deck detail done");
preLoadFile(Paths.get(dir.getPath(),fileFullName).toString()); preLoadFile(Paths.get(dir.getPath(), fileFullName).toString());
tv_add_1.setText(R.string.like_deck_thumb); tv_add_1.setText(R.string.like_deck_thumb);
ll_click_like.setVisibility(View.VISIBLE); ll_click_like.setVisibility(View.VISIBLE);
} }
......
...@@ -38,14 +38,22 @@ public class DataManager { ...@@ -38,14 +38,22 @@ public class DataManager {
AppsSettings.get().getExpansionsPath().getAbsolutePath()); AppsSettings.get().getExpansionsPath().getAbsolutePath());
} }
public StringManager getStringManager() { return mStringManager;} public StringManager getStringManager() {
public PackManager getPackManager() { return mPackManager;} return mStringManager;
}
public PackManager getPackManager() {
return mPackManager;
}
public LimitManager getLimitManager() { public LimitManager getLimitManager() {
return mLimitManager; return mLimitManager;
} }
public CardManager getCardManager() { public CardManager getCardManager() {
return mCardManager; return mCardManager;
} }
private boolean mInit; private boolean mInit;
public void load() { public void load() {
......
...@@ -4,8 +4,6 @@ package ocgcore; ...@@ -4,8 +4,6 @@ package ocgcore;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import androidx.annotation.Nullable;
import com.file.zip.ZipEntry; import com.file.zip.ZipEntry;
import com.file.zip.ZipFile; import com.file.zip.ZipFile;
...@@ -58,7 +56,7 @@ public class LimitManager implements Closeable { ...@@ -58,7 +56,7 @@ public class LimitManager implements Closeable {
return mLimitNames; return mLimitNames;
} }
public @Nullable LimitList getLimit(String name) { public LimitList getLimit(String name) {
return mLimitLists.get(name); return mLimitLists.get(name);
} }
...@@ -68,7 +66,7 @@ public class LimitManager implements Closeable { ...@@ -68,7 +66,7 @@ public class LimitManager implements Closeable {
} }
// 读取上次使用的LimitList,如果有非空值存在且和禁卡表列表中有相同名称对应,则使用,否则设置第一个禁卡表 // 读取上次使用的LimitList,如果有非空值存在且和禁卡表列表中有相同名称对应,则使用,否则设置第一个禁卡表
String lastLimitName = AppsSettings.get().getLastLimit(); String lastLimitName = AppsSettings.get().getLastLimit();
return TextUtils.isEmpty(lastLimitName) ? getTopLimit() : getLimit(lastLimitName); return lastLimitName == null || TextUtils.isEmpty(lastLimitName) ? getTopLimit() : getLimit(lastLimitName);
} }
public LimitList getTopLimit() { public LimitList getTopLimit() {
......
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