Commit 81e1ba03 authored by qq247321453's avatar qq247321453

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

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