Android app built with MVVM architecture for writing down notes and saving them locally.
- Uses Room database to store notes / tags.
- Fragments to (only) show all notes, favorites, reminders (notes which have reminder set), trash.
- Sets date and time formatting depending on user country, user can also override this in settings activity.
- Search notes (title / text), query run as the user type.
- Sort alphabetically (title), by creation or modified date, with favorites on top. Dynamically updated in background view as user selects how to sort.
- Deleting notes put them in the trash, deleting them from trashed state completely deletes them.
- Set reminder date / time for a note, this will send a system notification containing title + text to the user.
- Switch between light / dark theme, icons / clickable backgrounds change accordingly.
- Add tags to notes to allow user specific sorting.
- Favoritize notes.
- Take a photo and add it to Note.
If you are going to clone this repository, please note that in order for gradle to sync properly you either need to modify the keystore parameters or remove the line signingConfig signingConfigs.config
in (buildTypes -> release) inside the app level build.gradle.
This app uses Google Firebase but the required google-services.json file is not published on github for security reasons so in order for the app to run you have two options:
1. Add your own google-services.json file at app/google-services.json
which you get from the Firebase console.
2. Remove dependencies + code which are related to Firebase:
In build.gradle (project), remove the lines:
classpath 'com.google.gms:google-services:x.x.x'
classpath 'com.google.firebase:perf-plugin:x.x.x'
In build.gradle (app), remove the lines:
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.firebase-perf'
implementation "com.google.firebase:firebase-analytics:x.x.x"
implementation "com.google.firebase:firebase-perf:x.x.x"
Remove all lines of code pointing to and the AnalyticsUtil.java
class.