From 30bfe441f84513c061f30a39605dc317030cac54 Mon Sep 17 00:00:00 2001 From: Marvin Date: Tue, 17 Mar 2026 16:56:14 -0300 Subject: [PATCH] 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. --- .../notesapp/fragments/NotesListFragment.java | 43 +++++++++++-------- app/src/main/res/values/strings.xml | 8 ++-- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/notesapp/fragments/NotesListFragment.java b/app/src/main/java/com/notesapp/fragments/NotesListFragment.java index f076a1e..cb78d4f 100644 --- a/app/src/main/java/com/notesapp/fragments/NotesListFragment.java +++ b/app/src/main/java/com/notesapp/fragments/NotesListFragment.java @@ -77,7 +77,7 @@ public class NotesListFragment extends Fragment implements NotesAdapter.OnNoteCl sortSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { - String sortOrder = (String) parent.getItemAtPosition(position); + String sortOrder = getSortCodeFromPosition(position); storage.setSortOrder(sortOrder); loadNotes(); } @@ -87,30 +87,37 @@ public class NotesListFragment extends Fragment implements NotesAdapter.OnNoteCl }); } - private void setupFab() { - fab.setOnClickListener(v -> showCreateNoteDialog()); - } - private void loadNotes() { String currentSort = storage.getSortOrder(); - switch (currentSort) { - case "OLDEST_FIRST": - sortSpinner.setSelection(1); - break; - case "A_TO_Z": - sortSpinner.setSelection(2); - break; - case "Z_TO_A": - sortSpinner.setSelection(3); - break; - default: - sortSpinner.setSelection(0); - } + int position = getPositionFromSortCode(currentSort); + sortSpinner.setSelection(position); 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() { AlertDialog.Builder builder = new AlertDialog.Builder(requireContext()); builder.setTitle("Create New Note"); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 45cd390..12ac133 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -3,9 +3,9 @@ Notes - MOST_RECENT - OLDEST_FIRST - A_TO_Z - Z_TO_A + Most Recent + Oldest First + A to Z + Z to A