Commit cf96fb31 authored by fallenstardust's avatar fallenstardust

文件名搜卡组

parent 9cc0da2c
...@@ -3,8 +3,11 @@ package cn.garymb.ygomobile.utils; ...@@ -3,8 +3,11 @@ package cn.garymb.ygomobile.utils;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.os.Build; import android.os.Build;
import android.text.Editable;
import android.text.InputType; import android.text.InputType;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Gravity; import android.view.Gravity;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.View; import android.view.View;
...@@ -40,11 +43,14 @@ import cn.garymb.ygomobile.ui.plus.DialogPlus; ...@@ -40,11 +43,14 @@ import cn.garymb.ygomobile.ui.plus.DialogPlus;
import cn.garymb.ygomobile.utils.recyclerview.DeckTypeTouchHelperCallback; import cn.garymb.ygomobile.utils.recyclerview.DeckTypeTouchHelperCallback;
public class YGODialogUtil { public class YGODialogUtil {
private static String TAG = "YGODialogUtil";
public static void dialogDeckSelect(Context context, String selectDeckPath, OnDeckMenuListener onDeckMenuListener) { public static void dialogDeckSelect(Context context, String selectDeckPath, OnDeckMenuListener onDeckMenuListener) {
ViewHolder viewHolder = new ViewHolder(context, selectDeckPath, onDeckMenuListener); ViewHolder viewHolder = new ViewHolder(context, selectDeckPath, onDeckMenuListener);
viewHolder.show(); viewHolder.show();
} }
public interface OnDeckMenuListener { public interface OnDeckMenuListener {
void onDeckSelect(DeckFile deckFile); void onDeckSelect(DeckFile deckFile);
...@@ -67,7 +73,8 @@ public class YGODialogUtil { ...@@ -67,7 +73,8 @@ public class YGODialogUtil {
private final int IMAGE_MOVE = 0; private final int IMAGE_MOVE = 0;
private final int IMAGE_COPY = 1; private final int IMAGE_COPY = 1;
private final int IMAGE_DEL = 2; private final int IMAGE_DEL = 2;
private final EditText et_input_deck_name;
private final LinearLayout ll_main_ui;
private final LinearLayout ll_move; private final LinearLayout ll_move;
private final LinearLayout ll_copy; private final LinearLayout ll_copy;
private final LinearLayout ll_del; private final LinearLayout ll_del;
...@@ -86,10 +93,14 @@ public class YGODialogUtil { ...@@ -86,10 +93,14 @@ public class YGODialogUtil {
ygoDialog = new DialogPlus(context); ygoDialog = new DialogPlus(context);
ygoDialog.setContentView(R.layout.dialog_deck_select); ygoDialog.setContentView(R.layout.dialog_deck_select);
ygoDialog.setTitle(R.string.category_manager); ygoDialog.setTitle(R.string.category_manager);
RecyclerView rv_type, rv_deck;
et_input_deck_name = ygoDialog.findViewById(R.id.input_deck_name);
RecyclerView rv_type, rv_deck, rv_result_list;
ll_main_ui = ygoDialog.findViewById(R.id.ll_main_ui);
rv_deck = ygoDialog.findViewById(R.id.rv_deck); rv_deck = ygoDialog.findViewById(R.id.rv_deck);
rv_type = ygoDialog.findViewById(R.id.rv_type); rv_type = ygoDialog.findViewById(R.id.rv_type);
rv_result_list = ygoDialog.findViewById(R.id.rv_result_list);
ll_move = ygoDialog.findViewById(R.id.ll_move); ll_move = ygoDialog.findViewById(R.id.ll_move);
ll_copy = ygoDialog.findViewById(R.id.ll_copy); ll_copy = ygoDialog.findViewById(R.id.ll_copy);
ll_del = ygoDialog.findViewById(R.id.ll_del); ll_del = ygoDialog.findViewById(R.id.ll_del);
...@@ -104,6 +115,7 @@ public class YGODialogUtil { ...@@ -104,6 +115,7 @@ public class YGODialogUtil {
hideAllDeckUtil(); hideAllDeckUtil();
rv_deck.setLayoutManager(new FastScrollLinearLayoutManager(context)); rv_deck.setLayoutManager(new FastScrollLinearLayoutManager(context));
rv_type.setLayoutManager(new FastScrollLinearLayoutManager(context)); rv_type.setLayoutManager(new FastScrollLinearLayoutManager(context));
rv_result_list.setLayoutManager(new FastScrollLinearLayoutManager(context));
List<DeckType> typeList = DeckUtil.getDeckTypeList(context); List<DeckType> typeList = DeckUtil.getDeckTypeList(context);
...@@ -136,10 +148,15 @@ public class YGODialogUtil { ...@@ -136,10 +148,15 @@ public class YGODialogUtil {
} }
} }
deckList = DeckUtil.getDeckList(typeList.get(typeSelectPosition).getPath()); deckList = DeckUtil.getDeckList(typeList.get(typeSelectPosition).getPath());
List<DeckFile> allDeckList = new ArrayList<>();
for (int i = 0; i < typeList.size(); i++) {
allDeckList.addAll(DeckUtil.getDeckList(typeList.get(i).getPath()));
Log.i(TAG, allDeckList.size() + "");
}
if (typeSelectPosition == 0) { if (typeSelectPosition == 0) {
if (AppsSettings.get().isReadExpansions()) { if (AppsSettings.get().isReadExpansions()) {
try { try {
deckList.addAll(DeckUtil.getExpansionsDeckList()); deckList.addAll(0, DeckUtil.getExpansionsDeckList());
} catch (IOException e) { } catch (IOException e) {
YGOUtil.show("额外卡库加载失败,原因为" + e); YGOUtil.show("额外卡库加载失败,原因为" + e);
} }
...@@ -158,7 +175,7 @@ public class YGODialogUtil { ...@@ -158,7 +175,7 @@ public class YGODialogUtil {
if (position == 0) { if (position == 0) {
if (AppsSettings.get().isReadExpansions()) { if (AppsSettings.get().isReadExpansions()) {
try { try {
deckList.addAll(DeckUtil.getExpansionsDeckList()); deckList.addAll(0, DeckUtil.getExpansionsDeckList());
} catch (IOException e) { } catch (IOException e) {
YGOUtil.show("额外卡库加载失败,原因为" + e); YGOUtil.show("额外卡库加载失败,原因为" + e);
} }
...@@ -172,7 +189,7 @@ public class YGODialogUtil { ...@@ -172,7 +189,7 @@ public class YGODialogUtil {
public void onItemSelect(int position, DeckFile item) { public void onItemSelect(int position, DeckFile item) {
if (deckAdp.isManySelect()) { if (deckAdp.isManySelect()) {
deckAdp.addManySelect(item); deckAdp.addManySelect(item);
if(deckAdp.getSelectList().size() == 0) { if (deckAdp.getSelectList().size() == 0) {
clearDeckSelect(); clearDeckSelect();
} }
deckAdp.notifyItemChanged(position); deckAdp.notifyItemChanged(position);
...@@ -195,13 +212,55 @@ public class YGODialogUtil { ...@@ -195,13 +212,55 @@ public class YGODialogUtil {
showAllDeckUtil(); showAllDeckUtil();
} }
deckAdp.addManySelect((DeckFile) adapter.getItem(position)); deckAdp.addManySelect((DeckFile) adapter.getItem(position));
if(deckAdp.getSelectList().size() == 0) { if (deckAdp.getSelectList().size() == 0) {
clearDeckSelect(); clearDeckSelect();
} }
deckAdp.notifyItemChanged(position); deckAdp.notifyItemChanged(position);
return true; return true;
} }
}); });
List<DeckFile> resultList = new ArrayList<>();
DeckListAdapter<DeckFile> resultListAdapter = new DeckListAdapter<DeckFile>(context, resultList, -1);
rv_result_list.setAdapter(resultListAdapter);
resultListAdapter.setOnItemSelectListener(new DeckListAdapter.OnItemSelectListener<DeckFile>() {
@Override
public void onItemSelect(int position, DeckFile item) {
rv_result_list.setVisibility(View.GONE);
ll_main_ui.setVisibility(View.VISIBLE);
et_input_deck_name.getEditableText().clear();
dismiss();
onDeckMenuListener.onDeckSelect(item);
}
});
et_input_deck_name.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// 输入中监听
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// 输入前的监听
}
@Override
public void afterTextChanged(Editable s) {
// 输入后的监听
resultList.clear();
String keyword = et_input_deck_name.getText().toString();
if (keyword.isEmpty()) {
ll_main_ui.setVisibility(View.VISIBLE);
rv_result_list.setVisibility(View.GONE);
} else {
resultList.addAll(getResultList(keyword, allDeckList));
rv_result_list.setVisibility(View.VISIBLE);
ll_main_ui.setVisibility(View.GONE);
Log.i(TAG, et_input_deck_name.getText().toString() + "和" + resultList.size());
resultListAdapter.notifyDataSetChanged();
}
}
});
ll_add.setOnClickListener(new View.OnClickListener() { ll_add.setOnClickListener(new View.OnClickListener() {
@Override @Override
...@@ -422,6 +481,15 @@ public class YGODialogUtil { ...@@ -422,6 +481,15 @@ public class YGODialogUtil {
return types; return types;
} }
private List<DeckFile> getResultList(String keyword, List<DeckFile> deckList) {
List<DeckFile> resultList = new ArrayList<>();
for (int i = 0; i < deckList.size(); i++) {
if (deckList.get(i).getFileName().toLowerCase().contains(keyword.toLowerCase()))
resultList.add(deckList.get(i));
}
return resultList;
}
private List<String> getStringTypeList(List<DeckType> deckTypeList) { private List<String> getStringTypeList(List<DeckType> deckTypeList) {
List<String> typeList = new ArrayList<>(); List<String> typeList = new ArrayList<>();
for (int i = 0; i < deckTypeList.size(); i++) { for (int i = 0; i < deckTypeList.size(); i++) {
......
...@@ -12,13 +12,12 @@ ...@@ -12,13 +12,12 @@
android:layout_marginBottom="5dp" android:layout_marginBottom="5dp"
android:orientation="vertical"> android:orientation="vertical">
<androidx.appcompat.widget.AppCompatEditText <EditText
android:id="@+id/input_deck_name" android:id="@+id/input_deck_name"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="48dp" android:layout_height="48dp"
android:gravity="center" android:gravity="center"
android:hint="@string/intpu_name" android:hint="@string/intpu_name"
android:imeOptions="actionDone"
android:inputType="textNoSuggestions" android:inputType="textNoSuggestions"
android:singleLine="true" android:singleLine="true"
android:textColor="@color/holo_blue_bright" android:textColor="@color/holo_blue_bright"
...@@ -26,151 +25,157 @@ ...@@ -26,151 +25,157 @@
<com.tubb.smrv.SwipeMenuRecyclerView <com.tubb.smrv.SwipeMenuRecyclerView
android:id="@+id/rv_result_list" android:id="@+id/rv_result_list"
android:layout_width="0dp" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="2"
android:divider="@android:color/transparent" android:divider="@android:color/transparent"
android:dividerHeight="4dp" android:dividerHeight="4dp"
android:scrollbars="vertical" android:scrollbars="vertical"
android:visibility="gone"/> android:visibility="gone" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/ll_main_ui" android:id="@+id/ll_main_ui"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="5dp" android:orientation="vertical">
android:layout_marginBottom="5dp"
android:orientation="horizontal">
<LinearLayout <LinearLayout
android:id="@+id/ll_add" android:layout_width="match_parent"
android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_marginTop="5dp"
android:background="@android:color/transparent" android:layout_marginBottom="5dp"
android:gravity="center" android:orientation="horizontal">
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatImageView <LinearLayout
android:id="@+id/iv_add" android:id="@+id/ll_add"
android:layout_width="30dp" android:layout_width="0dp"
android:layout_height="30dp"
app:srcCompat="@drawable/ic_add" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="3dp" android:layout_weight="1"
android:text="@string/new_deck" android:background="@android:color/transparent"
android:textColor="@color/holo_blue_bright" android:gravity="center"
android:textSize="12sp" /> android:orientation="vertical">
</LinearLayout>
<androidx.appcompat.widget.AppCompatImageView
<LinearLayout android:id="@+id/iv_add"
android:id="@+id/ll_move" android:layout_width="30dp"
android:layout_width="0dp" android:layout_height="30dp"
android:layout_height="wrap_content" app:srcCompat="@drawable/ic_add" />
android:layout_weight="1"
android:background="@android:color/transparent" <androidx.appcompat.widget.AppCompatTextView
android:gravity="center" android:id="@+id/tv_add"
android:orientation="vertical"> android:layout_width="wrap_content"
android:layout_height="wrap_content"
<androidx.appcompat.widget.AppCompatImageView android:layout_marginTop="3dp"
android:id="@+id/iv_move" android:text="@string/new_deck"
android:layout_width="30dp" android:textColor="@color/holo_blue_bright"
android:layout_height="30dp" android:textSize="12sp" />
app:srcCompat="@drawable/ic_move" /> </LinearLayout>
<androidx.appcompat.widget.AppCompatTextView <LinearLayout
android:id="@+id/tv_move" android:id="@+id/ll_move"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="3dp" android:layout_weight="1"
android:text="@string/move_deck" android:background="@android:color/transparent"
android:textColor="@color/holo_blue_bright" android:gravity="center"
android:textSize="12sp" /> android:orientation="vertical">
</LinearLayout>
<androidx.appcompat.widget.AppCompatImageView
<LinearLayout android:id="@+id/iv_move"
android:id="@+id/ll_copy" android:layout_width="30dp"
android:layout_width="0dp" android:layout_height="30dp"
android:layout_height="wrap_content" app:srcCompat="@drawable/ic_move" />
android:layout_weight="1"
android:background="@android:color/transparent" <androidx.appcompat.widget.AppCompatTextView
android:gravity="center" android:id="@+id/tv_move"
android:orientation="vertical"> android:layout_width="wrap_content"
android:layout_height="wrap_content"
<androidx.appcompat.widget.AppCompatImageView android:layout_marginTop="3dp"
android:id="@+id/iv_copy" android:text="@string/move_deck"
android:layout_width="30dp" android:textColor="@color/holo_blue_bright"
android:layout_height="30dp" android:textSize="12sp" />
app:srcCompat="@drawable/ic_copy" /> </LinearLayout>
<androidx.appcompat.widget.AppCompatTextView <LinearLayout
android:id="@+id/tv_copy" android:id="@+id/ll_copy"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="3dp" android:layout_weight="1"
android:text="@string/copy_deck" android:background="@android:color/transparent"
android:textColor="@color/holo_blue_bright" android:gravity="center"
android:textSize="12sp" /> android:orientation="vertical">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_copy"
android:layout_width="30dp"
android:layout_height="30dp"
app:srcCompat="@drawable/ic_copy" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_copy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:text="@string/copy_deck"
android:textColor="@color/holo_blue_bright"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_del"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/transparent"
android:gravity="center"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_del"
android:layout_width="30dp"
android:layout_height="30dp"
app:srcCompat="@drawable/ic_del" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_del"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:text="@string/delete_deck"
android:textColor="@color/holo_blue_bright"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/ll_del" android:layout_width="match_parent"
android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:orientation="horizontal"
android:background="@android:color/transparent" android:weightSum="3">
android:gravity="center"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatImageView <com.tubb.smrv.SwipeMenuRecyclerView
android:id="@+id/iv_del" android:id="@+id/rv_type"
android:layout_width="30dp" android:layout_width="0dp"
android:layout_height="30dp" android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_del" /> android:layout_weight="1"
android:divider="@android:color/transparent"
<androidx.appcompat.widget.AppCompatTextView android:dividerHeight="4dp"
android:id="@+id/tv_del" android:scrollbars="vertical" />
android:layout_width="wrap_content"
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/holo_blue_light" />
<com.tubb.smrv.SwipeMenuRecyclerView
android:id="@+id/rv_deck"
android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="3dp" android:layout_weight="2"
android:text="@string/delete_deck" android:divider="@android:color/transparent"
android:textColor="@color/holo_blue_bright" android:dividerHeight="4dp"
android:textSize="12sp" /> android:scrollbars="vertical" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="3">
<com.tubb.smrv.SwipeMenuRecyclerView
android:id="@+id/rv_type"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:divider="@android:color/transparent"
android:dividerHeight="4dp"
android:scrollbars="vertical" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/holo_blue_light" />
<com.tubb.smrv.SwipeMenuRecyclerView
android:id="@+id/rv_deck"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:divider="@android:color/transparent"
android:dividerHeight="4dp"
android:scrollbars="vertical" />
</LinearLayout>
</LinearLayout> </LinearLayout>
\ No newline at end of file
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