Go to file
Marvin 3af91ed8c0 Fix: Properly initialize original values when loading notes from storage
When deserializing a Note from JSON, the constructor was called first which
initialized original tracking with empty values. Then the JSON fields were
parsed and set, but hasChanges() would always return true because it compared
the loaded content against empty originals.

Solution: Call markAsSaved() after parsing in fromJson() to update the original
tracking with the actual loaded data.
2026-03-17 16:30:49 -03:00
app Fix: Properly initialize original values when loading notes from storage 2026-03-17 16:30:49 -03:00
gradle/wrapper Initial commit: Notes App with text and checklist support 2026-03-17 14:51:36 -03:00
gradle-8.0 Initial commit: Notes App with text and checklist support 2026-03-17 14:51:36 -03:00
.gitignore Initial commit: Notes App with text and checklist support 2026-03-17 14:51:36 -03:00
README.md Initial commit: Notes App with text and checklist support 2026-03-17 14:51:36 -03:00
build.gradle Initial commit: Notes App with text and checklist support 2026-03-17 14:51:36 -03:00
gradle.properties Initial commit: Notes App with text and checklist support 2026-03-17 14:51:36 -03:00
gradlew Initial commit: Notes App with text and checklist support 2026-03-17 14:51:36 -03:00
gradlew.bat Initial commit: Notes App with text and checklist support 2026-03-17 14:51:36 -03:00
settings.gradle Initial commit: Notes App with text and checklist support 2026-03-17 14:51:36 -03:00

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

  1. Open Android Studio
  2. Select File > Open and navigate to the NotesApp folder
  3. Wait for Gradle sync to complete
  4. Connect an Android device or start an emulator (API 24+)
  5. 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 ID
  • sort_order: Current sort preference
  • Per-note data (JSON serialized): type, title, content/items, timestamp

License

Personal use only.