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. |
||
|---|---|---|
| app | ||
| gradle/wrapper | ||
| gradle-8.0 | ||
| .gitignore | ||
| README.md | ||
| build.gradle | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| settings.gradle | ||
README.md
Notes App
A lightweight personal notes app for Android with plain text and checklist note types.
Features
- Two Note Types: Plain text notes and checklists
- Dark Mode Only: Optimized for low-light usage
- Sortable List: Sort by date (most/oldest) or alphabetically (A-Z/Z-A)
- Swipe to Delete: Swipe any note left/right to delete with confirmation
- Auto-save: Notes are automatically saved as you type
- Checklist Features:
- Add/remove items
- Toggle checkboxes
- Progress indicator (X/Y completed)
- "Delete All Checked" button - Remove all checked items at once
Requirements
- Android Studio Hedgehog or later
- JDK 17
- Minimum SDK: API 24 (Android 7.0)
- Target SDK: API 34 (Android 14)
How to Build
- Open Android Studio
- Select File > Open and navigate to the
NotesAppfolder - Wait for Gradle sync to complete
- Connect an Android device or start an emulator (API 24+)
- Click Run (Shift+F10) or select Run > Run 'app'
Project Structure
NotesApp/
├── app/src/main/java/com/notesapp/
│ ├── MainActivity.java # Main activity hosting fragments
│ ├── fragments/
│ │ ├── NotesListFragment.java # Note list with sorting & swipe-to-delete
│ │ └── NoteEditorFragment.java # Editor for text and checklist notes
│ ├── adapters/
│ │ ├── NotesAdapter.java # RecyclerView adapter for note cards
│ │ └── ChecklistAdapter.java # RecyclerView adapter for checklist items
│ ├── models/
│ │ ├── Note.java # Data model with JSON serialization
│ │ └── ChecklistItem.java # Checklist item data model
│ └── utils/
│ └── NotesStorage.java # SharedPreferences storage layer
├── app/src/main/res/
│ ├── layout/ # XML layouts
│ ├── drawable/ # Vector icons
│ └── values/ # Colors, strings, themes
└── build.gradle # App configuration
Storage
Notes are stored in SharedPreferences with the following structure:
note_count: Next available IDsort_order: Current sort preference- Per-note data (JSON serialized): type, title, content/items, timestamp
License
Personal use only.