Commit eff384e6 authored by fallenstardust's avatar fallenstardust

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

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