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() {
|
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");
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue