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:
parent
35bddd27c4
commit
30bfe441f8
|
|
@ -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");
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
<string name="app_name">Notes</string>
|
||||
|
||||
<string-array name="sort_options">
|
||||
<item>MOST_RECENT</item>
|
||||
<item>OLDEST_FIRST</item>
|
||||
<item>A_TO_Z</item>
|
||||
<item>Z_TO_A</item>
|
||||
<item>Most Recent</item>
|
||||
<item>Oldest First</item>
|
||||
<item>A to Z</item>
|
||||
<item>Z to A</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
|
|
|
|||
Loading…
Reference in New Issue