Commit 0474dbee authored by qq247321453's avatar qq247321453

opt code

parent 43c0391b
...@@ -58,3 +58,5 @@ output.json ...@@ -58,3 +58,5 @@ output.json
/libcore/.cxx /libcore/.cxx
/libygo/.cxx /libygo/.cxx
/mobile/assets/data/single
/mobile/assets/data/pack
...@@ -133,7 +133,7 @@ ...@@ -133,7 +133,7 @@
android:theme="@style/AppTheme" android:theme="@style/AppTheme"
android:windowSoftInputMode="stateAlwaysHidden|adjustResize" /> android:windowSoftInputMode="stateAlwaysHidden|adjustResize" />
<activity <activity
android:name="cn.garymb.ygomobile.ui.cards.CardSearchAcitivity" android:name="cn.garymb.ygomobile.ui.cards.CardSearchActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize" android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:label="@string/card_search" android:label="@string/card_search"
android:launchMode="singleTop" android:launchMode="singleTop"
...@@ -148,22 +148,6 @@ ...@@ -148,22 +148,6 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/AppTheme" android:theme="@style/AppTheme"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan" /> android:windowSoftInputMode="stateAlwaysHidden|adjustPan" />
<activity
android:name="cn.garymb.ygomobile.ui.cards.DeckManagerActivity2"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:label="@string/deck_manager"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/AppTheme"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan" />
<activity
android:name="cn.garymb.ygomobile.ui.cards.DeckManagerActivity3"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:label="@string/deck_manager"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/AppTheme"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan" />
<activity <activity
android:name="cn.garymb.ygomobile.ui.file.FileActivity" android:name="cn.garymb.ygomobile.ui.file.FileActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize" android:configChanges="orientation|keyboardHidden|navigation|screenSize"
......
...@@ -130,10 +130,6 @@ public class AppsSettings { ...@@ -130,10 +130,6 @@ public class AppsSettings {
return mSharedPreferences.getBoolean(PREF_READ_EX, DEF_PREF_READ_EX); return mSharedPreferences.getBoolean(PREF_READ_EX, DEF_PREF_READ_EX);
} }
public boolean isUseDeckManagerV2() {
return false;//mSharedPreferences.getBoolean(PREF_DECK_MANAGER_V2, DEF_PREF_DECK_MANAGER_V2);
}
public float getXScale(int w, int h) { public float getXScale(int w, int h) {
if (isKeepScale()) { if (isKeepScale()) {
float sx = getScreenHeight() / w; float sx = getScreenHeight() / w;
......
...@@ -114,9 +114,6 @@ public interface Constants { ...@@ -114,9 +114,6 @@ public interface Constants {
String PREF_READ_EX = "pref_settings_read_ex"; String PREF_READ_EX = "pref_settings_read_ex";
boolean DEF_PREF_READ_EX = false; boolean DEF_PREF_READ_EX = false;
String PREF_DECK_MANAGER_V2 = "pref_settings_deck_manager_v2";
boolean DEF_PREF_DECK_MANAGER_V2 = false;
String PREF_KEEP_SCALE = "pref_settings_keep_scale"; String PREF_KEEP_SCALE = "pref_settings_keep_scale";
boolean DEF_PREF_KEEP_SCALE = false; boolean DEF_PREF_KEEP_SCALE = false;
......
...@@ -215,9 +215,7 @@ public class GameUriManager { ...@@ -215,9 +215,7 @@ public class GameUriManager {
boolean isLua = file.getName().toLowerCase(Locale.US).endsWith(".lua"); boolean isLua = file.getName().toLowerCase(Locale.US).endsWith(".lua");
Log.i(Constants.TAG, "open file:" + uri + "->" + file.getAbsolutePath()); Log.i(Constants.TAG, "open file:" + uri + "->" + file.getAbsolutePath());
if (isYdk) { if (isYdk) {
Intent intent = new Intent(getActivity(), DeckManagerActivity.getDeckManager()); DeckManagerActivity.start(activity, file.getAbsolutePath());
intent.putExtra(Intent.EXTRA_TEXT, file.getAbsolutePath());
activity.startActivity(intent);
} else if (isYpk) { } else if (isYpk) {
if (!AppsSettings.get().isReadExpansions()) { if (!AppsSettings.get().isReadExpansions()) {
activity.startActivity(startSeting); activity.startActivity(startSeting);
...@@ -253,9 +251,7 @@ public class GameUriManager { ...@@ -253,9 +251,7 @@ public class GameUriManager {
} else { } else {
Deck deckInfo = new Deck(uri); Deck deckInfo = new Deck(uri);
File file = deckInfo.saveTemp(AppsSettings.get().getDeckDir()); File file = deckInfo.saveTemp(AppsSettings.get().getDeckDir());
Intent startdeck = new Intent(getActivity(), DeckManagerActivity.getDeckManager()); DeckManagerActivity.start(activity, file.getAbsolutePath());
startdeck.putExtra(Intent.EXTRA_TEXT, file.getAbsolutePath());
activity.startActivity(startdeck);
} }
} }
// else if (PATH_ROOM.equals(path)) { // else if (PATH_ROOM.equals(path)) {
...@@ -283,9 +279,7 @@ public class GameUriManager { ...@@ -283,9 +279,7 @@ public class GameUriManager {
} }
} }
if (deck != null && deck.exists()) { if (deck != null && deck.exists()) {
Intent startdeck = new Intent(getActivity(), DeckManagerActivity.getDeckManager()); DeckManagerActivity.start(activity, deck.getAbsolutePath());
startdeck.putExtra(Intent.EXTRA_TEXT, deck.getAbsolutePath());
activity.startActivity(startdeck);
} else { } else {
Log.w("kk", "no find " + name); Log.w("kk", "no find " + name);
activity.finish(); activity.finish();
......
...@@ -48,7 +48,7 @@ import ocgcore.data.Card; ...@@ -48,7 +48,7 @@ import ocgcore.data.Card;
import ocgcore.enums.CardType; import ocgcore.enums.CardType;
import static cn.garymb.ygomobile.core.IrrlichtBridge.ACTION_SHARE_FILE; import static cn.garymb.ygomobile.core.IrrlichtBridge.ACTION_SHARE_FILE;
import static cn.garymb.ygomobile.ui.cards.DeckManagerActivityImpl.Favorite; import static cn.garymb.ygomobile.ui.cards.DeckManagerActivity.Favorite;
/*** /***
* 卡片详情 * 卡片详情
...@@ -224,7 +224,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder { ...@@ -224,7 +224,7 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
favConf.save("#Favorite"); favConf.save("#Favorite");
favConf.read(); favConf.read();
Favorite.clear(); Favorite.clear();
if (!DeckManagerActivityImpl.isSearchResult) { if (!DeckManagerActivity.isSearchResult) {
SparseArray<Card> id = mCardLoader.readCards(ConfigManager.mLines, false); SparseArray<Card> id = mCardLoader.readCards(ConfigManager.mLines, false);
if (id != null) { if (id != null) {
for (int i = 0; i < id.size(); i++) for (int i = 0; i < id.size(); i++)
......
package cn.garymb.ygomobile.ui.cards;
public class CardSearchAcitivity extends CardSearchActivityImpl {
public static final String SEARCH_MESSAGE = "searchMessage";
}
package cn.garymb.ygomobile.ui.cards; package cn.garymb.ygomobile.ui.cards;
import android.graphics.Canvas;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.DashPathEffect; import android.graphics.DashPathEffect;
import android.graphics.Paint; import android.graphics.Paint;
import android.graphics.RectF;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.Gravity; import android.view.Gravity;
...@@ -15,6 +13,7 @@ import android.view.View; ...@@ -15,6 +13,7 @@ import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.RecyclerViewItemListener; import androidx.appcompat.widget.RecyclerViewItemListener;
import androidx.drawerlayout.widget.DrawerLayout; import androidx.drawerlayout.widget.DrawerLayout;
...@@ -22,9 +21,6 @@ import androidx.recyclerview.widget.FastScrollLinearLayoutManager; ...@@ -22,9 +21,6 @@ import androidx.recyclerview.widget.FastScrollLinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.app.hubert.guide.NewbieGuide; import com.app.hubert.guide.NewbieGuide;
import com.app.hubert.guide.core.Controller;
import com.app.hubert.guide.listener.OnHighlightDrewListener;
import com.app.hubert.guide.listener.OnLayoutInflatedListener;
import com.app.hubert.guide.model.GuidePage; import com.app.hubert.guide.model.GuidePage;
import com.app.hubert.guide.model.HighLight; import com.app.hubert.guide.model.HighLight;
import com.app.hubert.guide.model.HighlightOptions; import com.app.hubert.guide.model.HighlightOptions;
...@@ -50,8 +46,8 @@ import ocgcore.StringManager; ...@@ -50,8 +46,8 @@ import ocgcore.StringManager;
import ocgcore.data.Card; import ocgcore.data.Card;
import ocgcore.data.LimitList; import ocgcore.data.LimitList;
class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack, CardSearcher.CallBack { public class CardSearchActivity extends BaseActivity implements CardLoader.CallBack, CardSearcher.CallBack {
public static final String SEARCH_MESSAGE = "searchMessage";
protected DrawerLayout mDrawerlayout; protected DrawerLayout mDrawerlayout;
protected CardSearcher mCardSelector; protected CardSearcher mCardSelector;
protected CardListAdapter mCardListAdapater; protected CardListAdapter mCardListAdapater;
...@@ -68,7 +64,6 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack ...@@ -68,7 +64,6 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack
private DuelAssistantManagement duelAssistantManagement; private DuelAssistantManagement duelAssistantManagement;
private CardDetail mCardDetail; private CardDetail mCardDetail;
private DialogPlus mDialog; private DialogPlus mDialog;
private Button btn_search;
private TextView mResult_count; private TextView mResult_count;
@Override @Override
...@@ -77,7 +72,7 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack ...@@ -77,7 +72,7 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack
setContentView(R.layout.activity_search); setContentView(R.layout.activity_search);
mResult_count = findViewById(R.id.search_result_count); mResult_count = findViewById(R.id.search_result_count);
duelAssistantManagement = DuelAssistantManagement.getInstance(); duelAssistantManagement = DuelAssistantManagement.getInstance();
intentSearchMessage = getIntent().getStringExtra(CardSearchAcitivity.SEARCH_MESSAGE); intentSearchMessage = getIntent().getStringExtra(CardSearchActivity.SEARCH_MESSAGE);
// Toolbar toolbar = $(R.id.toolbar); // Toolbar toolbar = $(R.id.toolbar);
// setSupportActionBar(toolbar); // setSupportActionBar(toolbar);
enableBackHome(); enableBackHome();
...@@ -88,10 +83,8 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack ...@@ -88,10 +83,8 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack
mCardListAdapater.setItemBg(true); mCardListAdapater.setItemBg(true);
mListView.setLayoutManager(new FastScrollLinearLayoutManager(this)); mListView.setLayoutManager(new FastScrollLinearLayoutManager(this));
mListView.setAdapter(mCardListAdapater); mListView.setAdapter(mCardListAdapater);
btn_search = $(R.id.btn_search); Button btn_search = $(R.id.btn_search);
btn_search.setOnClickListener((v) -> { btn_search.setOnClickListener((v) -> showSearch(true));
showSearch(true);
});
/* /*
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, mDrawerlayout, toolbar, R.string.search_open, R.string.search_close); this, mDrawerlayout, toolbar, R.string.search_open, R.string.search_close);
...@@ -166,7 +159,7 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack ...@@ -166,7 +159,7 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack
})); }));
mListView.addOnScrollListener(new RecyclerView.OnScrollListener() { mListView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override @Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) { public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState); super.onScrollStateChanged(recyclerView, newState);
switch (newState) { switch (newState) {
case RecyclerView.SCROLL_STATE_IDLE: case RecyclerView.SCROLL_STATE_IDLE:
...@@ -187,17 +180,16 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack ...@@ -187,17 +180,16 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack
}); });
} }
private boolean onBack() { private void onBack() {
if (mDrawerlayout.isDrawerOpen(Constants.CARD_SEARCH_GRAVITY)) { if (mDrawerlayout.isDrawerOpen(Constants.CARD_SEARCH_GRAVITY)) {
mDrawerlayout.closeDrawer(Constants.CARD_SEARCH_GRAVITY); mDrawerlayout.closeDrawer(Constants.CARD_SEARCH_GRAVITY);
return true; return;
} }
if (mDrawerlayout.isDrawerOpen(Gravity.LEFT)) { if (mDrawerlayout.isDrawerOpen(Gravity.LEFT)) {
mDrawerlayout.closeDrawer(Gravity.LEFT); mDrawerlayout.closeDrawer(Gravity.LEFT);
return true; return;
} }
finish(); finish();
return true;
} }
@Override @Override
...@@ -217,7 +209,7 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack ...@@ -217,7 +209,7 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack
mCardListAdapater.set(cardInfos); mCardListAdapater.set(cardInfos);
mResult_count.setText(String.valueOf(cardInfos.size())); mResult_count.setText(String.valueOf(cardInfos.size()));
mCardListAdapater.notifyDataSetChanged(); mCardListAdapater.notifyDataSetChanged();
if (cardInfos != null && cardInfos.size() > 0) { if (cardInfos.size() > 0) {
mListView.smoothScrollToPosition(0); mListView.smoothScrollToPosition(0);
} }
} }
...@@ -255,11 +247,8 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack ...@@ -255,11 +247,8 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) { if (item.getItemId() == R.id.action_search) {//弹条件对话框
case R.id.action_search: showSearch(true);
//弹条件对话框
showSearch(true);
break;
} }
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }
...@@ -320,7 +309,7 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack ...@@ -320,7 +309,7 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack
@Override @Override
public void onSearchResult(List<Card> Cards, boolean isHide) { public void onSearchResult(List<Card> Cards, boolean isHide) {
CardSearchActivityImpl.this.onSearchResult(Cards, isHide); CardSearchActivity.this.onSearchResult(Cards, isHide);
} }
}); });
} }
...@@ -361,16 +350,13 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack ...@@ -361,16 +350,13 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack
//https://www.jianshu.com/p/99649af3b191 //https://www.jianshu.com/p/99649af3b191
public void showNewbieGuide() { public void showNewbieGuide() {
HighlightOptions options = new HighlightOptions.Builder()//绘制一个高亮虚线圈 HighlightOptions options = new HighlightOptions.Builder()//绘制一个高亮虚线圈
.setOnHighlightDrewListener(new OnHighlightDrewListener() { .setOnHighlightDrewListener((canvas, rectF) -> {
@Override Paint paint = new Paint();
public void onHighlightDrew(Canvas canvas, RectF rectF) { paint.setColor(Color.WHITE);
Paint paint = new Paint(); paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.WHITE); paint.setStrokeWidth(20);
paint.setStyle(Paint.Style.STROKE); paint.setPathEffect(new DashPathEffect(new float[]{20, 20}, 0));
paint.setStrokeWidth(20); canvas.drawCircle(rectF.centerX(), rectF.centerY(), rectF.width() / 2 + 10, paint);
paint.setPathEffect(new DashPathEffect(new float[]{20, 20}, 0));
canvas.drawCircle(rectF.centerX(), rectF.centerY(), rectF.width() / 2 + 10, paint);
}
}).build(); }).build();
NewbieGuide.with(this)//with方法可以传入Activity或者Fragment,获取引导页的依附者 NewbieGuide.with(this)//with方法可以传入Activity或者Fragment,获取引导页的依附者
.setLabel("searchCardGuide") .setLabel("searchCardGuide")
...@@ -379,14 +365,10 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack ...@@ -379,14 +365,10 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack
.setBackgroundColor(0xbc000000) .setBackgroundColor(0xbc000000)
.addHighLightWithOptions(findViewById(R.id.btn_search), HighLight.Shape.CIRCLE, options) .addHighLightWithOptions(findViewById(R.id.btn_search), HighLight.Shape.CIRCLE, options)
.setLayoutRes(R.layout.view_guide_home) .setLayoutRes(R.layout.view_guide_home)
.setOnLayoutInflatedListener(new OnLayoutInflatedListener() { .setOnLayoutInflatedListener((view, controller) -> {
TextView tv = view.findViewById(R.id.text_about);
@Override tv.setVisibility(View.VISIBLE);
public void onLayoutInflated(View view, Controller controller) { tv.setText(R.string.guide_button_search);
TextView tv = view.findViewById(R.id.text_about);
tv.setVisibility(View.VISIBLE);
tv.setText(R.string.guide_button_search);
}
}) })
) )
...@@ -395,14 +377,10 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack ...@@ -395,14 +377,10 @@ class CardSearchActivityImpl extends BaseActivity implements CardLoader.CallBack
.setBackgroundColor(0xbc000000) .setBackgroundColor(0xbc000000)
.addHighLightWithOptions(findViewById(R.id.search_result_count), HighLight.Shape.CIRCLE, options) .addHighLightWithOptions(findViewById(R.id.search_result_count), HighLight.Shape.CIRCLE, options)
.setLayoutRes(R.layout.view_guide_home) .setLayoutRes(R.layout.view_guide_home)
.setOnLayoutInflatedListener(new OnLayoutInflatedListener() { .setOnLayoutInflatedListener((view, controller) -> {
TextView tv = view.findViewById(R.id.text_about);
@Override tv.setVisibility(View.VISIBLE);
public void onLayoutInflated(View view, Controller controller) { tv.setText(R.string.guide_search_result_count);
TextView tv = view.findViewById(R.id.text_about);
tv.setVisibility(View.VISIBLE);
tv.setText(R.string.guide_search_result_count);
}
}) })
) )
......
package cn.garymb.ygomobile.ui.cards;
public class DeckManagerActivity2 extends DeckManagerActivityImpl2 {
}
package cn.garymb.ygomobile.ui.cards;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Toast;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.OnItemDragListener;
import androidx.recyclerview.widget.RecyclerView;
import java.io.File;
import java.util.List;
import java.util.Locale;
import cn.garymb.ygomobile.AppsSettings;
import cn.garymb.ygomobile.Constants;
import cn.garymb.ygomobile.bean.DeckInfo;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.loader.CardLoader;
import cn.garymb.ygomobile.loader.DeckLoader;
import cn.garymb.ygomobile.ui.activities.BaseActivity;
import cn.garymb.ygomobile.ui.cards.deck2.DeckAdapter;
import cn.garymb.ygomobile.ui.plus.DialogPlus;
import cn.garymb.ygomobile.ui.plus.VUiKit;
import ocgcore.DataManager;
import ocgcore.LimitManager;
import ocgcore.StringManager;
import ocgcore.data.Card;
import ocgcore.data.LimitList;
public class DeckManagerActivity3 extends BaseActivity implements OnItemDragListener, CardLoader.CallBack {
private RecyclerView mRecyclerView;
private DeckAdapter mDeckAdapter;
protected StringManager mStringManager = DataManager.get().getStringManager();
protected LimitManager mLimitManager = DataManager.get().getLimitManager();
protected CardLoader mCardLoader;
private AppsSettings mSettings = AppsSettings.get();
private String mPreLoad;
private File mYdkFile;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_deck_cards3);
Toolbar toolbar = $(R.id.toolbar);
setSupportActionBar(toolbar);
enableBackHome();
mRecyclerView = (RecyclerView) findViewById(R.id.recyclerview);
mDeckAdapter = new DeckAdapter(this, mRecyclerView, this);
mRecyclerView.setAdapter(mDeckAdapter);
findViewById(R.id.refresh).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDeckAdapter.notifyDataSetChanged();
}
});
mCardLoader = new CardLoader(this);
mCardLoader.setCallBack(this);
if (getIntent().hasExtra(Intent.EXTRA_TEXT)) {
String path = getIntent().getStringExtra(Intent.EXTRA_TEXT);
if (!TextUtils.isEmpty(path)) {
mPreLoad = path;
}
}
DialogPlus dlg = DialogPlus.show(this, null, getString(R.string.loading));
VUiKit.defer().when(() -> {
mCardLoader.setLimitList(mLimitManager.getTopLimit());
File file = new File( mSettings.getLastDeckPath());
if (!TextUtils.isEmpty(mPreLoad)) {
file = new File(mPreLoad);
mPreLoad = null;
}
if (!file.exists()) {
//当默认卡组不存在的时候
File[] files = getYdkFiles();
if (files != null && files.length > 0) {
file = files[0];
}
}
//EXTRA_DECK
if (file == null) {
return new DeckInfo();
}
mYdkFile = file;
if (mCardLoader.isOpen() && file.exists()) {
return DeckLoader.readDeck(mCardLoader, file, mCardLoader.getLimitList());
} else {
return new DeckInfo();
}
}).done((rs) -> {
dlg.dismiss();
mDeckAdapter.setDeckInfo(rs);
mDeckAdapter.notifyDataSetChanged();
});
}
private File[] getYdkFiles() {
File dir = new File(mSettings.getResourcePath(), Constants.CORE_DECK_PATH);
File[] files = dir.listFiles((file, s) -> {
return s.toLowerCase(Locale.US).endsWith(Constants.YDK_FILE_EX);
});
return files;
}
@Override
public void onDragStart() {
}
@Override
public void onDragLongPress(int pos) {
Toast.makeText(this, "on long press :" + pos, Toast.LENGTH_SHORT).show();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
if (getRequestedOrientation() != newConfig.orientation) {
mDeckAdapter.notifyDataSetChanged();
}
super.onConfigurationChanged(newConfig);
}
@Override
public void onDragLongPressEnd() {
}
@Override
public void onDragEnd() {
}
@Override
public void onSearchStart() {
}
@Override
public void onLimitListChanged(LimitList limitList) {
}
@Override
public void onSearchResult(List<Card> Cards, boolean isHide) {
}
@Override
public void onResetSearch() {
}
}
package cn.garymb.ygomobile.ui.cards.deck2;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.ItemTouchHelperPlus;
import androidx.recyclerview.widget.RecyclerView;
class DeckHelperCallback extends ItemTouchHelperPlus.Callback2 {
private IDeckLayout mDeckAdapter;
DeckHelperCallback(IDeckLayout deckAdapter) {
mDeckAdapter = deckAdapter;
}
private boolean isLabel(int position) {
return mDeckAdapter.isLabel(position);
}
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
int id = viewHolder.getAdapterPosition();
if (isLabel(id)) {
return makeMovementFlags(0, 0);
}
int dragFlags;
if (recyclerView.getLayoutManager() instanceof GridLayoutManager) {
dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.RIGHT | ItemTouchHelper.LEFT;
} else {
dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
}
return makeMovementFlags(dragFlags, 0);
}
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
return mDeckAdapter.moveItem(viewHolder.getAdapterPosition(), target.getAdapterPosition());
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
}
}
package cn.garymb.ygomobile.ui.cards.deck2;
import android.graphics.Rect;
import android.view.View;
import androidx.recyclerview.widget.RecyclerView;
class DeckItemDecoration extends RecyclerView.ItemDecoration {
private IDeckLayout mDeckLayout;
DeckItemDecoration(IDeckLayout deckLayout) {
mDeckLayout = deckLayout;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
final int LINE_COUNT = mDeckLayout.getLineLimitCount();
final int CARD_COUNT = mDeckLayout.getLineCardCount();
int position = ((RecyclerView.LayoutParams) view.getLayoutParams()).getViewLayoutPosition();
if (mDeckLayout.isLabel(position)) {
super.getItemOffsets(outRect, view, parent, state);
return;
}
float w = mDeckLayout.getWidth10() - mDeckLayout.getWidth15();
int limit;
if (mDeckLayout.isMain(position)) {
position = mDeckLayout.getMainIndex(position);
limit = mDeckLayout.getMainLimit();
} else if (mDeckLayout.isExtra(position)) {
position = mDeckLayout.getExtraIndex(position);
limit = mDeckLayout.getExtraLimit();//10
} else if (mDeckLayout.isSide(position)) {
position = mDeckLayout.getSideIndex(position);
limit = mDeckLayout.getSideLimit();//10
} else {
return;
}
float _w = w / (limit - 1.0f);
float w2;
if (limit < LINE_COUNT - 1) {
//10-13
w = mDeckLayout.getWidth15() * (LINE_COUNT - limit);
w2 = (w / (limit - 1.0f)) - _w;
} else if (limit == LINE_COUNT - 1) {
//14
w = mDeckLayout.getWidth15() * (LINE_COUNT - limit);
_w = _w / 64.0f * 65.0f;
w2 = (w / (limit - 1.0f)) - _w;
} else {
//15
w = mDeckLayout.getWidth15() * (LINE_COUNT - limit);
_w = _w / 32.0f * 33.0f;
w2 = (w / (limit - 1.0f)) - _w;
}
int linePos = position % limit;
outRect.left = (int) (w2 * linePos);
}
}
package cn.garymb.ygomobile.ui.cards.deck2;
import android.content.Context;
import androidx.recyclerview.widget.GridLayoutManagerPlus;
class DeckLayoutManager extends GridLayoutManagerPlus {
DeckLayoutManager(Context context, final int span, final IDeckLayout deckAdapter) {
super(context, span);
setSpanSizeLookup(new SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
if (deckAdapter.isLabel(position)) {
return span;
} else if (deckAdapter.isMain(position)) {
position = deckAdapter.getMainIndex(position);
int limit = deckAdapter.getMainLimit();
if (position % limit == (limit - 1)) {
return span - limit + 1;
}
} else if (deckAdapter.isExtra(position)) {
position = deckAdapter.getExtraIndex(position);
if (deckAdapter.getExtraCount() < deckAdapter.getLineCardCount()) {
if (position == deckAdapter.getExtraCount() - 1) {
return deckAdapter.getLineCardCount() - position;
}
}
} else if (deckAdapter.isSide(position)) {
}
return 1;
}
});
}
}
package cn.garymb.ygomobile.ui.cards.deck2;
import android.graphics.Bitmap;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.recyclerview.widget.GridLayoutManagerPlus;
import cn.garymb.ygomobile.lite.R;
import ocgcore.data.Card;
class DeckViewHolder extends GridLayoutManagerPlus.GridViewHolder {
DeckViewHolder(View view) {
super(view);
this.view = view;
view.setTag(view.getId(), this);
cardImage = $(R.id.card_image);
labelText = $(R.id.label);
textLayout = $(R.id.layout_label);
rightImage = $(R.id.right_top);
}
@SuppressWarnings("unchecked")
private <T extends View> T $(int id) {
return (T) view.findViewById(id);
}
void setSize(int width, int height) {
view.setMinimumWidth(width);
view.setMinimumHeight(height);
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
if (layoutParams != null) {
if (width > 0) {
layoutParams.width = width;
} else {
layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
}
if (height > 0) {
layoutParams.height = height;
} else {
layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT;
}
}
view.setLayoutParams(layoutParams);
}
public void empty() {
showEmpty();
}
public void useDefault() {
cardImage.setImageResource(R.drawable.unknown);
//TODO sdcard的卡背
// File outFile = new File(AppsSettings.get().getCoreSkinPath(), Constants.UNKNOWN_IMAGE);
// ViewGroup.LayoutParams layoutParams = cardImage.getLayoutParams();
// if (layoutParams != null) {
// layoutParams.height = h;
// }
// imageLoader.$(outFile, cardImage, outFile.getName().endsWith(Constants.BPG), 0, null);
}
public void setText(String text) {
labelText.setText(text);
textLayout.setVisibility(View.VISIBLE);
cardImage.setVisibility(View.GONE);
rightImage.setVisibility(View.GONE);
}
public void showImage() {
textLayout.setVisibility(View.GONE);
cardImage.setVisibility(View.VISIBLE);
rightImage.setVisibility(View.VISIBLE);
//
cardImage.setImageResource(R.drawable.unknown);
}
public void showEmpty() {
textLayout.setVisibility(View.GONE);
cardImage.setVisibility(View.INVISIBLE);
rightImage.setVisibility(View.GONE);
}
public ImageView getCardImage() {
return cardImage;
}
/**
* 左上角图标
* @param bitmap
*/
public void setRightImage(Bitmap bitmap) {
rightImage.setImageBitmap(bitmap);
}
public void setHeadVisibility(int visibility) {
}
private final View view;
private final View textLayout;
private final TextView labelText;
private final ImageView cardImage;
private final ImageView rightImage;
private Card mCard;
private Type mType;
public Card getCard() {
return mCard;
}
public void setCard(Card card) {
mCard = card;
}
public Type getType() {
return mType;
}
public void setType(Type type) {
mType = type;
}
public enum Type {
None,
Main,
Extra,
Side
}
}
package cn.garymb.ygomobile.ui.cards.deck2;
public interface IDeckLayout {
int getMaxWidth();
int getWidth15();
int getWidth10();
boolean isLabel(int position);
boolean isMain(int position);
boolean isExtra(int position);
boolean isSide(int position);
int getMainCount();
int getExtraCount();
int getSideCount();
int getMainLimit();
int getExtraLimit();
int getSideLimit();
int getMainIndex(int pos);
int getExtraIndex(int pos);
int getSideIndex(int pos);
int getLineLimitCount();
int getLineCardCount();
boolean moveItem(int fromPosition, int toPosition);
}
...@@ -75,7 +75,7 @@ import cn.garymb.ygomobile.ui.activities.WebActivity; ...@@ -75,7 +75,7 @@ import cn.garymb.ygomobile.ui.activities.WebActivity;
import cn.garymb.ygomobile.ui.adapters.ServerListAdapter; import cn.garymb.ygomobile.ui.adapters.ServerListAdapter;
import cn.garymb.ygomobile.ui.adapters.SimpleListAdapter; import cn.garymb.ygomobile.ui.adapters.SimpleListAdapter;
import cn.garymb.ygomobile.ui.cards.CardDetailRandom; import cn.garymb.ygomobile.ui.cards.CardDetailRandom;
import cn.garymb.ygomobile.ui.cards.CardSearchAcitivity; import cn.garymb.ygomobile.ui.cards.CardSearchActivity;
import cn.garymb.ygomobile.ui.cards.DeckManagerActivity; import cn.garymb.ygomobile.ui.cards.DeckManagerActivity;
import cn.garymb.ygomobile.ui.cards.deck.DeckUtils; import cn.garymb.ygomobile.ui.cards.deck.DeckUtils;
import cn.garymb.ygomobile.ui.mycard.MyCardActivity; import cn.garymb.ygomobile.ui.mycard.MyCardActivity;
...@@ -194,8 +194,8 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie ...@@ -194,8 +194,8 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
@Override @Override
public void onCardSearch(String key, int id) { public void onCardSearch(String key, int id) {
if (id == ID_MAINACTIVITY) { if (id == ID_MAINACTIVITY) {
Intent intent = new Intent(this, CardSearchAcitivity.class); Intent intent = new Intent(this, CardSearchActivity.class);
intent.putExtra(CardSearchAcitivity.SEARCH_MESSAGE, key); intent.putExtra(CardSearchActivity.SEARCH_MESSAGE, key);
startActivity(intent); startActivity(intent);
} }
} }
...@@ -333,10 +333,10 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie ...@@ -333,10 +333,10 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
mServerListManager.addServer(); mServerListManager.addServer();
break; break;
case R.id.action_card_search: case R.id.action_card_search:
startActivity(new Intent(this, CardSearchAcitivity.class)); startActivity(new Intent(this, CardSearchActivity.class));
break; break;
case R.id.action_deck_manager: case R.id.action_deck_manager:
startActivity(new Intent(this, DeckManagerActivity.getDeckManager())); DeckManagerActivity.start(this, null);
break; break;
case R.id.action_join_qq_group: case R.id.action_join_qq_group:
String key = "anEjPCDdhLgxtfLre-nT52G1Coye3LkK"; String key = "anEjPCDdhLgxtfLre-nT52G1Coye3LkK";
...@@ -597,17 +597,13 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie ...@@ -597,17 +597,13 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
if (isUrl) { if (isUrl) {
Deck deckInfo = new Deck(getString(R.string.rename_deck) + System.currentTimeMillis(), Uri.parse(deckMessage)); Deck deckInfo = new Deck(getString(R.string.rename_deck) + System.currentTimeMillis(), Uri.parse(deckMessage));
File file = deckInfo.saveTemp(AppsSettings.get().getDeckDir()); File file = deckInfo.saveTemp(AppsSettings.get().getDeckDir());
Intent startdeck = new Intent(this, DeckManagerActivity.getDeckManager()); DeckManagerActivity.start(this, file.getAbsolutePath());
startdeck.putExtra(Intent.EXTRA_TEXT, file.getAbsolutePath());
startActivity(startdeck);
} else { } else {
//如果是卡组文本 //如果是卡组文本
try { try {
//以当前时间戳作为卡组名保存卡组 //以当前时间戳作为卡组名保存卡组
File file = DeckUtils.save(getString(R.string.rename_deck) + System.currentTimeMillis(), deckMessage); File file = DeckUtils.save(getString(R.string.rename_deck) + System.currentTimeMillis(), deckMessage);
Intent startdeck = new Intent(this, DeckManagerActivity.getDeckManager()); DeckManagerActivity.start(this, file.getAbsolutePath());
startdeck.putExtra(Intent.EXTRA_TEXT, file.getAbsolutePath());
startActivity(startdeck);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
Toast.makeText(this, getString(R.string.save_failed_bcos) + e, Toast.LENGTH_SHORT).show(); Toast.makeText(this, getString(R.string.save_failed_bcos) + e, Toast.LENGTH_SHORT).show();
......
This diff is collapsed.
This diff is collapsed.
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