Commit e7a7ff7d authored by fallenstardust's avatar fallenstardust

设置传递卡组路径到deck fragment

parent 604ac41e
......@@ -18,7 +18,6 @@ import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
import androidx.fragment.app.Fragment;
import com.ourygo.assistant.util.YGODAUtil;
......@@ -42,7 +41,7 @@ import ocgcore.DataManager;
public class GameUriManager {
private Activity activity;
private Fragment fragment;
private HomeFragment homeFragment;
private String fname;
public GameUriManager(Activity activity) {
......@@ -214,8 +213,8 @@ public class GameUriManager {
boolean isLua = file.getName().toLowerCase(Locale.US).endsWith(".lua");
Log.i(Constants.TAG, "open file:" + uri + "->" + file.getAbsolutePath());
if (isYdk) {
startSetting.putExtra("flag", 2);
startSetting.putExtra(Intent.EXTRA_TEXT, file.getAbsolutePath());
activity.startActivity(startSetting);
} else if (isYpk) {
if (!AppsSettings.get().isReadExpansions()) {
startSetting.putExtra("flag", 4);
......@@ -255,14 +254,14 @@ public class GameUriManager {
if (!deckInfo.isCompleteDeck()) {
YGOUtil.show("当前卡组缺少完整信息,将只显示已有卡片");
}
startSetting.putExtra("flag", 2);
startSetting.putExtra(Intent.EXTRA_TEXT, file.getAbsolutePath());
activity.startActivity(startSetting);
}
} else if (Constants.URI_ROOM.equals(host)) {
YGODAUtil.deRoomListener(uri, (host1, port, password, exception) -> {
if (TextUtils.isEmpty(exception))
if (fragment instanceof HomeFragment) {
HomeFragment homeFragment = (HomeFragment) fragment;
if (activity instanceof MainActivity) {
homeFragment = new HomeFragment();
homeFragment.quickjoinRoom(host1, port, password);
} else {
YGOUtil.show(exception);
......@@ -295,8 +294,8 @@ public class GameUriManager {
}
if (deck != null && deck.exists()) {
Intent startSetting = new Intent(activity, MainActivity.class);
startSetting.putExtra("flag", 2);
startSetting.putExtra(Intent.EXTRA_TEXT, deck.getAbsolutePath());
activity.startActivity(startSetting);
} else {
Log.w("kk", "no find " + name);
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;
import cn.garymb.ygomobile.ui.cards.deck.DeckItemTouchHelper;
import cn.garymb.ygomobile.ui.cards.deck.DeckItemType;
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.mycard.mcchat.util.ImageUtil;
import cn.garymb.ygomobile.ui.plus.AOnGestureListener;
......@@ -200,12 +199,14 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
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_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();
}
public void preLoadFile() {
String preLoadFile = getActivity().getIntent().getStringExtra(Intent.EXTRA_TEXT);
Bundle bundle = getArguments();
String preLoadFile = bundle.getString("setDeck");
final File _file;
//打开指定卡组
if (!TextUtils.isEmpty(preLoadFile) && (mPreLoadFile = new File(preLoadFile)).exists()) {
......@@ -224,12 +225,6 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
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() {
mCardListAdapter.setOnItemClickListener((adapter, view, position) -> {
onCardClick(view, mCardListAdapter.getItem(position), position);
......@@ -287,6 +282,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
@Override
public void onUserInvisible() {
/*
if (mDeckAdapater.isChanged()) {
File ydk = mDeckAdapater.getYdkFile();
if (ydk != null && ydk.exists()) {
......@@ -317,7 +313,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
if (mDrawerLayout.isDrawerOpen(Gravity.LEFT)) {
mDrawerLayout.closeDrawer(Gravity.LEFT);
return;
}
}*/
}
@Override
......
......@@ -99,20 +99,24 @@ public abstract class HomeActivity extends BaseActivity implements OnDuelAssista
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
String strDeck = "";
int mFlag = intent.getIntExtra("flag", 0);
if (mFlag == 4) { //判断获取到的flag值
switchFragment(fragment_personal, 4);
} else if (mFlag == 3) {
switchFragment(fragment_mycard,3);
} else if (mFlag == 2) {
switchFragment(fragment_deck_cards,2);
} else if (mFlag == 1) {
switchFragment(fragment_search,1);
switchFragment(fragment_mycard, 3);
} else if (intent.hasExtra(Intent.EXTRA_TEXT)) {
strDeck = intent.getStringExtra(Intent.EXTRA_TEXT);
Toast.makeText(getActivity(), strDeck, Toast.LENGTH_LONG).show();
fragment_deck_cards.init(new File(strDeck));
switchFragment(fragment_deck_cards, 2);
String strDeck = intent.getStringExtra(Intent.EXTRA_TEXT);
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
if (!deckInfo.isCompleteDeck()) {
YGOUtil.show("当前卡组缺少完整信息,将只显示已有卡片");
}
DeckManagerFragment.start(this, file.getAbsolutePath());
switchFragment(fragment_deck_cards, 2);
} else {
//如果是卡组文本
try {
//以当前时间戳作为卡组名保存卡组
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) {
e.printStackTrace();
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