Commit da056f6b authored by noname's avatar noname

dialogDeckSelect

parent f77175cc
...@@ -167,22 +167,10 @@ public class FileUtils { ...@@ -167,22 +167,10 @@ public class FileUtils {
} }
public static void copyFile(String oldPath, String newPath) throws IOException { public static void copyFile(String oldPath, String newPath) throws IOException {
copyFile(oldPath, newPath, true);
}
public static void copyFile(String oldPath, String newPath, boolean isName) throws IOException {
//判断复制后的路径是否含有文件名,如果没有则加上
if (!isName) {
//由于newPath是路径加文件名,所以获取要复制的文件名与复制后的路径组成新的newPath
String abb[] = oldPath.split("/");
newPath = newPath + "/" + abb[abb.length - 1];
}
FileInputStream fis = new FileInputStream(oldPath); FileInputStream fis = new FileInputStream(oldPath);
FileOutputStream fos = new FileOutputStream(newPath); FileOutputStream fos = new FileOutputStream(newPath);
byte[] buf = new byte[1024]; byte[] buf = new byte[1024];
int len = 0; int len;
while ((len = fis.read(buf)) != -1) { while ((len = fis.read(buf)) != -1) {
fos.write(buf, 0, len); fos.write(buf, 0, len);
} }
......
...@@ -39,391 +39,410 @@ import cn.garymb.ygomobile.utils.recyclerview.DeckTypeTouchHelperCallback; ...@@ -39,391 +39,410 @@ import cn.garymb.ygomobile.utils.recyclerview.DeckTypeTouchHelperCallback;
import static cn.garymb.ygomobile.lite.R.string.please_select_target_category; import static cn.garymb.ygomobile.lite.R.string.please_select_target_category;
public class YGODialogUtil { public class YGODialogUtil {
private static class ViewHolder{
private static final int IMAGE_MOVE = 0;
private static final int IMAGE_COPY = 1; private final int IMAGE_MOVE = 0;
private static final int IMAGE_DEL = 2; private final int IMAGE_COPY = 1;
private final int IMAGE_DEL = 2;
private static LinearLayout ll_move, ll_copy, ll_del, ll_add;
private static ImageView iv_move, iv_copy, iv_del; private final LinearLayout ll_move;
private static TextView tv_move, tv_copy, tv_del; private final LinearLayout ll_copy;
private static TextSelectAdapter typeAdp, deckAdp; private final LinearLayout ll_del;
private static Dialog ygoDialog; private final ImageView iv_move;
private final ImageView iv_copy;
public static void dialogDeckSelect(Context context, String selectDeckPath, OnDeckMenuListener onDeckMenuListener) { private final ImageView iv_del;
DialogUtils du = DialogUtils.getdx(context); private final TextView tv_move;
View viewDialog = du.dialogBottomSheet(R.layout.dialog_deck_select, 0); private final TextView tv_copy;
RecyclerView rv_type, rv_deck; private final TextView tv_del;
private final TextSelectAdapter<DeckType> typeAdp;
rv_deck = viewDialog.findViewById(R.id.rv_deck); private final TextSelectAdapter<DeckFile> deckAdp;
rv_type = viewDialog.findViewById(R.id.rv_type); private final Dialog ygoDialog;
ll_move = viewDialog.findViewById(R.id.ll_move);
ll_copy = viewDialog.findViewById(R.id.ll_copy); public ViewHolder(Context context, String selectDeckPath, OnDeckMenuListener onDeckMenuListener){
ll_del = viewDialog.findViewById(R.id.ll_del); View viewDialog = DialogUtils.getdx(context).dialogBottomSheet(R.layout.dialog_deck_select, 0);
ll_add = viewDialog.findViewById(R.id.ll_add); RecyclerView rv_type, rv_deck;
iv_copy = viewDialog.findViewById(R.id.iv_copy);
iv_move = viewDialog.findViewById(R.id.iv_move); rv_deck = viewDialog.findViewById(R.id.rv_deck);
iv_del = viewDialog.findViewById(R.id.iv_del); rv_type = viewDialog.findViewById(R.id.rv_type);
tv_move = viewDialog.findViewById(R.id.tv_move); ll_move = viewDialog.findViewById(R.id.ll_move);
tv_copy = viewDialog.findViewById(R.id.tv_copy); ll_copy = viewDialog.findViewById(R.id.ll_copy);
tv_del = viewDialog.findViewById(R.id.tv_del); ll_del = viewDialog.findViewById(R.id.ll_del);
LinearLayout ll_add = viewDialog.findViewById(R.id.ll_add);
hideAllDeckUtil(); iv_copy = viewDialog.findViewById(R.id.iv_copy);
rv_deck.setLayoutManager(new LinearLayoutManager(context)); iv_move = viewDialog.findViewById(R.id.iv_move);
rv_type.setLayoutManager(new LinearLayoutManager(context)); iv_del = viewDialog.findViewById(R.id.iv_del);
tv_move = viewDialog.findViewById(R.id.tv_move);
List<DeckType> typeList = DeckUtil.getDeckTypeList(context); tv_copy = viewDialog.findViewById(R.id.tv_copy);
tv_del = viewDialog.findViewById(R.id.tv_del);
int typeSelectPosition = 2;
int deckSelectPosition = -1; hideAllDeckUtil();
List<DeckFile> deckList; rv_deck.setLayoutManager(new LinearLayoutManager(context));
if (!TextUtils.isEmpty(selectDeckPath)) { rv_type.setLayoutManager(new LinearLayoutManager(context));
File file = new File(selectDeckPath);
if (file.exists()) { List<DeckType> typeList = DeckUtil.getDeckTypeList(context);
String name = file.getParentFile().getName();
String lastName = file.getParentFile().getParentFile().getName(); int typeSelectPosition = 2;
if (name.equals("pack") || name.equals("cacheDeck")) { int deckSelectPosition = -1;
//卡包 List<DeckFile> deckList;
typeSelectPosition = 0; if (!TextUtils.isEmpty(selectDeckPath)) {
} else if (name.equals("Decks") && lastName.equals(Constants.WINDBOT_PATH)) { File file = new File(selectDeckPath);
//ai卡组 if (file.exists()) {
typeSelectPosition = 1; String name = file.getParentFile().getName();
} else if (name.equals("deck") && lastName.equals(Constants.PREF_DEF_GAME_DIR)) { String lastName = file.getParentFile().getParentFile().getName();
//如果是deck并且上一个目录是ygocore的话,保证不会把名字为deck的卡包识别为未分类 if (name.equals("pack") || name.equals("cacheDeck")) {
} else { //卡包
//其他卡包 typeSelectPosition = 0;
for (int i = 3; i < typeList.size(); i++) { } else if (name.equals("Decks") && lastName.equals(Constants.WINDBOT_PATH)) {
DeckType deckType = typeList.get(i); //ai卡组
if (deckType.getName().equals(name)) { typeSelectPosition = 1;
typeSelectPosition = i; } else if (name.equals("deck") && lastName.equals(Constants.PREF_DEF_GAME_DIR)) {
break; //如果是deck并且上一个目录是ygocore的话,保证不会把名字为deck的卡包识别为未分类
} else {
//其他卡包
for (int i = 3; i < typeList.size(); i++) {
DeckType deckType = typeList.get(i);
if (deckType.getName().equals(name)) {
typeSelectPosition = i;
break;
}
} }
} }
} }
} }
} deckList = DeckUtil.getDeckList(typeList.get(typeSelectPosition).getPath());
deckList = DeckUtil.getDeckList(typeList.get(typeSelectPosition).getPath()); if (typeSelectPosition == 0) {
if (typeSelectPosition == 0) { if (AppsSettings.get().isReadExpansions()) {
if (AppsSettings.get().isReadExpansions()) { try {
try { deckList.addAll(DeckUtil.getExpansionsDeckList());
deckList.addAll(DeckUtil.getExpansionsDeckList()); } catch (IOException e) {
} catch (IOException e) { YGOUtil.show("额外卡库加载失败,原因为" + e);
YGOUtil.show("额外卡库加载失败,原因为" + e); }
} }
} }
} typeAdp = new TextSelectAdapter<>(typeList, typeSelectPosition);
typeAdp = new TextSelectAdapter<>(typeList, typeSelectPosition); deckAdp = new TextSelectAdapter<>(deckList, deckSelectPosition);
deckAdp = new TextSelectAdapter<>(deckList, deckSelectPosition); rv_type.setAdapter(typeAdp);
rv_type.setAdapter(typeAdp); rv_deck.setAdapter(deckAdp);
rv_deck.setAdapter(deckAdp); typeAdp.setOnItemSelectListener(new TextSelectAdapter.OnItemSelectListener<DeckType>() {
typeAdp.setOnItemSelectListener(new TextSelectAdapter.OnItemSelectListener<DeckType>() { @Override
@Override public void onItemSelect(int position, DeckType item) {
public void onItemSelect(int position, DeckType item) { clearDeckSelect();
clearDeckSelect(); deckList.clear();
deckList.clear(); deckList.addAll(DeckUtil.getDeckList(item.getPath()));
deckList.addAll(DeckUtil.getDeckList(item.getPath())); if (position == 0) {
if (position == 0) { if (AppsSettings.get().isReadExpansions()) {
if (AppsSettings.get().isReadExpansions()) { try {
try { deckList.addAll(DeckUtil.getExpansionsDeckList());
deckList.addAll(DeckUtil.getExpansionsDeckList()); } catch (IOException e) {
} catch (IOException e) { YGOUtil.show("额外卡库加载失败,原因为" + e);
YGOUtil.show("额外卡库加载失败,原因为" + e); }
} }
} }
deckAdp.notifyDataSetChanged();
} }
deckAdp.notifyDataSetChanged(); });
} deckAdp.setOnItemSelectListener(new TextSelectAdapter.OnItemSelectListener<DeckFile>() {
}); @Override
deckAdp.setOnItemSelectListener(new TextSelectAdapter.OnItemSelectListener<DeckFile>() { public void onItemSelect(int position, DeckFile item) {
@Override if (deckAdp.isManySelect()) {
public void onItemSelect(int position, DeckFile item) { deckAdp.addManySelect(item);
if (deckAdp.isManySelect()) { deckAdp.notifyItemChanged(position);
deckAdp.addManySelect(item); } else {
deckAdp.notifyItemChanged(position); dismiss();
} else { onDeckMenuListener.onDeckSelect(item);
dis(); }
onDeckMenuListener.onDeckSelect(item);
} }
} });
}); deckAdp.setOnItemLongClickListener(new BaseQuickAdapter.OnItemLongClickListener() {
deckAdp.setOnItemLongClickListener(new BaseQuickAdapter.OnItemLongClickListener() { @Override
@Override public boolean onItemLongClick(BaseQuickAdapter adapter, View view, int position) {
public boolean onItemLongClick(BaseQuickAdapter adapter, View view, int position) { if (deckAdp.isSelect() || typeAdp.getSelectPosition() == 0)
if (deckAdp.isSelect() || typeAdp.getSelectPosition() == 0) return true;
return true;
deckAdp.setManySelect(true); deckAdp.setManySelect(true);
if (typeAdp.getSelectPosition() == 1) { if (typeAdp.getSelectPosition() == 1) {
showCopyDeckUtil(); showCopyDeckUtil();
} else { } else {
showAllDeckUtil(); showAllDeckUtil();
}
deckAdp.addManySelect((DeckFile) adapter.getItem(position));
deckAdp.notifyItemChanged(position);
return true;
} }
deckAdp.addManySelect((DeckFile) adapter.getItem(position)); });
deckAdp.notifyItemChanged(position);
return true; ll_add.setOnClickListener(new View.OnClickListener() {
} @Override
}); public void onClick(View v) {
DialogUtils.getdx(context).dialogl(context.getString(R.string.new_deck),
ll_add.setOnClickListener(new View.OnClickListener() { new String[]{context.getString(R.string.category_name),
@Override context.getString(R.string.deck_name)}, R.drawable.radius).setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onClick(View v) { @Override
du.dialogl(context.getString(R.string.new_deck), public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
new String[]{context.getString(R.string.category_name), DialogUtils.getdx(context).dis();
context.getString(R.string.deck_name)}, R.drawable.radius).setOnItemClickListener(new AdapterView.OnItemClickListener() { switch (position) {
@Override case 0:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //if (deckList.size()>=8){
du.dis(); // YGOUtil.show("最多只能有5个自定义分类");
switch (position) { //}
case 0: DialogPlus builder = new DialogPlus(context);
//if (deckList.size()>=8){ builder.setTitle(R.string.please_input_category_name);
// YGOUtil.show("最多只能有5个自定义分类"); EditText editText = new EditText(context);
//} editText.setGravity(Gravity.TOP | Gravity.LEFT);
DialogPlus builder = new DialogPlus(context); editText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
builder.setTitle(R.string.please_input_category_name); editText.setSingleLine();
EditText editText = new EditText(context); builder.setContentView(editText);
editText.setGravity(Gravity.TOP | Gravity.LEFT); builder.setOnCloseLinster(DialogInterface::dismiss);
editText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); builder.setLeftButtonListener((dlg, s) -> {
editText.setSingleLine(); String name = editText.getText().toString().trim();
builder.setContentView(editText); if (TextUtils.isEmpty(name)) {
builder.setOnCloseLinster((dlg) -> { YGOUtil.show(context.getString(R.string.invalid_category_name));
dlg.dismiss(); return;
}); }
builder.setLeftButtonListener((dlg, s) -> { File file = new File(AppsSettings.get().getDeckDir(), name);
String name = editText.getText().toString().trim(); if (IOUtils.createFolder(file)) {
if (TextUtils.isEmpty(name)) { typeList.add(new DeckType(name, file.getAbsolutePath()));
YGOUtil.show(context.getString(R.string.invalid_category_name)); typeAdp.notifyItemInserted(typeList.size() - 1);
return; dlg.dismiss();
} } else {
File file = new File(AppsSettings.get().getDeckDir(), name); YGOUtil.show(context.getString(R.string.create_new_failed));
if (IOUtils.createFolder(file)) { }
typeList.add(new DeckType(name, file.getAbsolutePath()));
typeAdp.notifyItemInserted(typeList.size() - 1); });
dlg.dismiss(); builder.show();
} else { break;
YGOUtil.show(context.getString(R.string.create_new_failed)); case 1:
} onDeckMenuListener.onDeckNew(typeList.get(typeAdp.getSelectPosition()));
dismiss();
}); break;
builder.show(); }
break;
case 1:
onDeckMenuListener.onDeckNew(typeList.get(typeAdp.getSelectPosition()));
dis();
break;
} }
} });
}); }
} });
});
ll_move.setOnClickListener(new View.OnClickListener() {
ll_move.setOnClickListener(new View.OnClickListener() { @Override
@Override public void onClick(View v) {
public void onClick(View v) { List<DeckType> otherType = getOtherTypeList();
List<DeckType> otherType = getOtherTypeList();
DialogUtils.getdx(context).dialogl(context.getString(please_select_target_category),
du.dialogl(context.getString(please_select_target_category), getStringType(otherType),
getStringType(otherType), R.drawable.radius).setOnItemClickListener(new AdapterView.OnItemClickListener() {
R.drawable.radius).setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { DialogUtils.getdx(context).dis();
du.dis(); DeckType toType = otherType.get(position);
DeckType toType = otherType.get(position); IOUtils.createFolder(new File(toType.getPath()));
IOUtils.createFolder(new File(toType.getPath())); List<DeckFile> deckFileList = deckAdp.getSelectList();
List<DeckFile> deckFileList = deckAdp.getSelectList(); for (DeckFile deckFile : deckFileList) {
for (DeckFile deckFile : deckFileList) { try {
try { FileUtils.moveFile(deckFile.getPath(), new File(toType.getPath(), deckFile.getName()).getPath());
FileUtils.moveFile(deckFile.getPath(), new File(toType.getPath(), deckFile.getName()).getPath()); } catch (IOException e) {
} catch (IOException e) { e.printStackTrace();
e.printStackTrace(); }
deckList.remove(deckFile);
} }
deckList.remove(deckFile); YGOUtil.show(context.getString(R.string.done));
onDeckMenuListener.onDeckMove(deckAdp.getSelectList(), toType);
clearDeckSelect();
} }
YGOUtil.show(context.getString(R.string.done)); });
onDeckMenuListener.onDeckMove(deckAdp.getSelectList(), toType); }
clearDeckSelect(); });
ll_copy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
List<DeckType> otherType = getOtherTypeList();
DialogUtils.getdx(context).dialogl(context.getString(please_select_target_category),
getStringType(otherType),
R.drawable.radius).setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
DialogUtils.getdx(context).dis();
DeckType toType = otherType.get(position);
IOUtils.createFolder(new File(toType.getPath()));
List<DeckFile> deckFileList = deckAdp.getSelectList();
for (DeckFile deckFile : deckFileList) {
try {
FileUtils.copyFile(deckFile.getPath(), new File(toType.getPath(), deckFile.getName()).getPath());
} catch (IOException e) {
e.printStackTrace();
}
}
YGOUtil.show(context.getString(R.string.done));
onDeckMenuListener.onDeckCopy(deckAdp.getSelectList(), toType);
clearDeckSelect();
}
});
}
});
ll_del.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (deckAdp.getSelectList().size() == 0) {
YGOUtil.show(context.getString(R.string.no_deck_is_selected));
return;
} }
}); DialogPlus dialogPlus = new DialogPlus(context);
} dialogPlus.setMessage(R.string.question_delete_deck);
}); dialogPlus.setLeftButtonText(YGOUtil.s(R.string.delete));
dialogPlus.setRightButtonText(R.string.Cancel);
ll_copy.setOnClickListener(new View.OnClickListener() { dialogPlus.setLeftButtonListener(new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(DialogInterface dialog, int which) {
List<DeckType> otherType = getOtherTypeList(); List<DeckFile> selectDeckList = deckAdp.getSelectList();
for (DeckFile deckFile : selectDeckList) {
du.dialogl(context.getString(please_select_target_category), new File(deckFile.getPath()).delete();
getStringType(otherType), deckList.remove(deckFile);
R.drawable.radius).setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
du.dis();
DeckType toType = otherType.get(position);
IOUtils.createFolder(new File(toType.getPath()));
List<DeckFile> deckFileList = deckAdp.getSelectList();
for (DeckFile deckFile : deckFileList) {
try {
FileUtils.copyFile(deckFile.getPath(), new File(toType.getPath(), deckFile.getName()).getPath());
} catch (IOException e) {
e.printStackTrace();
} }
YGOUtil.show(context.getString(R.string.done));
dialogPlus.dismiss();
onDeckMenuListener.onDeckDel(selectDeckList);
clearDeckSelect();
}
});
dialogPlus.setRightButtonListener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialogPlus.dismiss();
} }
YGOUtil.show(context.getString(R.string.done)); });
onDeckMenuListener.onDeckCopy(deckAdp.getSelectList(), toType); dialogPlus.show();
clearDeckSelect(); }
});
ygoDialog = DialogUtils.getdx(context).getDialog();
ygoDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
clearDeckSelect();
}
});
ygoDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (deckAdp.isManySelect()) {
clearDeckSelect();
return true;
}
} }
}); return false;
}
});
ll_del.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (deckAdp.getSelectList().size() == 0) {
YGOUtil.show(context.getString(R.string.no_deck_is_selected));
return;
} }
DialogPlus dialogPlus = new DialogPlus(context); });
dialogPlus.setMessage(R.string.question_delete_deck); ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new DeckTypeTouchHelperCallback(new OnDeckTypeListener() {
dialogPlus.setLeftButtonText(YGOUtil.s(R.string.delete)); @Override
dialogPlus.setRightButtonText(R.string.Cancel); public void onDeckTypeListener(int positon) {
dialogPlus.setLeftButtonListener(new DialogInterface.OnClickListener() { File file = new File(typeList.get(positon).getPath());
@Override File[] files = file.listFiles();
public void onClick(DialogInterface dialog, int which) { List<DeckFile> deckFileList = new ArrayList<>();
List<DeckFile> selectDeckList = deckAdp.getSelectList(); if (files != null) {
for (DeckFile deckFile : selectDeckList) { for (File file1 : files) {
new File(deckFile.getPath()).delete(); deckFileList.add(new DeckFile(file1));
deckList.remove(deckFile);
} }
YGOUtil.show(context.getString(R.string.done));
dialogPlus.dismiss();
onDeckMenuListener.onDeckDel(selectDeckList);
clearDeckSelect();
} }
}); IOUtils.delete(file);
dialogPlus.setRightButtonListener(new DialogInterface.OnClickListener() { YGOUtil.show(context.getString(R.string.done));
@Override onDeckMenuListener.onDeckDel(deckFileList);
public void onClick(DialogInterface dialog, int which) { typeAdp.remove(positon);
dialogPlus.dismiss(); if (typeAdp.getSelectPosition() == positon) {
typeAdp.setSelectPosition(2);
typeAdp.notifyItemChanged(2);
} }
}); clearDeckSelect();
dialogPlus.show(); deckList.clear();
} deckList.addAll(DeckUtil.getDeckList(typeList.get(2).getPath()));
}); deckAdp.notifyDataSetChanged();
}
}));
itemTouchHelper.attachToRecyclerView(rv_type);
}
ygoDialog = du.getDialog(); private String[] getStringType(List<DeckType> deckTypeList) {
ygoDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { String[] types = new String[deckTypeList.size()];
@Override for (int i = 0; i < types.length; i++) {
public void onDismiss(DialogInterface dialog) { types[i] = deckTypeList.get(i).getName();
clearDeckSelect();
} }
}); return types;
ygoDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { }
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (deckAdp.isManySelect()) {
clearDeckSelect();
return true;
}
//获取可以移动的分类
private List<DeckType> getOtherTypeList() {
List<DeckType> typeList = typeAdp.getData();
List<DeckType> moveTypeList = new ArrayList<>();
DeckType selectType = typeList.get(typeAdp.getSelectPosition());
for (int i = 2; i < typeList.size(); i++) {
DeckType deckType = typeList.get(i);
if (!deckType.getPath().equals(selectType.getPath())) {
moveTypeList.add(deckType);
} }
return false;
}
});
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new DeckTypeTouchHelperCallback(new OnDeckTypeListener() {
@Override
public void onDeckTypeListener(int positon) {
File file = new File(typeList.get(positon).getPath());
File[] files = file.listFiles();
List<DeckFile> deckFileList = new ArrayList<>();
if (files != null) {
for (File file1 : files) {
deckFileList.add(new DeckFile(file1));
}
}
IOUtils.delete(file);
YGOUtil.show(context.getString(R.string.done));
onDeckMenuListener.onDeckDel(deckFileList);
typeAdp.remove(positon);
if (typeAdp.getSelectPosition() == positon) {
typeAdp.setSelectPosition(2);
typeAdp.notifyItemChanged(2);
}
clearDeckSelect();
deckList.clear();
deckList.addAll(DeckUtil.getDeckList(typeList.get(2).getPath()));
deckAdp.notifyDataSetChanged();
} }
})); return moveTypeList;
itemTouchHelper.attachToRecyclerView(rv_type); }
}
private static String[] getStringType(List<DeckType> deckTypeList) { private void showAllDeckUtil() {
String[] types = new String[deckTypeList.size()]; ImageUtil.reImageColor(IMAGE_MOVE, iv_move);//可用时用原图标色
for (int i = 0; i < types.length; i++) { ImageUtil.reImageColor(IMAGE_DEL, iv_del);
types[i] = deckTypeList.get(i).getName(); ImageUtil.reImageColor(IMAGE_COPY, iv_copy);
tv_del.setTextColor(YGOUtil.c(R.color.holo_blue_bright));//可用时字色蓝
tv_copy.setTextColor(YGOUtil.c(R.color.holo_blue_bright));
tv_move.setTextColor(YGOUtil.c(R.color.holo_blue_bright));
ll_del.setEnabled(true);
ll_copy.setEnabled(true);
ll_move.setEnabled(true);
} }
return types;
}
//获取可以移动的分类 private void hideAllDeckUtil() {
private static List<DeckType> getOtherTypeList() { ImageUtil.setGrayImage(IMAGE_MOVE, iv_move);
List<DeckType> typeList = typeAdp.getData(); ImageUtil.setGrayImage(IMAGE_DEL, iv_del);
List<DeckType> moveTypeList = new ArrayList<>(); ImageUtil.setGrayImage(IMAGE_COPY, iv_copy);
DeckType selectType = typeList.get(typeAdp.getSelectPosition()); tv_del.setTextColor(YGOUtil.c(R.color.star_rank));//不可用时字色灰
for (int i = 2; i < typeList.size(); i++) { tv_copy.setTextColor(YGOUtil.c(R.color.star_rank));
DeckType deckType = typeList.get(i); tv_move.setTextColor(YGOUtil.c(R.color.star_rank));
if (!deckType.getPath().equals(selectType.getPath())) { ll_del.setEnabled(false);
moveTypeList.add(deckType); ll_copy.setEnabled(false);
} ll_move.setEnabled(false);
} }
return moveTypeList;
}
private static void showAllDeckUtil() { private void showCopyDeckUtil() {
ImageUtil.reImageColor(IMAGE_MOVE, iv_move);//可用时用原图标色 ImageUtil.setGrayImage(IMAGE_MOVE, iv_move);
ImageUtil.reImageColor(IMAGE_DEL, iv_del); ImageUtil.setGrayImage(IMAGE_DEL, iv_del);
ImageUtil.reImageColor(IMAGE_COPY, iv_copy); ImageUtil.reImageColor(IMAGE_COPY, iv_copy);
tv_del.setTextColor(YGOUtil.c(R.color.holo_blue_bright));//可用时字色蓝 tv_del.setTextColor(YGOUtil.c(R.color.star_rank));
tv_copy.setTextColor(YGOUtil.c(R.color.holo_blue_bright)); tv_copy.setTextColor(YGOUtil.c(R.color.holo_blue_bright));
tv_move.setTextColor(YGOUtil.c(R.color.holo_blue_bright)); tv_move.setTextColor(YGOUtil.c(R.color.star_rank));
ll_del.setEnabled(true); ll_del.setEnabled(false);
ll_copy.setEnabled(true); ll_copy.setEnabled(true);
ll_move.setEnabled(true); ll_move.setEnabled(false);
} }
private static void hideAllDeckUtil() { private void clearDeckSelect() {
ImageUtil.setGrayImage(IMAGE_MOVE, iv_move); deckAdp.setManySelect(false);
ImageUtil.setGrayImage(IMAGE_DEL, iv_del); hideAllDeckUtil();
ImageUtil.setGrayImage(IMAGE_COPY, iv_copy); }
tv_del.setTextColor(YGOUtil.c(R.color.star_rank));//不可用时字色灰
tv_copy.setTextColor(YGOUtil.c(R.color.star_rank));
tv_move.setTextColor(YGOUtil.c(R.color.star_rank));
ll_del.setEnabled(false);
ll_copy.setEnabled(false);
ll_move.setEnabled(false);
}
private static void showCopyDeckUtil() { public void show(){
ImageUtil.setGrayImage(IMAGE_MOVE, iv_move); if(ygoDialog != null && !ygoDialog.isShowing()) {
ImageUtil.setGrayImage(IMAGE_DEL, iv_del); ygoDialog.show();
ImageUtil.reImageColor(IMAGE_COPY, iv_copy); }
tv_del.setTextColor(YGOUtil.c(R.color.star_rank)); }
tv_copy.setTextColor(YGOUtil.c(R.color.holo_blue_bright));
tv_move.setTextColor(YGOUtil.c(R.color.star_rank)); public void dismiss() {
ll_del.setEnabled(false); if (ygoDialog != null && ygoDialog.isShowing())
ll_copy.setEnabled(true); ygoDialog.dismiss();
ll_move.setEnabled(false); }
}
private static void clearDeckSelect() {
deckAdp.setManySelect(false);
hideAllDeckUtil();
} }
public static void dis() {
if (ygoDialog != null) public static void dialogDeckSelect(Context context, String selectDeckPath, OnDeckMenuListener onDeckMenuListener) {
ygoDialog.dismiss(); ViewHolder viewHolder = new ViewHolder(context, selectDeckPath, onDeckMenuListener);
viewHolder.show();
} }
public interface OnDeckMenuListener { public interface OnDeckMenuListener {
......
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