diff --git a/app/src/main/java/cc/niushuai/dididone/ui/setting/icon/IconFragment.java b/app/src/main/java/cc/niushuai/dididone/ui/setting/icon/IconFragment.java index b7c1813..82d5957 100644 --- a/app/src/main/java/cc/niushuai/dididone/ui/setting/icon/IconFragment.java +++ b/app/src/main/java/cc/niushuai/dididone/ui/setting/icon/IconFragment.java @@ -51,44 +51,44 @@ public class IconFragment extends BaseFragment { @Override public void init() { - initSpinner(); +// initSpinner(); initRecyclerView(); } - private void initSpinner() { - Set keySet = IconRecycleAdapter.ICON_MAP.keySet(); - ArrayList keys = new ArrayList<>(keySet); - Collections.sort(keys); - binding.iconsSelect.setAdapter(new ArrayAdapter(getContext(), com.necer.R.layout.support_simple_spinner_dropdown_item, keys)); - binding.iconsSelect.setSelection(0); - - binding.iconsSelect.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - /** - * @param parent The AdapterView where the selection happened - * @param view The view within the AdapterView that was clicked - * @param position The position of the view in the adapter - * @param id The row id of the item that is selected - */ - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - String key = keys.get(position); - String str = binding.iconsSearch.getText().toString(); - Predicate filter = item -> true; - if (null != str && str.length() > 0) { - filter = item -> item.getIcon().contains(str); - } - iconRecycleAdapter.change(key, filter); - } - - /** - * @param parent The AdapterView that now contains no selected item. - */ - @Override - public void onNothingSelected(AdapterView parent) { - - } - }); - } +// private void initSpinner() { +// Set keySet = IconRecycleAdapter.ICON_MAP.keySet(); +// ArrayList keys = new ArrayList<>(keySet); +// Collections.sort(keys); +// binding.iconsSelect.setAdapter(new ArrayAdapter(getContext(), com.necer.R.layout.support_simple_spinner_dropdown_item, keys)); +// binding.iconsSelect.setSelection(0); +// +// binding.iconsSelect.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { +// /** +// * @param parent The AdapterView where the selection happened +// * @param view The view within the AdapterView that was clicked +// * @param position The position of the view in the adapter +// * @param id The row id of the item that is selected +// */ +// @Override +// public void onItemSelected(AdapterView parent, View view, int position, long id) { +// String key = keys.get(position); +// String str = binding.iconsSearch.getText().toString(); +// Predicate filter = item -> true; +// if (null != str && str.length() > 0) { +// filter = item -> item.getIcon().contains(str); +// } +// iconRecycleAdapter.change(key, filter); +// } +// +// /** +// * @param parent The AdapterView that now contains no selected item. +// */ +// @Override +// public void onNothingSelected(AdapterView parent) { +// +// } +// }); +// } private void initRecyclerView() { binding.iconsRecyclerView.addItemDecoration(new DividerItemDecoration(this.getActivity(), DividerItemDecoration.VERTICAL)); @@ -100,7 +100,7 @@ public class IconFragment extends BaseFragment { LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()); binding.iconsRecyclerView.setLayoutManager(layoutManager); - iconRecycleAdapter = new IconRecycleAdapter(getActivity(), CommunityMaterial.Icon.class); + iconRecycleAdapter = new IconRecycleAdapter(getActivity()); binding.iconsRecyclerView.setAdapter(iconRecycleAdapter); } @@ -129,7 +129,7 @@ public class IconFragment extends BaseFragment { @Override public void afterTextChanged(Editable s) { - iconRecycleAdapter.change(null, item -> item.getIcon().contains(s.toString())); + iconRecycleAdapter.change(item -> item.getIcon().contains(s.toString())); } }); } diff --git a/app/src/main/java/cc/niushuai/dididone/ui/setting/icon/recycle/IconRecycleAdapter.java b/app/src/main/java/cc/niushuai/dididone/ui/setting/icon/recycle/IconRecycleAdapter.java index e3aacc1..b7585c2 100644 --- a/app/src/main/java/cc/niushuai/dididone/ui/setting/icon/recycle/IconRecycleAdapter.java +++ b/app/src/main/java/cc/niushuai/dididone/ui/setting/icon/recycle/IconRecycleAdapter.java @@ -14,6 +14,8 @@ import androidx.recyclerview.widget.RecyclerView; import com.mikepenz.iconics.IconicsDrawable; import com.mikepenz.iconics.typeface.IIcon; +import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -30,15 +32,15 @@ public class IconRecycleAdapter extends RecyclerView.Adapter> ICON_MAP = new HashMap<>(); int selectedPosition = -1; int lastSelectedPosition = -1; - private Class iconClass; + private List allIconList; private List savedIconList; private Activity activity; private String selectedIcon; - public IconRecycleAdapter(Activity activity, Class iconClass) { + public IconRecycleAdapter(Activity activity) { this.activity = activity; - this.iconClass = iconClass; - change(getIconClassName(iconClass), item -> true); + this.allIconList = getIconValues(); + change(item -> true); } public static String getIconClassName(Class iconClass) { @@ -51,14 +53,18 @@ public class IconRecycleAdapter extends RecyclerView.Adapter filter) { - if (null == name) { - name = getIconClassName(iconClass); - } - this.savedIconList = ICON_MAP.get(name).stream().filter(filter).collect(Collectors.toList()); + public void change(Predicate filter) { + this.savedIconList = allIconList.stream().filter(filter).collect(Collectors.toList()); this.notifyDataSetChanged(); } + @NonNull + private static List getIconValues() { + List list = new ArrayList<>(); + ICON_MAP.values().forEach(item -> list.addAll(item)); + return list; + } + /** * @param parent The ViewGroup into which the new View will be added after it is bound to * an adapter position. diff --git a/app/src/main/java/cc/niushuai/dididone/ui/setting/project/NewProjectActivity.java b/app/src/main/java/cc/niushuai/dididone/ui/setting/project/NewProjectActivity.java index a46f71f..ab3ffe2 100644 --- a/app/src/main/java/cc/niushuai/dididone/ui/setting/project/NewProjectActivity.java +++ b/app/src/main/java/cc/niushuai/dididone/ui/setting/project/NewProjectActivity.java @@ -74,7 +74,7 @@ public class NewProjectActivity extends BaseActivity { initIconDialogRecyclerView(iconDialogView); - initIconDialogSpinner(iconDialogView); +// initIconDialogSpinner(iconDialogView); addIconDialogSearchTxtListener(iconDialogView); } @@ -93,7 +93,7 @@ public class NewProjectActivity extends BaseActivity { @Override public void afterTextChanged(Editable s) { - iconRecycleAdapter.change(null, item -> item.getIcon().contains(s.toString())); + iconRecycleAdapter.change(item -> item.getIcon().contains(s.toString())); } }); } @@ -110,35 +110,34 @@ public class NewProjectActivity extends BaseActivity { LinearLayoutManager layoutManager = new LinearLayoutManager(this); iconDialogRecyclerView.setLayoutManager(layoutManager); - iconRecycleAdapter = new IconRecycleAdapter(this, CommunityMaterial.Icon.class); + iconRecycleAdapter = new IconRecycleAdapter(this); iconDialogRecyclerView.setAdapter(iconRecycleAdapter); } private void initIconDialogSpinner(View iconDialogView) { - Set keySet = IconRecycleAdapter.ICON_MAP.keySet(); - ArrayList keys = new ArrayList<>(keySet); - Collections.sort(keys); - - Spinner iconDialogSpinner = iconDialogView.findViewById(R.id.icons_dialog_select); - iconDialogSpinner.setAdapter(new ArrayAdapter(this, com.necer.R.layout.support_simple_spinner_dropdown_item, keys)); - iconDialogSpinner.setSelection(0); - - iconDialogSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - String key = keys.get(position); - String str = ((TextView) iconDialogView.findViewById(R.id.icons_dialog_search)).getText().toString(); - Predicate filter = item -> true; - if (null != str && str.length() > 0) { - filter = item -> item.getIcon().contains(str); - } - iconRecycleAdapter.change(key, filter); - } - - @Override - public void onNothingSelected(AdapterView parent) { - } - }); +// Set keySet = IconRecycleAdapter.ICON_MAP.keySet(); +// ArrayList keys = new ArrayList<>(keySet); +// Collections.sort(keys); +// +// Spinner iconDialogSpinner = iconDialogView.findViewById(R.id.icons_dialog_select); +// iconDialogSpinner.setAdapter(new ArrayAdapter(this, com.necer.R.layout.support_simple_spinner_dropdown_item, keys)); +// iconDialogSpinner.setSelection(0); +// +// iconDialogSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { +// @Override +// public void onItemSelected(AdapterView parent, View view, int position, long id) { +// String str = ((TextView) iconDialogView.findViewById(R.id.icons_dialog_search)).getText().toString(); +// Predicate filter = item -> true; +// if (null != str && str.length() > 0) { +// filter = item -> item.getIcon().contains(str); +// } +// iconRecycleAdapter.change(filter); +// } +// +// @Override +// public void onNothingSelected(AdapterView parent) { +// } +// }); } @Override diff --git a/app/src/main/res/layout/fragment_icon.xml b/app/src/main/res/layout/fragment_icon.xml index 96c91dd..edba456 100644 --- a/app/src/main/res/layout/fragment_icon.xml +++ b/app/src/main/res/layout/fragment_icon.xml @@ -8,11 +8,11 @@ android:padding="10dp" tools:context=".ui.setting.icon.IconFragment"> - + - + android:layout_height="35dp" />-->