Fix: Sort menu now shows friendly labels instead of CAPS codes

Changed sort_options array back to user-friendly text (Most Recent, A to Z, etc.)
and added position-based mapping in NotesListFragment to convert between display
labels and internal storage codes.

Added helper methods:
- getSortCodeFromPosition(int): Maps spinner position to internal code
- getPositionFromSortCode(String): Maps internal code back to spinner position

This provides much better UX while maintaining full functionality.
This commit is contained in:
Marvin 2026-03-17 16:56:14 -03:00
parent 35bddd27c4
commit 30bfe441f8
2 changed files with 29 additions and 22 deletions

View File

@ -77,7 +77,7 @@ public class NotesListFragment extends Fragment implements NotesAdapter.OnNoteCl
sortSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { sortSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override @Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String sortOrder = (String) parent.getItemAtPosition(position); String sortOrder = getSortCodeFromPosition(position);
storage.setSortOrder(sortOrder); storage.setSortOrder(sortOrder);
loadNotes(); loadNotes();
} }
@ -87,30 +87,37 @@ public class NotesListFragment extends Fragment implements NotesAdapter.OnNoteCl
}); });
} }
private void setupFab() {
fab.setOnClickListener(v -> showCreateNoteDialog());
}
private void loadNotes() { private void loadNotes() {
String currentSort = storage.getSortOrder(); String currentSort = storage.getSortOrder();
switch (currentSort) { int position = getPositionFromSortCode(currentSort);
case "OLDEST_FIRST": sortSpinner.setSelection(position);
sortSpinner.setSelection(1);
break;
case "A_TO_Z":
sortSpinner.setSelection(2);
break;
case "Z_TO_A":
sortSpinner.setSelection(3);
break;
default:
sortSpinner.setSelection(0);
}
adapter.setNotes(storage.getAllNotes()); adapter.setNotes(storage.getAllNotes());
} }
private String getSortCodeFromPosition(int position) {
switch (position) {
case 1: return "OLDEST_FIRST";
case 2: return "A_TO_Z";
case 3: return "Z_TO_A";
default: return "MOST_RECENT";
}
}
private int getPositionFromSortCode(String sortOrder) {
switch (sortOrder) {
case "OLDEST_FIRST": return 1;
case "A_TO_Z": return 2;
case "Z_TO_A": return 3;
default: return 0;
}
}
private void setupFab() {
fab.setOnClickListener(v -> showCreateNoteDialog());
}
private void showCreateNoteDialog() { private void showCreateNoteDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(requireContext()); AlertDialog.Builder builder = new AlertDialog.Builder(requireContext());
builder.setTitle("Create New Note"); builder.setTitle("Create New Note");

View File

@ -3,9 +3,9 @@
<string name="app_name">Notes</string> <string name="app_name">Notes</string>
<string-array name="sort_options"> <string-array name="sort_options">
<item>MOST_RECENT</item> <item>Most Recent</item>
<item>OLDEST_FIRST</item> <item>Oldest First</item>
<item>A_TO_Z</item> <item>A to Z</item>
<item>Z_TO_A</item> <item>Z to A</item>
</string-array> </string-array>
</resources> </resources>