Commit e7a7ff7d authored by fallenstardust's avatar fallenstardust

设置传递卡组路径到deck fragment

parent 604ac41e
...@@ -18,7 +18,6 @@ import android.text.TextUtils; ...@@ -18,7 +18,6 @@ import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import androidx.fragment.app.Fragment;
import com.ourygo.assistant.util.YGODAUtil; import com.ourygo.assistant.util.YGODAUtil;
...@@ -42,7 +41,7 @@ import ocgcore.DataManager; ...@@ -42,7 +41,7 @@ import ocgcore.DataManager;
public class GameUriManager { public class GameUriManager {
private Activity activity; private Activity activity;
private Fragment fragment; private HomeFragment homeFragment;
private String fname; private String fname;
public GameUriManager(Activity activity) { public GameUriManager(Activity activity) {
...@@ -214,8 +213,8 @@ public class GameUriManager { ...@@ -214,8 +213,8 @@ 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) {
startSetting.putExtra("flag", 2);
startSetting.putExtra(Intent.EXTRA_TEXT, file.getAbsolutePath()); startSetting.putExtra(Intent.EXTRA_TEXT, file.getAbsolutePath());
activity.startActivity(startSetting);
} else if (isYpk) { } else if (isYpk) {
if (!AppsSettings.get().isReadExpansions()) { if (!AppsSettings.get().isReadExpansions()) {
startSetting.putExtra("flag", 4); startSetting.putExtra("flag", 4);
...@@ -255,14 +254,14 @@ public class GameUriManager { ...@@ -255,14 +254,14 @@ public class GameUriManager {
if (!deckInfo.isCompleteDeck()) { if (!deckInfo.isCompleteDeck()) {
YGOUtil.show("当前卡组缺少完整信息,将只显示已有卡片"); YGOUtil.show("当前卡组缺少完整信息,将只显示已有卡片");
} }
startSetting.putExtra("flag", 2);
startSetting.putExtra(Intent.EXTRA_TEXT, file.getAbsolutePath()); startSetting.putExtra(Intent.EXTRA_TEXT, file.getAbsolutePath());
activity.startActivity(startSetting);
} }
} else if (Constants.URI_ROOM.equals(host)) { } else if (Constants.URI_ROOM.equals(host)) {
YGODAUtil.deRoomListener(uri, (host1, port, password, exception) -> { YGODAUtil.deRoomListener(uri, (host1, port, password, exception) -> {
if (TextUtils.isEmpty(exception)) if (TextUtils.isEmpty(exception))
if (fragment instanceof HomeFragment) { if (activity instanceof MainActivity) {
HomeFragment homeFragment = (HomeFragment) fragment; homeFragment = new HomeFragment();
homeFragment.quickjoinRoom(host1, port, password); homeFragment.quickjoinRoom(host1, port, password);
} else { } else {
YGOUtil.show(exception); YGOUtil.show(exception);
...@@ -295,8 +294,8 @@ public class GameUriManager { ...@@ -295,8 +294,8 @@ public class GameUriManager {
} }
if (deck != null && deck.exists()) { if (deck != null && deck.exists()) {
Intent startSetting = new Intent(activity, MainActivity.class); Intent startSetting = new Intent(activity, MainActivity.class);
startSetting.putExtra("flag", 2);
startSetting.putExtra(Intent.EXTRA_TEXT, deck.getAbsolutePath()); startSetting.putExtra(Intent.EXTRA_TEXT, deck.getAbsolutePath());
activity.startActivity(startSetting);
} else { } else {
Log.w("kk", "no find " + name); Log.w("kk", "no find " + name);
activity.finish(); activity.finish();
......
package cn.garymb.ygomobile.ui.adapters;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Color;
import android.os.Build;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.listener.OnItemClickListener;
import java.util.ArrayList;
import java.util.List;
import cn.garymb.ygomobile.bean.Deck;
import cn.garymb.ygomobile.bean.DeckInfo;
import cn.garymb.ygomobile.bean.TextSelect;
import cn.garymb.ygomobile.bean.events.DeckFile;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.loader.CardLoader;
import cn.garymb.ygomobile.loader.DeckLoader;
import cn.garymb.ygomobile.loader.ImageLoader;
import cn.garymb.ygomobile.utils.YGOUtil;
import ocgcore.DataManager;
import ocgcore.data.LimitList;
public class SettingsListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, DeckViewHolder> {
private Context mContext;
private OnItemSelectListener onItemSelectListener;
private int selectPosition;
private boolean isSelect;
private boolean isManySelect;
private List<T> selectList;
public SettingsListAdapter(Context context, List<T> data, int select) {
super(R.layout.item_deck_list_swipe, data);
this.selectPosition = select;
if (select >= 0)
isSelect = true;
else
isSelect = false;
isManySelect = false;
selectList = new ArrayList<>();
setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
if (isSelect && position == selectPosition)
return;
selectPosition = position;
notifyDataSetChanged();
if (onItemSelectListener != null)
onItemSelectListener.onItemSelect(position, data.get(position).getObject());
}
});
//初始化
mContext = context;
}
@SuppressLint("ResourceType")
@Override
protected void convert(DeckViewHolder holder, T item) {
int position = holder.getAdapterPosition();
//多选
if (isManySelect) {
if (selectList.contains(item))
holder.item_deck_list.setBackgroundColor(YGOUtil.c(R.color.colorMain));
else
holder.item_deck_list.setBackgroundResource(Color.TRANSPARENT);
} else if (isSelect) {
if (position == selectPosition) {
holder.item_deck_list.setBackgroundColor(YGOUtil.c(R.color.colorMain));
} else {
holder.item_deck_list.setBackgroundResource(Color.TRANSPARENT);
}
} else {
holder.item_deck_list.setBackgroundResource(Color.TRANSPARENT);
}
}
public void setSelectPosition(int selectPosition) {
this.selectPosition = selectPosition;
}
public boolean isSelect() {
return isSelect;
}
public boolean isManySelect() {
return isManySelect;
}
public void addManySelect(T t) {
if (selectList.contains(t))
selectList.remove(t);
else
selectList.add(t);
}
public void setManySelect(boolean manySelect) {
isManySelect = manySelect;
if (!isManySelect) {
selectList.clear();
notifyDataSetChanged();
}
}
public List<T> getSelectList() {
return selectList;
}
public int getSelectPosition() {
return selectPosition;
}
public void setOnItemSelectListener(OnItemSelectListener onItemSelectListener) {
this.onItemSelectListener = onItemSelectListener;
}
public interface OnItemSelectListener<T> {
void onItemSelect(int position, T item);
}
}
class SettingsViewHolder extends com.chad.library.adapter.base.viewholder.BaseViewHolder {
public SettingsViewHolder(View view) {
super(view);
view.setTag(view.getId(), this);
}
}
\ No newline at end of file
...@@ -85,7 +85,6 @@ import cn.garymb.ygomobile.ui.cards.deck.DeckItem; ...@@ -85,7 +85,6 @@ import cn.garymb.ygomobile.ui.cards.deck.DeckItem;
import cn.garymb.ygomobile.ui.cards.deck.DeckItemTouchHelper; import cn.garymb.ygomobile.ui.cards.deck.DeckItemTouchHelper;
import cn.garymb.ygomobile.ui.cards.deck.DeckItemType; import cn.garymb.ygomobile.ui.cards.deck.DeckItemType;
import cn.garymb.ygomobile.ui.cards.deck.DeckLayoutManager; import cn.garymb.ygomobile.ui.cards.deck.DeckLayoutManager;
import cn.garymb.ygomobile.ui.home.HomeActivity;
import cn.garymb.ygomobile.ui.home.MainActivity; import cn.garymb.ygomobile.ui.home.MainActivity;
import cn.garymb.ygomobile.ui.mycard.mcchat.util.ImageUtil; import cn.garymb.ygomobile.ui.mycard.mcchat.util.ImageUtil;
import cn.garymb.ygomobile.ui.plus.AOnGestureListener; import cn.garymb.ygomobile.ui.plus.AOnGestureListener;
...@@ -200,12 +199,14 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -200,12 +199,14 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
initBoomMenuButton(layoutView.findViewById(R.id.bmb)); initBoomMenuButton(layoutView.findViewById(R.id.bmb));
layoutView.findViewById(R.id.btn_nav_search).setOnClickListener((v) -> doMenu(R.id.action_search)); layoutView.findViewById(R.id.btn_nav_search).setOnClickListener((v) -> doMenu(R.id.action_search));
layoutView.findViewById(R.id.btn_nav_list).setOnClickListener((v) -> doMenu(R.id.action_card_list)); layoutView.findViewById(R.id.btn_nav_list).setOnClickListener((v) -> doMenu(R.id.action_card_list));
tv_deck.setOnClickListener(v -> YGODialogUtil.dialogDeckSelect(getActivity(), AppsSettings.get().getLastDeckPath(), this)); tv_deck.setOnClickListener(v ->
YGODialogUtil.dialogDeckSelect(getActivity(), AppsSettings.get().getLastDeckPath(), this));
mContext = (BaseActivity) getActivity(); mContext = (BaseActivity) getActivity();
} }
public void preLoadFile() { public void preLoadFile() {
String preLoadFile = getActivity().getIntent().getStringExtra(Intent.EXTRA_TEXT); Bundle bundle = getArguments();
String preLoadFile = bundle.getString("setDeck");
final File _file; final File _file;
//打开指定卡组 //打开指定卡组
if (!TextUtils.isEmpty(preLoadFile) && (mPreLoadFile = new File(preLoadFile)).exists()) { if (!TextUtils.isEmpty(preLoadFile) && (mPreLoadFile = new File(preLoadFile)).exists()) {
...@@ -224,12 +225,6 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -224,12 +225,6 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
init(_file); init(_file);
} }
public static void start(Context context, String path) {
Intent starter = new Intent(context, MainActivity.class);
starter.putExtra(Intent.EXTRA_TEXT, path);
context.startActivity(starter);
}
protected void setListeners() { protected void setListeners() {
mCardListAdapter.setOnItemClickListener((adapter, view, position) -> { mCardListAdapter.setOnItemClickListener((adapter, view, position) -> {
onCardClick(view, mCardListAdapter.getItem(position), position); onCardClick(view, mCardListAdapter.getItem(position), position);
...@@ -287,6 +282,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -287,6 +282,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
@Override @Override
public void onUserInvisible() { public void onUserInvisible() {
/*
if (mDeckAdapater.isChanged()) { if (mDeckAdapater.isChanged()) {
File ydk = mDeckAdapater.getYdkFile(); File ydk = mDeckAdapater.getYdkFile();
if (ydk != null && ydk.exists()) { if (ydk != null && ydk.exists()) {
...@@ -317,7 +313,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte ...@@ -317,7 +313,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
if (mDrawerLayout.isDrawerOpen(Gravity.LEFT)) { if (mDrawerLayout.isDrawerOpen(Gravity.LEFT)) {
mDrawerLayout.closeDrawer(Gravity.LEFT); mDrawerLayout.closeDrawer(Gravity.LEFT);
return; return;
} }*/
} }
@Override @Override
......
...@@ -99,20 +99,24 @@ public abstract class HomeActivity extends BaseActivity implements OnDuelAssista ...@@ -99,20 +99,24 @@ public abstract class HomeActivity extends BaseActivity implements OnDuelAssista
@Override @Override
protected void onNewIntent(Intent intent) { protected void onNewIntent(Intent intent) {
super.onNewIntent(intent); super.onNewIntent(intent);
String strDeck = "";
int mFlag = intent.getIntExtra("flag", 0); int mFlag = intent.getIntExtra("flag", 0);
if (mFlag == 4) { //判断获取到的flag值 if (mFlag == 4) { //判断获取到的flag值
switchFragment(fragment_personal, 4); switchFragment(fragment_personal, 4);
} else if (mFlag == 3) { } else if (mFlag == 3) {
switchFragment(fragment_mycard,3); switchFragment(fragment_mycard, 3);
} else if (mFlag == 2) {
switchFragment(fragment_deck_cards,2);
} else if (mFlag == 1) {
switchFragment(fragment_search,1);
} else if (intent.hasExtra(Intent.EXTRA_TEXT)) { } else if (intent.hasExtra(Intent.EXTRA_TEXT)) {
strDeck = intent.getStringExtra(Intent.EXTRA_TEXT); switchFragment(fragment_deck_cards, 2);
Toast.makeText(getActivity(), strDeck, Toast.LENGTH_LONG).show(); String strDeck = intent.getStringExtra(Intent.EXTRA_TEXT);
fragment_deck_cards.init(new File(strDeck)); if (!strDeck.isEmpty()) {
Bundle bundle = new Bundle();
bundle.putString("setDeck", strDeck);
fragment_deck_cards.setArguments(bundle);
}
} else if (mFlag == 1) {
switchFragment(fragment_search, 1);
} }
} }
...@@ -322,13 +326,13 @@ public abstract class HomeActivity extends BaseActivity implements OnDuelAssista ...@@ -322,13 +326,13 @@ public abstract class HomeActivity extends BaseActivity implements OnDuelAssista
if (!deckInfo.isCompleteDeck()) { if (!deckInfo.isCompleteDeck()) {
YGOUtil.show("当前卡组缺少完整信息,将只显示已有卡片"); YGOUtil.show("当前卡组缺少完整信息,将只显示已有卡片");
} }
DeckManagerFragment.start(this, file.getAbsolutePath()); switchFragment(fragment_deck_cards, 2);
} 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);
DeckManagerFragment.start(this, file.getAbsolutePath()); switchFragment(fragment_deck_cards, 2);
} 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();
......
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