Commit 81e1ba03 authored by qq247321453's avatar qq247321453

DataManager.get().load(true); CardManager

parent f7558728
......@@ -7,6 +7,8 @@ import android.text.TextUtils;
import android.util.Log;
import android.view.WindowManager;
import androidx.annotation.Nullable;
import org.json.JSONArray;
import java.io.File;
......@@ -46,6 +48,7 @@ import static cn.garymb.ygomobile.Constants.WINDBOT_PATH;
import static cn.garymb.ygomobile.Constants.YDK_FILE_EX;
public class AppsSettings {
private static final String TAG = "AppsSettings";
private static final String PREF_VERSION = "app_version";
private static AppsSettings sAppsSettings;
private final Point mScreenSize = new Point();
......@@ -515,7 +518,7 @@ public class AppsSettings {
}
//获得最后卡组绝对路径
public String getLastDeckPath() {
public @Nullable String getLastDeckPath() {
String path;
if (TextUtils.equals(context.getString(R.string.category_pack), getLastCategory())) {
path = getResourcePath() + "/" + CORE_PACK_PATH + "/" + getLastDeckName() + YDK_FILE_EX;
......@@ -526,13 +529,13 @@ public class AppsSettings {
} else {
path = getResourcePath() + "/" + CORE_DECK_PATH + "/" + getLastCategory() + "/" + getLastDeckName() + YDK_FILE_EX;
}
Log.e("Appsettings", "拼接最后路径" + path);
Log.e(TAG, "拼接最后路径" + path);
return path;
}
//保存最后卡组绝对路径、分类、卡组名
public void setLastDeckPath(String path) {
Log.e("Appsettings", "设置最后路径" + path);
Log.e(TAG, "设置最后路径" + path);
if (TextUtils.equals(path, getLastDeckPath())) {
//一样
return;
......@@ -621,10 +624,10 @@ public class AppsSettings {
public void saveSettings(String key, String value) {
if ("lastdeck".equals(key)) {
Log.e("AppSettings", value);
Log.e(TAG, value);
mSharedPreferences.putString(Constants.PREF_LAST_YDK, value);
} else if ("lastcategory".equals(key)) {
Log.e("AppSettings", value);
Log.e(TAG, value);
mSharedPreferences.putString(Constants.PREF_LAST_CATEGORY, value);
} else {
mSharedPreferences.putString(Constants.PREF_START + key, value);
......
......@@ -26,11 +26,11 @@ import ocgcore.data.LimitList;
import ocgcore.enums.CardType;
import ocgcore.enums.LimitType;
public class CardLoader implements ICardLoader {
private LimitManager mLimitManager;
private CardManager mCardManager;
private StringManager mStringManager;
private Context context;
public class CardLoader implements ICardSearcher {
private final LimitManager mLimitManager;
private final CardManager mCardManager;
private final StringManager mStringManager;
private final Context context;
private CallBack mCallBack;
private LimitList mLimitList;
private static final String TAG = CardLoader.class.getSimpleName();
......@@ -62,11 +62,8 @@ public class CardLoader implements ICardLoader {
}
}
@Override
public SparseArray<Card> readCards(List<Integer> ids, boolean isSorted) {
return readCards(ids, mLimitList, isSorted);
}
public SparseArray<Card> readCards(List<Integer> ids, LimitList limitList, boolean isSorted) {
if (!isOpen()) {
return null;
}
......@@ -84,6 +81,7 @@ public class CardLoader implements ICardLoader {
return map;
}
@Override
public boolean isOpen() {
return mCardManager.getCount() > 0;
}
......@@ -170,6 +168,7 @@ public class CardLoader implements ICardLoader {
});
}
@Override
public List<Card> sort(List<Card> cards){
List<Card> tmp = new ArrayList<Card>();
List<Card> monster = new ArrayList<Card>();
......
......@@ -101,15 +101,15 @@ public class DeckLoader {
IOUtils.close(in);
}
DeckInfo deckInfo = new DeckInfo();
SparseArray<Card> tmp = cardLoader.readCards(deck.getMainlist(), limitList, true);
SparseArray<Card> tmp = cardLoader.readCards(deck.getMainlist(), true);
for (Integer id : deck.getMainlist()) {
deckInfo.addMainCards(tmp.get(id));
}
tmp = cardLoader.readCards(deck.getExtraList(), limitList, true);
tmp = cardLoader.readCards(deck.getExtraList(), true);
for (Integer id : deck.getExtraList()) {
deckInfo.addExtraCards(tmp.get(id));
}
tmp = cardLoader.readCards(deck.getSideList(), limitList, true);
tmp = cardLoader.readCards(deck.getSideList(), true);
// Log.i("kk", "desk:" + tmp.size()+"/"+side.size());
for (Integer id : deck.getSideList()) {
deckInfo.addSideCards(tmp.get(id));
......
package cn.garymb.ygomobile.loader;
import android.util.SparseArray;
import java.util.List;
import ocgcore.data.Card;
import ocgcore.data.LimitList;
public interface ICardLoader{
void search(String prefixWord, String suffixWord,
long attribute, long level, long race,String limitName,long limit,
String atk, String def,long pscale,
long setcode, long category, long ot,int link, long... types);
void onReset();
void setLimitList(LimitList limit);
LimitList getLimitList();
public interface ICardLoader {
List<Card> sort(List<Card> cards);
boolean isOpen();
SparseArray<Card> readCards(List<Integer> ids, boolean isSorted);
}
package cn.garymb.ygomobile.loader;
import ocgcore.data.LimitList;
public interface ICardSearcher extends ICardLoader{
void search(String prefixWord, String suffixWord,
long attribute, long level, long race,String limitName,long limit,
String atk, String def,long pscale,
long setcode, long category, long ot,int link, long... types);
void onReset();
void setLimitList(LimitList limit);
LimitList getLimitList();
}
......@@ -5,8 +5,6 @@ import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
import android.util.SparseArray;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
......@@ -30,7 +28,6 @@ import cn.garymb.ygomobile.AppsSettings;
import cn.garymb.ygomobile.Constants;
import cn.garymb.ygomobile.core.IrrlichtBridge;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.loader.CardLoader;
import cn.garymb.ygomobile.loader.ImageLoader;
import cn.garymb.ygomobile.ui.activities.BaseActivity;
import cn.garymb.ygomobile.ui.adapters.BaseAdapterPlus;
......@@ -56,7 +53,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
private static final int TYPE_DOWNLOAD_CARD_IMAGE_ING = 2;
private static final String TAG = "CardDetail";
private static CardManager cardManager;
private final CardManager cardManager;
private final ImageView cardImage;
private final TextView name;
private final TextView desc;
......@@ -155,13 +152,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
otView = bind(R.id.card_ot);
attrView = bind(R.id.card_attribute);
lbSetCode = bind(R.id.label_setcode);
if (cardManager == null) {
Log.e("CardDetail", "加载卡片信息");
cardManager = new CardManager(AppsSettings.get().getDataBaseFile().getAbsolutePath(), null);
//加载数据库中所有卡片卡片
cardManager.loadCards();
}
cardManager = DataManager.get().getCardManager();
close.setOnClickListener((v) -> {
if (mListener != null) {
mListener.onClose();
......
......@@ -8,7 +8,7 @@ import java.util.List;
import cn.garymb.ygomobile.AppsSettings;
import cn.garymb.ygomobile.Constants;
import cn.garymb.ygomobile.loader.CardLoader;
import cn.garymb.ygomobile.loader.ICardSearcher;
import cn.garymb.ygomobile.utils.FileUtils;
import ocgcore.data.Card;
......@@ -53,7 +53,7 @@ public class CardFavorites {
return mList;
}
public List<Card> getCards(CardLoader cardLoader) {
public List<Card> getCards(ICardSearcher cardLoader) {
SparseArray<Card> id = cardLoader.readCards(mList, false);
List<Card> list = new ArrayList<>();
if (id != null) {
......
......@@ -102,7 +102,7 @@ public class CardSearchActivity extends BaseActivity implements CardLoader.CallB
setListeners();
DialogPlus dlg = DialogPlus.show(this, null, getString(R.string.loading));
VUiKit.defer().when(() -> {
DataManager.get().load(false);
DataManager.get().load(true);
if (mLimitManager.getCount() > 0) {
mCardLoader.setLimitList(mLimitManager.getTopLimit());
}
......
......@@ -20,8 +20,7 @@ import java.util.List;
import cn.garymb.ygomobile.AppsSettings;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.loader.CardLoader;
import cn.garymb.ygomobile.loader.ICardLoader;
import cn.garymb.ygomobile.loader.ICardSearcher;
import cn.garymb.ygomobile.ui.adapters.SimpleSpinnerAdapter;
import cn.garymb.ygomobile.ui.adapters.SimpleSpinnerItem;
import cn.garymb.ygomobile.ui.plus.DialogPlus;
......@@ -68,12 +67,12 @@ public class CardSearcher implements View.OnClickListener {
private final Button resetButton;
private final View view;
private final View layout_monster;
private final ICardLoader dataLoader;
private final ICardSearcher dataLoader;
private final Context mContext;
private final Button myFavButton;
private CallBack mCallBack;
CardLoader mCardLoader;
private boolean mShowFavorite;
private ICardSearcher mCardLoader;
public interface CallBack {
void onSearchStart();
......@@ -85,7 +84,7 @@ public class CardSearcher implements View.OnClickListener {
mCallBack = callBack;
}
public CardSearcher(View view, ICardLoader dataLoader) {
public CardSearcher(View view, ICardSearcher dataLoader) {
this.view = view;
this.mContext = view.getContext();
this.dataLoader = dataLoader;
......@@ -119,7 +118,7 @@ public class CardSearcher implements View.OnClickListener {
LinkMarkerButton.setOnClickListener(this);
searchButton.setOnClickListener(this);
resetButton.setOnClickListener(this);
mCardLoader = new CardLoader(mContext);
mCardLoader = dataLoader;
OnEditorActionListener searchListener = (v, actionId, event) -> {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
......
......@@ -163,8 +163,13 @@ public class DeckManagerActivity extends BaseCardsActivity implements RecyclerVi
_file = mPreLoadFile;
} else {
mPreLoadFile = null;
//最后卡组
_file = new File(mSettings.getLastDeckPath());
String path = mSettings.getLastDeckPath();
if(TextUtils.isEmpty(path)){
_file = null;
} else {
//最后卡组
_file = new File(path);
}
}
init(_file);
EventBus.getDefault().register(this);
......@@ -251,16 +256,16 @@ public class DeckManagerActivity extends BaseCardsActivity implements RecyclerVi
//endregion
//region init
private void init(File ydk) {
private void init(@Nullable File ydk) {
DialogPlus dlg = DialogPlus.show(this, null, getString(R.string.loading));
VUiKit.defer().when(() -> {
DataManager.get().load(false);
DataManager.get().load(true);
//默认第一个卡表
if (mLimitManager.getCount() > 0) {
mCardLoader.setLimitList(mLimitManager.getTopLimit());
}
File file = ydk;
if (!file.exists()) {
if (file == null || !file.exists()) {
//当默认卡组不存在的时候
List<File> files = getYdkFiles();
if (files != null && files.size() > 0) {
......
......@@ -89,6 +89,7 @@ import cn.garymb.ygomobile.utils.FileLogUtil;
import cn.garymb.ygomobile.utils.ScreenUtil;
import cn.garymb.ygomobile.utils.YGOUtil;
import ocgcore.CardManager;
import ocgcore.DataManager;
import ocgcore.data.Card;
import static cn.garymb.ygomobile.Constants.ASSET_SERVER_LIST;
......@@ -112,7 +113,7 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
setExitAnimEnable(false);
mCardManager = new CardManager(AppsSettings.get().getDataBaseFile().getAbsolutePath(), null);
mCardManager = DataManager.get().getCardManager();
//server list
initServerlist();
//event
......
......@@ -35,7 +35,12 @@ public class CardManager {
private final SparseArray<Card> cardDataHashMap = new SparseArray<>();
private String dbDir, exDbPath;
public CardManager(String dbDir, String exPath) {
/**
* @see DataManager#getCardManager()
* @param dbDir
* @param exPath
*/
CardManager(String dbDir, String exPath) {
this.dbDir = dbDir;
this.exDbPath = exPath;
}
......
......@@ -22,7 +22,7 @@ public class DataManager {
private final StringManager mStringManager;
private final LimitManager mLimitManager;
private CardManager mCardManager;
private final CardManager mCardManager;
private DataManager() {
mStringManager = new StringManager();
......
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