From c99ec286d0e643062d9fa5259d95cf6e2e22a692 Mon Sep 17 00:00:00 2001 From: Fabian Date: Thu, 4 Mar 2021 23:15:06 +0100 Subject: [PATCH] Implement insanely polished version of HUE 18 --- .gitignore | 10 + app/.gitignore | 1 + app/build.gradle | 47 +++++ app/proguard-rules.pro | 21 +++ app/src/main/AndroidManifest.xml | 25 +++ .../me/profiluefter/profinote/MainActivity.kt | 103 +++++++++++ .../profinote/NoteDetailsActivity.kt | 30 +++ .../profinote/NoteEditorActivity.kt | 83 +++++++++ .../me/profiluefter/profinote/NotesAdapter.kt | 72 ++++++++ .../profinote/data/CSVDataLoader.kt | 53 ++++++ .../profiluefter/profinote/data/DataLoader.kt | 9 + .../profinote/data/SampleDataLoader.kt | 24 +++ .../profinote/data/ServiceLocator.kt | 5 + .../profinote/models/MainActivityViewModel.kt | 52 ++++++ .../me/profiluefter/profinote/models/Note.kt | 42 +++++ .../models/NoteEditorActivityViewModel.kt | 47 +++++ .../baseline_delete_white_18.png | Bin 0 -> 160 bytes .../baseline_delete_white_20.png | Bin 0 -> 160 bytes .../baseline_delete_white_24.png | Bin 0 -> 158 bytes .../baseline_delete_white_36.png | Bin 0 -> 198 bytes .../baseline_delete_white_48.png | Bin 0 -> 192 bytes .../drawable-hdpi/baseline_edit_white_18.png | Bin 0 -> 172 bytes .../drawable-hdpi/baseline_edit_white_20.png | Bin 0 -> 184 bytes .../drawable-hdpi/baseline_edit_white_24.png | Bin 0 -> 194 bytes .../drawable-hdpi/baseline_edit_white_36.png | Bin 0 -> 243 bytes .../drawable-hdpi/baseline_edit_white_48.png | Bin 0 -> 275 bytes .../drawable-hdpi/baseline_save_white_18.png | Bin 0 -> 197 bytes .../drawable-hdpi/baseline_save_white_20.png | Bin 0 -> 214 bytes .../drawable-hdpi/baseline_save_white_24.png | Bin 0 -> 215 bytes .../drawable-hdpi/baseline_save_white_36.png | Bin 0 -> 290 bytes .../drawable-hdpi/baseline_save_white_48.png | Bin 0 -> 324 bytes .../drawable-hdpi/baseline_task_white_18.png | Bin 0 -> 266 bytes .../drawable-hdpi/baseline_task_white_20.png | Bin 0 -> 278 bytes .../drawable-hdpi/baseline_task_white_24.png | Bin 0 -> 290 bytes .../drawable-hdpi/baseline_task_white_36.png | Bin 0 -> 416 bytes .../drawable-hdpi/baseline_task_white_48.png | Bin 0 -> 486 bytes .../outline_error_outline_white_18.png | Bin 0 -> 306 bytes .../outline_error_outline_white_20.png | Bin 0 -> 306 bytes .../outline_error_outline_white_24.png | Bin 0 -> 380 bytes .../outline_error_outline_white_36.png | Bin 0 -> 544 bytes .../outline_error_outline_white_48.png | Bin 0 -> 695 bytes .../drawable-hdpi/sharp_add_task_white_18.png | Bin 0 -> 357 bytes .../drawable-hdpi/sharp_add_task_white_20.png | Bin 0 -> 369 bytes .../drawable-hdpi/sharp_add_task_white_24.png | Bin 0 -> 436 bytes .../drawable-hdpi/sharp_add_task_white_36.png | Bin 0 -> 616 bytes .../drawable-hdpi/sharp_add_task_white_48.png | Bin 0 -> 798 bytes .../baseline_delete_white_18.png | Bin 0 -> 155 bytes .../baseline_delete_white_20.png | Bin 0 -> 109 bytes .../baseline_delete_white_24.png | Bin 0 -> 116 bytes .../baseline_delete_white_36.png | Bin 0 -> 158 bytes .../baseline_delete_white_48.png | Bin 0 -> 151 bytes .../drawable-mdpi/baseline_edit_white_18.png | Bin 0 -> 147 bytes .../drawable-mdpi/baseline_edit_white_20.png | Bin 0 -> 160 bytes .../drawable-mdpi/baseline_edit_white_24.png | Bin 0 -> 147 bytes .../drawable-mdpi/baseline_edit_white_36.png | Bin 0 -> 194 bytes .../drawable-mdpi/baseline_edit_white_48.png | Bin 0 -> 218 bytes .../drawable-mdpi/baseline_save_white_18.png | Bin 0 -> 163 bytes .../drawable-mdpi/baseline_save_white_20.png | Bin 0 -> 185 bytes .../drawable-mdpi/baseline_save_white_24.png | Bin 0 -> 152 bytes .../drawable-mdpi/baseline_save_white_36.png | Bin 0 -> 215 bytes .../drawable-mdpi/baseline_save_white_48.png | Bin 0 -> 236 bytes .../drawable-mdpi/baseline_task_white_18.png | Bin 0 -> 198 bytes .../drawable-mdpi/baseline_task_white_20.png | Bin 0 -> 179 bytes .../drawable-mdpi/baseline_task_white_24.png | Bin 0 -> 212 bytes .../drawable-mdpi/baseline_task_white_36.png | Bin 0 -> 290 bytes .../drawable-mdpi/baseline_task_white_48.png | Bin 0 -> 356 bytes .../outline_error_outline_white_18.png | Bin 0 -> 218 bytes .../outline_error_outline_white_20.png | Bin 0 -> 236 bytes .../outline_error_outline_white_24.png | Bin 0 -> 246 bytes .../outline_error_outline_white_36.png | Bin 0 -> 380 bytes .../outline_error_outline_white_48.png | Bin 0 -> 474 bytes .../drawable-mdpi/sharp_add_task_white_18.png | Bin 0 -> 246 bytes .../drawable-mdpi/sharp_add_task_white_20.png | Bin 0 -> 291 bytes .../drawable-mdpi/sharp_add_task_white_24.png | Bin 0 -> 306 bytes .../drawable-mdpi/sharp_add_task_white_36.png | Bin 0 -> 436 bytes .../drawable-mdpi/sharp_add_task_white_48.png | Bin 0 -> 545 bytes .../drawable-v24/ic_launcher_foreground.xml | 31 ++++ .../baseline_delete_white_18.png | Bin 0 -> 158 bytes .../baseline_delete_white_20.png | Bin 0 -> 141 bytes .../baseline_delete_white_24.png | Bin 0 -> 151 bytes .../baseline_delete_white_36.png | Bin 0 -> 192 bytes .../baseline_delete_white_48.png | Bin 0 -> 239 bytes .../drawable-xhdpi/baseline_edit_white_18.png | Bin 0 -> 194 bytes .../drawable-xhdpi/baseline_edit_white_20.png | Bin 0 -> 193 bytes .../drawable-xhdpi/baseline_edit_white_24.png | Bin 0 -> 218 bytes .../drawable-xhdpi/baseline_edit_white_36.png | Bin 0 -> 275 bytes .../drawable-xhdpi/baseline_edit_white_48.png | Bin 0 -> 341 bytes .../drawable-xhdpi/baseline_save_white_18.png | Bin 0 -> 215 bytes .../drawable-xhdpi/baseline_save_white_20.png | Bin 0 -> 261 bytes .../drawable-xhdpi/baseline_save_white_24.png | Bin 0 -> 236 bytes .../drawable-xhdpi/baseline_save_white_36.png | Bin 0 -> 324 bytes .../drawable-xhdpi/baseline_save_white_48.png | Bin 0 -> 444 bytes .../drawable-xhdpi/baseline_task_white_18.png | Bin 0 -> 290 bytes .../drawable-xhdpi/baseline_task_white_20.png | Bin 0 -> 273 bytes .../drawable-xhdpi/baseline_task_white_24.png | Bin 0 -> 356 bytes .../drawable-xhdpi/baseline_task_white_36.png | Bin 0 -> 486 bytes .../drawable-xhdpi/baseline_task_white_48.png | Bin 0 -> 616 bytes .../outline_error_outline_white_18.png | Bin 0 -> 380 bytes .../outline_error_outline_white_20.png | Bin 0 -> 425 bytes .../outline_error_outline_white_24.png | Bin 0 -> 474 bytes .../outline_error_outline_white_36.png | Bin 0 -> 695 bytes .../outline_error_outline_white_48.png | Bin 0 -> 969 bytes .../sharp_add_task_white_18.png | Bin 0 -> 436 bytes .../sharp_add_task_white_20.png | Bin 0 -> 485 bytes .../sharp_add_task_white_24.png | Bin 0 -> 545 bytes .../sharp_add_task_white_36.png | Bin 0 -> 798 bytes .../sharp_add_task_white_48.png | Bin 0 -> 1030 bytes .../baseline_delete_white_18.png | Bin 0 -> 198 bytes .../baseline_delete_white_20.png | Bin 0 -> 179 bytes .../baseline_delete_white_24.png | Bin 0 -> 192 bytes .../baseline_delete_white_36.png | Bin 0 -> 283 bytes .../baseline_delete_white_48.png | Bin 0 -> 343 bytes .../baseline_edit_white_18.png | Bin 0 -> 243 bytes .../baseline_edit_white_20.png | Bin 0 -> 254 bytes .../baseline_edit_white_24.png | Bin 0 -> 275 bytes .../baseline_edit_white_36.png | Bin 0 -> 387 bytes .../baseline_edit_white_48.png | Bin 0 -> 478 bytes .../baseline_save_white_18.png | Bin 0 -> 290 bytes .../baseline_save_white_20.png | Bin 0 -> 313 bytes .../baseline_save_white_24.png | Bin 0 -> 324 bytes .../baseline_save_white_36.png | Bin 0 -> 532 bytes .../baseline_save_white_48.png | Bin 0 -> 661 bytes .../baseline_task_white_18.png | Bin 0 -> 416 bytes .../baseline_task_white_20.png | Bin 0 -> 378 bytes .../baseline_task_white_24.png | Bin 0 -> 486 bytes .../baseline_task_white_36.png | Bin 0 -> 699 bytes .../baseline_task_white_48.png | Bin 0 -> 909 bytes .../outline_error_outline_white_18.png | Bin 0 -> 544 bytes .../outline_error_outline_white_20.png | Bin 0 -> 605 bytes .../outline_error_outline_white_24.png | Bin 0 -> 695 bytes .../outline_error_outline_white_36.png | Bin 0 -> 1118 bytes .../outline_error_outline_white_48.png | Bin 0 -> 1533 bytes .../sharp_add_task_white_18.png | Bin 0 -> 616 bytes .../sharp_add_task_white_20.png | Bin 0 -> 647 bytes .../sharp_add_task_white_24.png | Bin 0 -> 798 bytes .../sharp_add_task_white_36.png | Bin 0 -> 1179 bytes .../sharp_add_task_white_48.png | Bin 0 -> 1585 bytes .../baseline_delete_white_18.png | Bin 0 -> 192 bytes .../baseline_delete_white_20.png | Bin 0 -> 220 bytes .../baseline_delete_white_24.png | Bin 0 -> 239 bytes .../baseline_delete_white_36.png | Bin 0 -> 343 bytes .../baseline_delete_white_48.png | Bin 0 -> 451 bytes .../baseline_edit_white_18.png | Bin 0 -> 275 bytes .../baseline_edit_white_20.png | Bin 0 -> 290 bytes .../baseline_edit_white_24.png | Bin 0 -> 341 bytes .../baseline_edit_white_36.png | Bin 0 -> 478 bytes .../baseline_edit_white_48.png | Bin 0 -> 582 bytes .../baseline_save_white_18.png | Bin 0 -> 324 bytes .../baseline_save_white_20.png | Bin 0 -> 462 bytes .../baseline_save_white_24.png | Bin 0 -> 444 bytes .../baseline_save_white_36.png | Bin 0 -> 661 bytes .../baseline_save_white_48.png | Bin 0 -> 868 bytes .../baseline_task_white_18.png | Bin 0 -> 486 bytes .../baseline_task_white_20.png | Bin 0 -> 461 bytes .../baseline_task_white_24.png | Bin 0 -> 616 bytes .../baseline_task_white_36.png | Bin 0 -> 909 bytes .../baseline_task_white_48.png | Bin 0 -> 1234 bytes .../outline_error_outline_white_18.png | Bin 0 -> 695 bytes .../outline_error_outline_white_20.png | Bin 0 -> 821 bytes .../outline_error_outline_white_24.png | Bin 0 -> 969 bytes .../outline_error_outline_white_36.png | Bin 0 -> 1533 bytes .../outline_error_outline_white_48.png | Bin 0 -> 2219 bytes .../sharp_add_task_white_18.png | Bin 0 -> 798 bytes .../sharp_add_task_white_20.png | Bin 0 -> 890 bytes .../sharp_add_task_white_24.png | Bin 0 -> 1030 bytes .../sharp_add_task_white_36.png | Bin 0 -> 1585 bytes .../sharp_add_task_white_48.png | Bin 0 -> 2327 bytes .../main/res/drawable/baseline_delete_20.xml | 10 + .../main/res/drawable/baseline_delete_24.xml | 10 + .../main/res/drawable/baseline_edit_24.xml | 10 + .../main/res/drawable/baseline_save_24.xml | 10 + .../main/res/drawable/baseline_task_20.xml | 10 + .../main/res/drawable/baseline_task_24.xml | 10 + .../res/drawable/ic_launcher_background.xml | 74 ++++++++ .../res/drawable/outline_error_outline_24.xml | 10 + .../main/res/drawable/sharp_add_task_24.xml | 10 + app/src/main/res/layout/activity_main.xml | 48 +++++ .../main/res/layout/activity_note_details.xml | 74 ++++++++ .../main/res/layout/activity_note_editor.xml | 105 +++++++++++ .../main/res/layout/recycler_view_item.xml | 62 +++++++ app/src/main/res/menu/main_menu.xml | 16 ++ app/src/main/res/menu/note_action_menu.xml | 16 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3593 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5339 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2636 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 3388 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4926 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7472 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7909 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 11873 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10652 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 16570 bytes app/src/main/res/values-night/themes.xml | 16 ++ app/src/main/res/values/colors.xml | 10 + app/src/main/res/values/strings.xml | 19 ++ app/src/main/res/values/themes.xml | 16 ++ build.gradle | 26 +++ gradle.properties | 21 +++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54329 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 172 ++++++++++++++++++ gradlew.bat | 84 +++++++++ settings.gradle | 2 + 205 files changed, 1512 insertions(+) create mode 100644 .gitignore create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/me/profiluefter/profinote/MainActivity.kt create mode 100644 app/src/main/java/me/profiluefter/profinote/NoteDetailsActivity.kt create mode 100644 app/src/main/java/me/profiluefter/profinote/NoteEditorActivity.kt create mode 100644 app/src/main/java/me/profiluefter/profinote/NotesAdapter.kt create mode 100644 app/src/main/java/me/profiluefter/profinote/data/CSVDataLoader.kt create mode 100644 app/src/main/java/me/profiluefter/profinote/data/DataLoader.kt create mode 100644 app/src/main/java/me/profiluefter/profinote/data/SampleDataLoader.kt create mode 100644 app/src/main/java/me/profiluefter/profinote/data/ServiceLocator.kt create mode 100644 app/src/main/java/me/profiluefter/profinote/models/MainActivityViewModel.kt create mode 100644 app/src/main/java/me/profiluefter/profinote/models/Note.kt create mode 100644 app/src/main/java/me/profiluefter/profinote/models/NoteEditorActivityViewModel.kt create mode 100644 app/src/main/res/drawable-hdpi/baseline_delete_white_18.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_delete_white_20.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_delete_white_24.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_delete_white_36.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_delete_white_48.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_edit_white_18.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_edit_white_20.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_edit_white_24.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_edit_white_36.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_edit_white_48.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_save_white_18.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_save_white_20.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_save_white_24.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_save_white_36.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_save_white_48.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_task_white_18.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_task_white_20.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_task_white_24.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_task_white_36.png create mode 100644 app/src/main/res/drawable-hdpi/baseline_task_white_48.png create mode 100644 app/src/main/res/drawable-hdpi/outline_error_outline_white_18.png create mode 100644 app/src/main/res/drawable-hdpi/outline_error_outline_white_20.png create mode 100644 app/src/main/res/drawable-hdpi/outline_error_outline_white_24.png create mode 100644 app/src/main/res/drawable-hdpi/outline_error_outline_white_36.png create mode 100644 app/src/main/res/drawable-hdpi/outline_error_outline_white_48.png create mode 100644 app/src/main/res/drawable-hdpi/sharp_add_task_white_18.png create mode 100644 app/src/main/res/drawable-hdpi/sharp_add_task_white_20.png create mode 100644 app/src/main/res/drawable-hdpi/sharp_add_task_white_24.png create mode 100644 app/src/main/res/drawable-hdpi/sharp_add_task_white_36.png create mode 100644 app/src/main/res/drawable-hdpi/sharp_add_task_white_48.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_delete_white_18.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_delete_white_20.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_delete_white_24.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_delete_white_36.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_delete_white_48.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_edit_white_18.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_edit_white_20.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_edit_white_24.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_edit_white_36.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_edit_white_48.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_save_white_18.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_save_white_20.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_save_white_24.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_save_white_36.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_save_white_48.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_task_white_18.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_task_white_20.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_task_white_24.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_task_white_36.png create mode 100644 app/src/main/res/drawable-mdpi/baseline_task_white_48.png create mode 100644 app/src/main/res/drawable-mdpi/outline_error_outline_white_18.png create mode 100644 app/src/main/res/drawable-mdpi/outline_error_outline_white_20.png create mode 100644 app/src/main/res/drawable-mdpi/outline_error_outline_white_24.png create mode 100644 app/src/main/res/drawable-mdpi/outline_error_outline_white_36.png create mode 100644 app/src/main/res/drawable-mdpi/outline_error_outline_white_48.png create mode 100644 app/src/main/res/drawable-mdpi/sharp_add_task_white_18.png create mode 100644 app/src/main/res/drawable-mdpi/sharp_add_task_white_20.png create mode 100644 app/src/main/res/drawable-mdpi/sharp_add_task_white_24.png create mode 100644 app/src/main/res/drawable-mdpi/sharp_add_task_white_36.png create mode 100644 app/src/main/res/drawable-mdpi/sharp_add_task_white_48.png create mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable-xhdpi/baseline_delete_white_18.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_delete_white_20.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_delete_white_24.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_delete_white_36.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_delete_white_48.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_edit_white_18.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_edit_white_20.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_edit_white_24.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_edit_white_36.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_edit_white_48.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_save_white_18.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_save_white_20.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_save_white_24.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_save_white_36.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_save_white_48.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_task_white_18.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_task_white_20.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_task_white_24.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_task_white_36.png create mode 100644 app/src/main/res/drawable-xhdpi/baseline_task_white_48.png create mode 100644 app/src/main/res/drawable-xhdpi/outline_error_outline_white_18.png create mode 100644 app/src/main/res/drawable-xhdpi/outline_error_outline_white_20.png create mode 100644 app/src/main/res/drawable-xhdpi/outline_error_outline_white_24.png create mode 100644 app/src/main/res/drawable-xhdpi/outline_error_outline_white_36.png create mode 100644 app/src/main/res/drawable-xhdpi/outline_error_outline_white_48.png create mode 100644 app/src/main/res/drawable-xhdpi/sharp_add_task_white_18.png create mode 100644 app/src/main/res/drawable-xhdpi/sharp_add_task_white_20.png create mode 100644 app/src/main/res/drawable-xhdpi/sharp_add_task_white_24.png create mode 100644 app/src/main/res/drawable-xhdpi/sharp_add_task_white_36.png create mode 100644 app/src/main/res/drawable-xhdpi/sharp_add_task_white_48.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_delete_white_18.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_delete_white_20.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_delete_white_24.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_delete_white_36.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_delete_white_48.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_edit_white_18.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_edit_white_20.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_edit_white_24.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_edit_white_36.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_edit_white_48.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_save_white_18.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_save_white_20.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_save_white_24.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_save_white_36.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_save_white_48.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_task_white_18.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_task_white_20.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_task_white_24.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_task_white_36.png create mode 100644 app/src/main/res/drawable-xxhdpi/baseline_task_white_48.png create mode 100644 app/src/main/res/drawable-xxhdpi/outline_error_outline_white_18.png create mode 100644 app/src/main/res/drawable-xxhdpi/outline_error_outline_white_20.png create mode 100644 app/src/main/res/drawable-xxhdpi/outline_error_outline_white_24.png create mode 100644 app/src/main/res/drawable-xxhdpi/outline_error_outline_white_36.png create mode 100644 app/src/main/res/drawable-xxhdpi/outline_error_outline_white_48.png create mode 100644 app/src/main/res/drawable-xxhdpi/sharp_add_task_white_18.png create mode 100644 app/src/main/res/drawable-xxhdpi/sharp_add_task_white_20.png create mode 100644 app/src/main/res/drawable-xxhdpi/sharp_add_task_white_24.png create mode 100644 app/src/main/res/drawable-xxhdpi/sharp_add_task_white_36.png create mode 100644 app/src/main/res/drawable-xxhdpi/sharp_add_task_white_48.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_delete_white_18.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_delete_white_20.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_delete_white_24.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_delete_white_36.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_delete_white_48.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_edit_white_18.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_edit_white_20.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_edit_white_24.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_edit_white_36.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_edit_white_48.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_save_white_18.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_save_white_20.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_save_white_24.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_save_white_36.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_save_white_48.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_task_white_18.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_task_white_20.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_task_white_24.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_task_white_36.png create mode 100644 app/src/main/res/drawable-xxxhdpi/baseline_task_white_48.png create mode 100644 app/src/main/res/drawable-xxxhdpi/outline_error_outline_white_18.png create mode 100644 app/src/main/res/drawable-xxxhdpi/outline_error_outline_white_20.png create mode 100644 app/src/main/res/drawable-xxxhdpi/outline_error_outline_white_24.png create mode 100644 app/src/main/res/drawable-xxxhdpi/outline_error_outline_white_36.png create mode 100644 app/src/main/res/drawable-xxxhdpi/outline_error_outline_white_48.png create mode 100644 app/src/main/res/drawable-xxxhdpi/sharp_add_task_white_18.png create mode 100644 app/src/main/res/drawable-xxxhdpi/sharp_add_task_white_20.png create mode 100644 app/src/main/res/drawable-xxxhdpi/sharp_add_task_white_24.png create mode 100644 app/src/main/res/drawable-xxxhdpi/sharp_add_task_white_36.png create mode 100644 app/src/main/res/drawable-xxxhdpi/sharp_add_task_white_48.png create mode 100644 app/src/main/res/drawable/baseline_delete_20.xml create mode 100644 app/src/main/res/drawable/baseline_delete_24.xml create mode 100644 app/src/main/res/drawable/baseline_edit_24.xml create mode 100644 app/src/main/res/drawable/baseline_save_24.xml create mode 100644 app/src/main/res/drawable/baseline_task_20.xml create mode 100644 app/src/main/res/drawable/baseline_task_24.xml create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/drawable/outline_error_outline_24.xml create mode 100644 app/src/main/res/drawable/sharp_add_task_24.xml create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/activity_note_details.xml create mode 100644 app/src/main/res/layout/activity_note_editor.xml create mode 100644 app/src/main/res/layout/recycler_view_item.xml create mode 100644 app/src/main/res/menu/main_menu.xml create mode 100644 app/src/main/res/menu/note_action_menu.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/values-night/themes.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/themes.xml create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..10cfdbf --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +*.iml +.gradle +/local.properties +/.idea +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..d009d33 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,47 @@ +plugins { + id 'com.android.application' + id 'kotlin-android' +} + +android { + compileSdkVersion 30 + + defaultConfig { + applicationId "me.profiluefter.profinote" + minSdkVersion 24 + targetSdkVersion 30 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + buildFeatures { +// viewBinding true + dataBinding true + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation 'androidx.core:core-ktx:1.3.2' + implementation 'androidx.activity:activity-ktx:1.2.0' + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'com.google.android.material:material:1.3.0' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0' +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..c77aeed --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/me/profiluefter/profinote/MainActivity.kt b/app/src/main/java/me/profiluefter/profinote/MainActivity.kt new file mode 100644 index 0000000..4a97783 --- /dev/null +++ b/app/src/main/java/me/profiluefter/profinote/MainActivity.kt @@ -0,0 +1,103 @@ +package me.profiluefter.profinote + +import android.content.Intent +import android.os.Bundle +import android.view.Menu +import android.view.MenuItem +import android.view.View +import androidx.activity.viewModels +import androidx.appcompat.app.AppCompatActivity +import androidx.databinding.DataBindingUtil +import androidx.recyclerview.widget.DividerItemDecoration +import androidx.recyclerview.widget.RecyclerView +import com.google.android.material.snackbar.Snackbar +import me.profiluefter.profinote.databinding.ActivityMainBinding +import me.profiluefter.profinote.models.MainActivityViewModel +import me.profiluefter.profinote.models.Note + +class MainActivity : AppCompatActivity() { + private val viewModel: MainActivityViewModel by viewModels() + + private val editorRequestCode = 187 + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val binding: ActivityMainBinding = + DataBindingUtil.setContentView(this, R.layout.activity_main) + + binding.viewModel = viewModel + binding.lifecycleOwner = this + + val adapter = NotesAdapter(viewModel.notes.value!!, this) + viewModel.notes.observe(this) { + adapter.notes = it + } + + val recyclerView = findViewById(R.id.notes) + recyclerView.adapter = adapter + recyclerView.addItemDecoration( + DividerItemDecoration( + recyclerView.context, + DividerItemDecoration.VERTICAL + ) + ) + } + + override fun onCreateOptionsMenu(menu: Menu?): Boolean { + menuInflater.inflate(R.menu.main_menu, menu) + return super.onCreateOptionsMenu(menu) + } + + fun onNewNote(item: MenuItem) { + val intent = Intent(this, NoteEditorActivity::class.java) + intent.putExtra("position", -1) + startActivityForResult( + intent, + editorRequestCode + ) //TODO: Replace with registerForActivityResult(StartActivityForResult()) + } + + fun onSaveNotes(item: MenuItem) { + viewModel.saveNotes() + Snackbar.make(findViewById(R.id.notes), R.string.saved_notes, Snackbar.LENGTH_SHORT).show() + } + + fun onEditNote(index: Int) { + val intent = Intent(this, NoteEditorActivity::class.java) + intent.putExtra("position", index) + intent.putExtra("note", viewModel.notes.value!![index]) + startActivityForResult( + intent, + editorRequestCode + ) //TODO: Replace with registerForActivityResult(StartActivityForResult()) + } + + fun onShowNoteDetails(index: Int) { + val intent = Intent(this, NoteDetailsActivity::class.java) + intent.putExtra("note", viewModel.notes.value!![index]) + startActivity(intent) + } + + fun onDeleteNote(index: Int, view: View) { + val note = viewModel.notes.value!![index] + viewModel.deleteNote(index) + val snackbar = Snackbar.make(view, R.string.note_deleted, Snackbar.LENGTH_SHORT) + snackbar.setAction(R.string.undo) { + viewModel.setNote(-1, note) + } + snackbar.show() + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + when (requestCode) { + editorRequestCode -> { + if (resultCode != RESULT_OK) return + + val note = data!!.getSerializableExtra("note") as Note + val position = data.getIntExtra("position", -1) + viewModel.setNote(position, note) + } + else -> super.onActivityResult(requestCode, resultCode, data) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/me/profiluefter/profinote/NoteDetailsActivity.kt b/app/src/main/java/me/profiluefter/profinote/NoteDetailsActivity.kt new file mode 100644 index 0000000..08c6b2c --- /dev/null +++ b/app/src/main/java/me/profiluefter/profinote/NoteDetailsActivity.kt @@ -0,0 +1,30 @@ +package me.profiluefter.profinote + +import android.os.Bundle +import android.view.MenuItem +import androidx.appcompat.app.AppCompatActivity +import androidx.databinding.DataBindingUtil +import me.profiluefter.profinote.databinding.ActivityNoteDetailsBinding +import me.profiluefter.profinote.models.Note + +class NoteDetailsActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val binding: ActivityNoteDetailsBinding = + DataBindingUtil.setContentView(this, R.layout.activity_note_details) + + binding.lifecycleOwner = this + binding.note = intent.extras!!["note"] as Note + supportActionBar?.setDisplayHomeAsUpEnabled(true) + } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + return when (item.itemId) { + android.R.id.home -> { + finish() + true + } + else -> super.onOptionsItemSelected(item) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/me/profiluefter/profinote/NoteEditorActivity.kt b/app/src/main/java/me/profiluefter/profinote/NoteEditorActivity.kt new file mode 100644 index 0000000..3740bc7 --- /dev/null +++ b/app/src/main/java/me/profiluefter/profinote/NoteEditorActivity.kt @@ -0,0 +1,83 @@ +package me.profiluefter.profinote + +import android.app.DatePickerDialog +import android.app.TimePickerDialog +import android.content.Intent +import android.os.Bundle +import android.view.MenuItem +import android.view.View +import androidx.activity.viewModels +import androidx.appcompat.app.AppCompatActivity +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import me.profiluefter.profinote.databinding.ActivityNoteEditorBinding +import me.profiluefter.profinote.models.Note +import me.profiluefter.profinote.models.NoteEditorActivityViewModel +import java.util.* + +class NoteEditorActivity : AppCompatActivity() { + private val viewModel: NoteEditorActivityViewModel by viewModels { + object : ViewModelProvider.Factory { + override fun create(modelClass: Class): T { + return modelClass.getConstructor(Note::class.java, Int::class.java) + .newInstance( + intent.getSerializableExtra("note") as Note?, + intent.getIntExtra("position", -1) + ) + } + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val binding = ActivityNoteEditorBinding.inflate(layoutInflater) + binding.lifecycleOwner = this + binding.viewModel = viewModel + setContentView(binding.root) + + supportActionBar?.setDisplayHomeAsUpEnabled(true) + } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + return when (item.itemId) { + android.R.id.home -> { + setResult(RESULT_CANCELED) + finish() + true + } + else -> super.onOptionsItemSelected(item) + } + } + + fun saveNote(view: View) { + val intent = Intent() + intent.putExtra("note", viewModel.note) + intent.putExtra("position", viewModel.notePosition) + setResult(RESULT_OK, intent) + finish() + } + + fun openTimePicker(view: View) { + val calendar = Calendar.getInstance() + val dialog = TimePickerDialog( + this, + { _, hour, minute -> viewModel.setTime(hour, minute) }, + calendar.get(Calendar.HOUR_OF_DAY), + calendar.get(Calendar.MINUTE), + false + ) + dialog.show() + } + + fun openDatePicker(view: View) { + val calendar = Calendar.getInstance() + val dialog = DatePickerDialog( + this, + { _, year, month, day -> viewModel.setDate(day, month, year) }, + calendar.get(Calendar.YEAR), + calendar.get(Calendar.MONTH), + calendar.get(Calendar.DAY_OF_MONTH) + ) + dialog.show() + } +} \ No newline at end of file diff --git a/app/src/main/java/me/profiluefter/profinote/NotesAdapter.kt b/app/src/main/java/me/profiluefter/profinote/NotesAdapter.kt new file mode 100644 index 0000000..cf4b710 --- /dev/null +++ b/app/src/main/java/me/profiluefter/profinote/NotesAdapter.kt @@ -0,0 +1,72 @@ +package me.profiluefter.profinote + +import android.annotation.SuppressLint +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.PopupMenu +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import me.profiluefter.profinote.models.Note +import me.profiluefter.profinote.models.date +import me.profiluefter.profinote.models.overdue +import me.profiluefter.profinote.models.time + +class NotesAdapter(notes: List, private val context: MainActivity) : + RecyclerView.Adapter() { + var notes: List = notes + set(value) { + field = value + notifyDataSetChanged() + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ViewHolder( + LayoutInflater.from(parent.context).inflate(R.layout.recycler_view_item, parent, false), + context + ) + + @SuppressLint("SetTextI18n") + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + val note = notes[position] + + holder.title.text = note.title + + val warning = if (note.overdue) R.drawable.outline_error_outline_24 else 0 + holder.title.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, warning, 0) + + holder.date.text = note.date + holder.time.text = note.time + + holder.description.text = note.description + } + + override fun getItemCount() = notes.size + + class ViewHolder(view: View, context: MainActivity) : RecyclerView.ViewHolder(view) { + val title: TextView = view.findViewById(R.id.itemTitle) + val date: TextView = view.findViewById(R.id.itemDate) + val time: TextView = view.findViewById(R.id.itemTime) + val description: TextView = view.findViewById(R.id.itemDescription) + + init { + view.setOnClickListener { + context.onShowNoteDetails(this.adapterPosition) + } + + view.setOnLongClickListener { + val menu = PopupMenu(context, view) + menu.inflate(R.menu.note_action_menu) + menu.setOnMenuItemClickListener { + when(it.itemId) { + R.id.note_action_edit -> context.onEditNote(this.adapterPosition) + R.id.note_action_details -> context.onShowNoteDetails(this.adapterPosition) + R.id.note_action_delete -> context.onDeleteNote(this.adapterPosition, view) + } + true + } + menu.show() + true + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/me/profiluefter/profinote/data/CSVDataLoader.kt b/app/src/main/java/me/profiluefter/profinote/data/CSVDataLoader.kt new file mode 100644 index 0000000..522e991 --- /dev/null +++ b/app/src/main/java/me/profiluefter/profinote/data/CSVDataLoader.kt @@ -0,0 +1,53 @@ +package me.profiluefter.profinote.data + +import android.app.Application +import android.content.Context +import android.util.Log +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext +import me.profiluefter.profinote.models.Note +import java.io.FileNotFoundException +import java.net.URLDecoder +import java.net.URLEncoder + +private const val TAG = "CSVDataLoader" + +class CSVDataLoader(private val fileName: String) : DataLoader { + override suspend fun load(app: Application): List = withContext(Dispatchers.IO) { + try { + @Suppress("BlockingMethodInNonBlockingContext") + app.openFileInput(fileName).bufferedReader().useLines { lines -> + lines.map { fromCSV(it) }.toList() + } + } catch (e: FileNotFoundException) { + emptyList() + } + } + + override suspend fun save(notes: List, app: Application) = withContext(Dispatchers.IO) { + Log.i(TAG,"Saving ${notes.size} notes.") + + @Suppress("BlockingMethodInNonBlockingContext") + app.openFileOutput(fileName, Context.MODE_PRIVATE).bufferedWriter().use { writer -> + notes.map { toCSV(it) }.forEach { writer.appendLine(it) } + } + } + + private fun fromCSV(line: String): Note { + var (title, minute, hour, day, month, year, description) = line.split(";") + title = URLDecoder.decode(title, "UTF-8") + description = URLDecoder.decode(description, "UTF-8") + Log.v(TAG, "Parsed note \"$title\".") + return Note(title, minute.toInt(), hour.toInt(), day.toInt(), month.toInt(), year.toInt(), description) + } + + private fun toCSV(note: Note): String = note.run { + Log.v(TAG, "Serializing note \"$title\".") + fun encode(string: String) = URLEncoder.encode(string, "UTF-8") + "${encode(title)};$minute;$hour;$day;$month;$year;${encode(description)}" + } +} + +// Helper for object destructuring in CSVDataLoader#fromCSV(String) +private operator fun List.component6(): T = get(5) +private operator fun List.component7(): T = get(6) diff --git a/app/src/main/java/me/profiluefter/profinote/data/DataLoader.kt b/app/src/main/java/me/profiluefter/profinote/data/DataLoader.kt new file mode 100644 index 0000000..36062b4 --- /dev/null +++ b/app/src/main/java/me/profiluefter/profinote/data/DataLoader.kt @@ -0,0 +1,9 @@ +package me.profiluefter.profinote.data + +import android.app.Application +import me.profiluefter.profinote.models.Note + +interface DataLoader { + suspend fun load(app: Application): List + suspend fun save(notes: List, app: Application) +} diff --git a/app/src/main/java/me/profiluefter/profinote/data/SampleDataLoader.kt b/app/src/main/java/me/profiluefter/profinote/data/SampleDataLoader.kt new file mode 100644 index 0000000..2ae9ff6 --- /dev/null +++ b/app/src/main/java/me/profiluefter/profinote/data/SampleDataLoader.kt @@ -0,0 +1,24 @@ +package me.profiluefter.profinote.data + +import android.app.Application +import android.util.Log +import me.profiluefter.profinote.models.Note +import kotlin.math.min +import kotlin.random.Random +import kotlin.random.nextInt + +private const val TAG = "SampleDataLoader" + +class SampleDataLoader : DataLoader { + override suspend fun load(app: Application): List = Array(10) { + Note( + "Sleep $it ${"is important for your health because it helps your body to regain energy!".substring(0, min(it/2, 72))}", + 23, 2, 28, Random.nextInt(1..12), 2021, + "Sleep $it is good for your health!".repeat(it*2) + ) + }.toList() + + override suspend fun save(notes: List, app: Application) { + Log.w(TAG, "Save is NO-OP") + } +} \ No newline at end of file diff --git a/app/src/main/java/me/profiluefter/profinote/data/ServiceLocator.kt b/app/src/main/java/me/profiluefter/profinote/data/ServiceLocator.kt new file mode 100644 index 0000000..88b81e1 --- /dev/null +++ b/app/src/main/java/me/profiluefter/profinote/data/ServiceLocator.kt @@ -0,0 +1,5 @@ +package me.profiluefter.profinote.data + +object ServiceLocator { + val dataLoader: DataLoader = CSVDataLoader("notes.csv") +} \ No newline at end of file diff --git a/app/src/main/java/me/profiluefter/profinote/models/MainActivityViewModel.kt b/app/src/main/java/me/profiluefter/profinote/models/MainActivityViewModel.kt new file mode 100644 index 0000000..b2102e5 --- /dev/null +++ b/app/src/main/java/me/profiluefter/profinote/models/MainActivityViewModel.kt @@ -0,0 +1,52 @@ +package me.profiluefter.profinote.models + +import android.app.Application +import android.util.Log +import androidx.lifecycle.AndroidViewModel +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.viewModelScope +import kotlinx.coroutines.launch +import me.profiluefter.profinote.data.ServiceLocator + +private const val TAG = "MainActivityViewModel" + +class MainActivityViewModel(application: Application) : AndroidViewModel(application) { + val notes: MutableLiveData> by lazy { + MutableLiveData>().also { + it.value = listOf() + loadNotes(it) + } + } + + private fun loadNotes(liveData: MutableLiveData>) { + Log.i(TAG, "Loading notes...") + viewModelScope.launch { + val existingNotes = ServiceLocator.dataLoader.load(getApplication()) + liveData.postValue((liveData.value!! + existingNotes).sorted()) + } + } + + fun deleteNote(index: Int) { + Log.i(TAG, "Deleting note at index $index") + notes.value = notes.value!!.filterIndexed { i, _ -> index != i }.sorted() + } + + fun saveNotes() { + Log.i(TAG, "Saving notes...") + viewModelScope.launch { + ServiceLocator.dataLoader.save(notes.value!!, getApplication()) + } + } + + fun setNote(position: Int, note: Note) { + if(position == -1) { + Log.i(TAG, "Inserting new note with title \"${note.title}\"") + notes.value = (notes.value!! + note).sorted() + } else { + Log.i(TAG, "Setting note at position $position to \"${note.title}\"") + val list = notes.value!!.toMutableList() + list[position] = note + notes.value = list.sorted() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/me/profiluefter/profinote/models/Note.kt b/app/src/main/java/me/profiluefter/profinote/models/Note.kt new file mode 100644 index 0000000..2164d83 --- /dev/null +++ b/app/src/main/java/me/profiluefter/profinote/models/Note.kt @@ -0,0 +1,42 @@ +package me.profiluefter.profinote.models + +import java.io.Serializable +import java.util.* +import java.util.Calendar.getInstance + +data class Note( + val title: String, + val minute: Int, + val hour: Int, + val day: Int, + val month: Int, + val year: Int, + val description: String +) : Serializable, Comparable { + override fun compareTo(other: Note): Int { + return this.due.compareTo(other.due) + } +} + +val Note.overdue: Boolean + get() = getInstance().after(due) + +private fun pad(value: Any) = value.toString().padStart(2, '0') + +val Note.date: String + get() = formatDate(day, month, year) + +fun formatDate(day: Int, month: Int, year: Int) = "${pad(day)}.${pad(month)}.${year}" + +val Note.time: String + get() = formatTime(hour, minute) + +fun formatTime(hour: Int, minute: Int) = "${pad(hour)}:${pad(minute)}" + +val Note.due: Calendar + get() { + val calendar = getInstance() + calendar.clear() + calendar.set(year, month - 1, day, hour, minute) + return calendar + } \ No newline at end of file diff --git a/app/src/main/java/me/profiluefter/profinote/models/NoteEditorActivityViewModel.kt b/app/src/main/java/me/profiluefter/profinote/models/NoteEditorActivityViewModel.kt new file mode 100644 index 0000000..37b6ed9 --- /dev/null +++ b/app/src/main/java/me/profiluefter/profinote/models/NoteEditorActivityViewModel.kt @@ -0,0 +1,47 @@ +package me.profiluefter.profinote.models + +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import java.util.* + +class NoteEditorActivityViewModel(note: Note?, position: Int) : ViewModel() { + fun setTime(hour: Int, minute: Int) { + time.value = formatTime(hour, minute) + } + + fun setDate(day: Int, month: Int, year: Int) { + date.value = formatDate(day, month, year) + } + + val title: MutableLiveData = MutableLiveData(note?.title ?: "") + val date: MutableLiveData = MutableLiveData(note?.date ?: currentDate) + val time: MutableLiveData = MutableLiveData(note?.time ?: currentTime) + val description: MutableLiveData = MutableLiveData(note?.description ?: "") + + val note: Note + get() { + val (day, month, year) = date.value!!.split(".").map { it.toInt() } + val (hour, minute) = time.value!!.split(":").map { it.toInt() } + return Note(title.value!!, minute, hour, day, month, year, description.value!!) + } + val notePosition: Int = position + + private val currentDate: String + get() { + val calendar = Calendar.getInstance() + return formatDate( + calendar.get(Calendar.DAY_OF_MONTH), + calendar.get(Calendar.MONTH), + calendar.get(Calendar.YEAR) + ) + } + + private val currentTime: String + get() { + val calendar = Calendar.getInstance() + return formatTime( + calendar.get(Calendar.HOUR_OF_DAY), + calendar.get(Calendar.MINUTE) + ) + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/baseline_delete_white_18.png b/app/src/main/res/drawable-hdpi/baseline_delete_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..87a3d4c2f1fc441de35a6bfc53e48ecc4f7a0943 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i0wmS%+S~(D>7Fi*Ar_~T6C_qWsQ>i;XTb~~ zkBtZaR~gLtCok&L-X)!IUF^TSeaG>2XaD}M+jBv7y0PUy?FTI~J8GXd9Pi{?e9LVs zuWatJiY+rAT|4&gzZswJ_Wzq7YfGs7->x)O+2F>n_#zImPKHHajWi|*zIp+)lEKr} K&t;ucLK6U;!$NBS literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_delete_white_20.png b/app/src/main/res/drawable-hdpi/baseline_delete_white_20.png new file mode 100644 index 0000000000000000000000000000000000000000..b9f2a342d6ea35c309adb721bf184706848b69bb GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX0wgC|rfCAHbWaz@5R22v2@-w}_8+KcSJ80j z3S0O;{l9Ya=Krl6*|+}B7r5cCeD>r2*PI6`YWTt(I5kREG~B=bwL&)5epO}2=M`y_ zOs_w@8q*$M%n^51@rSAL-}v6(*RTHjv~)X`u36ggYs1QL2JyaCf~pS=tOZ)h;OXk; Jvd$@?2>@3cKm7mz literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_delete_white_24.png b/app/src/main/res/drawable-hdpi/baseline_delete_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..4257955804949ad081cf68594d049bd3e4b28b00 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K8s;7%%h{y4_S2pq>_@-Y{M;wyt55l{~Iay)UJ@dyUkTm=>8HyVbL4mI*Gy4)z4*}Q$iB}0o_AV literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_edit_white_18.png b/app/src/main/res/drawable-hdpi/baseline_edit_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..ee63b99681dfb7a49f42e4863fa821311a1fb14e GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i0wmS%+S~(D#hxyXAr`%F&nxmZ7znsrJo+U~ zhFRbaBk#89E7mH#d>Wu4?|OMr*=ml5zo(z+s8N-Xo-C`%AST^?CsM)Iy=`&cy>kHv zLz{&P#0(ymbTGMbp9-*EpR;_k^5y07GbeKFW9$@=y3m{%c=U@$%S;D_2fQ!d#y+oi V7Ml@jr~$N|!PC{xWt~$(69AK7J&*tZ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_edit_white_20.png b/app/src/main/res/drawable-hdpi/baseline_edit_white_20.png new file mode 100644 index 0000000000000000000000000000000000000000..0d039f940e94ba9395f2ddfb1abf54604e6d210f GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX0wgC|rfCAHdQTU}5R2Zo=l2RaIEc7DT+S@* zr7~sX!EK3dm$@!9Z&WmPe-!^{FUR9MKe*SOxURf-Ly-S@hup=24S{DpGa@b(&f&0p zd#e5R{f{Lf?Dr<$T`DM1Zu7`=ifsOulE{rH-XnSQPws= iS5#5;jP}$owZ8ouniU%ti$nvR!r|k0wldT1B8K8r>Bc!h{y4_mkfm*3qE tDK(~-GuW4;=1rI+2gQu&X%Q~loCICABN7?`Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_edit_white_36.png b/app/src/main/res/drawable-hdpi/baseline_edit_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..8033d4a0cfe43097c7de417c8c5276a7b5348d89 GIT binary patch literal 243 zcmVfUJ{-=`x0UH;h3+sz*hEIor*>lZfv30H0((StN=M83xQa z`%n`SfE}v`mGSBBM{&6yipgPv7Kg(H50zUzxfdqevEQ29)pi!o2A42cFR;dCqf0Et zu5lzv|&sh(f|fYo~Tq#!TN8natTvva>~P-IHqlyg7M z%pn^zeUj;rEh1 z&*zHPFZVrV_V9kfT$hJeJWb9ScAnDoG@czi;fIXO$+JHvtea@T=ocwdctp@0O8A}f z)Ra(PnlMM+L84E(<&lM>MIU#|6AOn3Kk=4lB@PvS!bcvMILP>k9(km(^vca@=Ktp6 VufBLpas>L4!PC{xWt~$(69BZ8c47bk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_save_white_18.png b/app/src/main/res/drawable-hdpi/baseline_save_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..24b8979b03dec90383d392b3b67cc47b099edb8c GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i0wmS%+S~(DJ)SO(Ar_~T6C}JI?0@}#<^Si8 zTh`q$-TCMLcX|0A|L)7q-nPKk-hH90l)tL{~2+2VZ(8^MOzw8c1>E$8_TPD z%kKaFepWlRCA|^`C$_}0x_t?~wB_$Vd0x?ewoRSau63$h_S|FUts?0?D_i;UL>Kmx xAxg>#TA4egng0DPS6i#YcyOhK*OY@?3`_Ionfxkye--F122WQ%mvv4FO#tcVQ~&?~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_save_white_20.png b/app/src/main/res/drawable-hdpi/baseline_save_white_20.png new file mode 100644 index 0000000000000000000000000000000000000000..8599bde37021b16942576183d063bfccccbe5721 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX0wgC|rfCAHxt=bLAr`0aPJPJPpdiqC+o|5H z)53xIibxRiPA_E>r{<77I*Kc7P)KdY$G5n}rsDYnNE zW5BSn&B?K??+8YXb$EKW?kGkT!2}a525VtqU|`YmVh(!IU&C=>4&_%xxx+7q%{2b9J6D(NYppm}(gbH$W8$4WNqDKE3ME*otHvG?yd*nnw}= z%^?Yarjx`#Q%Qm#5JV6`rXz?Tf(RmrAO)ZTF#@=75g3%q`JI5tanD1ei$ff(ryhL^zmnB|wI>MOSi>W}IONA8Cy)>m4xT6FegLIDcu_ ztdH&42|RHcwwq_ef@6UfZ_icZP67|}F4f_7t}4pKn*0IhESszGj)k|R4#wCkK7Bb6 cM%0UZ0QZ1q3BkNgoB#j-07*qoM6N<$g3eNQSpWb4 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_task_white_24.png b/app/src/main/res/drawable-hdpi/baseline_task_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..18100b782d474e11150f57ae52e1c02dc4d50e66 GIT binary patch literal 290 zcmV+-0p0$IP)3v1LL3wnPW&wBD<~U8q@ZxN|Bjd{gTz!hB%~yeh>}4M zstOchlsjQns4yP7dW-Mrf)nV zB17GoHn#a~B~XNhp@xQOJu@;WrOZtMBZV>)n%KNDa>!5|qk(`3J&v(K%DxGTRZh%9 oGZp0XPz^rTA|$~SE(`ruH`Wixz|RP>D*ylh07*qoM6N<$g3CE?7XSbN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/baseline_task_white_36.png b/app/src/main/res/drawable-hdpi/baseline_task_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..acfd12d459e4f9a1bc5c9f332f8b4b1a6d18efb0 GIT binary patch literal 416 zcmV;R0bl-!P)O z7d3|uCbo_>HOI$@)Eqwfn3^kwDY>GUiYtyOI0+`^WSEe{mkbkea?IyS$6U@9yTeW9 zgk@kkO(FI@%~*{4NntS>sG~m#EJlNfD2ubkhSZRIE)#PoBAnUn>>3YasZ;#OutAFI zA;6Ny`P508l43msL_`k9pk!Exx#Y@P)yLBZ^7gwsB}_MXN-3ojjKKz+ z#XUoBTc(`pxU5x47>$csP)S(j$0`ZO#kr9#33tSqpDqcH1?k>MmxL#gK>EPs$$@pOiN!J}F^Pd{V-o-$@$ypf)K!=-F@& zYLlXavZ|m8s-OxQfS~98zXuicV<#{LN1%e*oJrjqn1~}4)aHEfWl{w-Ic-vcpn#kP z#^KO#3VJcjat=cFpj%jthdt(u#R143bPEf*H?Rl~`_D-h)Z~1jP5P^x{g6GV$!U}N z&&d?DwQIFWzn?P(`?S&qJ;##YO!}Riy^ta3CG?oIFe)cLsHdb~=b;ivR!s literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/outline_error_outline_white_18.png b/app/src/main/res/drawable-hdpi/outline_error_outline_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..7d6795701ad0d33d9a2478042f671e393cbd872f GIT binary patch literal 306 zcmV-20nPr2P)AKG&C*=9gSB}E9DTHa0+Owgk(Jdq1b|O2nxah_9obD)@~_&cEBzJm`RLp z_s--$PoDQL7N0dK)M zYIzG)veE8vCFA-QIVI6E8My(``xd?3(SJ$w&-KUg1J>l6rz*@GbpQYW07*qoM6N<$ Ef-q2n5C8xG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/outline_error_outline_white_20.png b/app/src/main/res/drawable-hdpi/outline_error_outline_white_20.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c2365f4a6cc50e38b164c538a6aabb6fa41656 GIT binary patch literal 306 zcmV-20nPr2P)75y$c|c9V4)ob3{QvV=h_BtDLun;c{$%b zKVOpkvvB80Cig7!XfzyLJ9^iQvxC*o;Ju?-C@x;izC%||pi;;zjEya13Ke+ua2x#u zrFrjdt^^-J+{_6V`AuE93*G|a9ifSuN~NYP91i^s*C<=L6r`_SlZ-NhNE?bYz)0(jHvK<}FKh4uiz!_4_y7O^07*qoM6N<$ Ef?BA8G5`Po literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/outline_error_outline_white_24.png b/app/src/main/res/drawable-hdpi/outline_error_outline_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..4e51443fcde8cfc3179487386174e5c5c6ff3c34 GIT binary patch literal 380 zcmV-?0fYXDP);z$;+vD2RojB6w@*mc zMyH%N@4x%a%+79>{XbLDHa7F>%i4>XJ1r;2L27P%DzbM2r-x!LEtJ`t-XVf+w?8aA zIM-BH*L3b-yTHb%RHTZh5W3P=-TPkEw+a!DC8+Igrs~m{x@m|S#X>G@z(nN-`I8{9 zS6rz@*i8WCyev7i7{aJK-bZ aZ`e0%X2I_YSZEFa0000Mt2I``YB5WjJ!bAc#im0PI zr~1HtSkxf~Geb1tc;^HL95iRNeH?^C4V9PMun2KzD{p*}aj=xX8lp`8#Io{`f_bd(7H?AMlPlO# zVf*Ip$6hsE1sBr_^wk8ygitE;+#mKdk&OL|odmOF%YO8e>`kYzCe#F&5Xv;)^%m5m zz*!pRNY#zEpd)*ru{6w(J+tHGHZhvG8`{Z1f(e0!TwdL)IWlsPLL{())MebxJaG^^ zv@Y*5X-l6tsmUnkv*1R|xx}z8p4{64&J7RiR*rd-%Dnw%Jy-*jQC%pOvhF{LYwqjaUUBoCCNH0zzuXL zy>?v1>@0>^h$kxNKIUd2%uHNRJ*P3PR^zP4AJz8@t7<9CFdSBxFF21)Sb;iB|7TLK z!wPJ|d3;freHdEpIAd{7|9r=OG$bjZ0sHY?|J=stYQ>p`cl!1Ln=vve5sbuUe9*Vo zm{N^Dr>{8eXvC;8Z#o;%uJ1@=Dmmxe)w?FtCl!KvH0j-~ip)tktaq0%CaExt!6m)h zpOh2U>D>_wN~#2da76D`C*^<{_}yEaq(<}+=@+IarG|5T46A`P6lh={!|hBt4xPlB zik)+am0(V466?miQU-b?)?SL$idczOw|23IrHV5T#2S-8)dB_32x4=SV&S^j2aL)< zpi%fBcC8f0i4L*NNucV10@y6pfvM%V@OO;NP@s|cF19I23lCE4NUI+xfc;_*(pRTV ztRaJe8pPUCjRq_g`-}k@3^V|r#g?SG;2yE_NucHe1#n($cbbcx5ZjdDK%2ylr@7cu zvE>;Kv|Q|Inu|4y)nzzPomg|4i+vNDl;J>=#J;7uSgY933?)@d7ylV{cY!t z2>^y+7zpxb?a=^!&~gW&jU6e^M|%I8@Akj>eo)-&2gUuU(XB^~Fs$x{VRf+X*bD29 z{lYBRFU+i5pQU}_+Q-FV=jvH_ArgNPpbA9rgg84fU_o+KgaKt1btr{8mCOO9UbS!! d3wW9W061*9Se;A{(ANL}002ovPDHLkV1fiCM=t;X literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/sharp_add_task_white_18.png b/app/src/main/res/drawable-hdpi/sharp_add_task_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..9a9263570e09780bcb5f73b0ab397db61c14d4ab GIT binary patch literal 357 zcmV-r0h<1aP)W`+_3uqS7Z6;Sxtpf5li&P=s5QBO+|zu>rP27VKEajHaa40Mn72 z;VdV&Cis+=m&Ov6Y=W)w3JMCYaozAU`=+Fpke9NYDKTfdMNKZ&aVB#__ObyPCF!_t z<0d*{8QXp0-nZw5s8qYV+>%f0{avmb`<8mRTz_o8AUMu=MUaVT6PTQoXI#1I$Zn?08zqZpjZu?XTZ%w$UXb23XG9df!}I`g_wa+g332-+oFzZ3ZsP!l*BA P00000NkvXXu0mjf{WR z@ZrF0W`6{C9o>4{TZ-GMYVYkYJ?FOPR%G}BixT_zJn%(}26xmblTU|?vBeuv(PW2$ zDYM2SanYotW==7xLvmE=y%Y9tG_wrcN;-{VvnO85~?yNgZNkVa8R7>nWJ!sNqeuBE@Ws#VY`nOpFMNYQgPH zj0iOVj*OT#u71)r0OgE~h?+DPoV$$tff3;opu1vh02e*VmNej-$XHY=fPnn?I)*$p!$ zkYO81NG)Asiz#;6R+|JRHGj(x(r!nS%;RvvNAJc2$Y6u?{%6a6XIs0w8vI0bXmHB` eOW`gxB=HUHD+p~JV`i)X00004e-6u|K(S*?=FMo1Hhq)OmSkQA{vfgl`74B0JYH~ci!LTn48_q?#$fWh=jcB_Ga#PyZdJ5&4`@GnGVL7WtBP&Hc7e5 z4KBrCDr|AcAM){=170#cEG8l48@Bkw8W%&U6^?O@BbEk-F0+qsywduQu;5C~)5`tO zcXoJ8m1~TWFu@E@c%5l=#1)O&qs@I6YMEadXrDzAW6KNN;v-!H1< zH^*B81<)z&&AfJ39X7n*wNAl1M#|En{}z67J0c~bW#AA0!Rkk?Xb+- zP*a_%xo@sIQG3pm2+vfvsm%2{C)^t~ zROi$mPWkPHg>NjputBy=0hrHbP=qC(24S{st_b7I@{l*ZR*fLcdjsDHKLznQnyCM) zLzl0tdKNtc94DRdg%`}kJt%9C@__464$98sKZ?KBwU4uBeJ#xZ0000Gdp{0v0r;Tb3bNg=kd*oWRXP{|7p-gKi8@A zoCXWP3JvC&rOpsNbhMLFq{194M8!`Yah2W4V|tll71dbgE~k>i^zj6fc*+U;m=gCe zk2UU4u*n(Z2XW&y+dZ{jWRD4^liMMG@r6k$oTp4lgsmLlI0IC9$T#1!pE>5K_X_L0 zqNK~o^EiO=oiWZtmOIA;zglqqw%cAEPB-&D%p$|&luGZQ%2Ff;;0^oKTgS_3GD=>n zg$vw@SWF-dFGvQE3=s?N5nHL zPp8^CBJ{E08p^v8;Cxi(h`5%}CMOf&9MaifIAb(rjtEn(Svj9Jr%2OLcsON_2o={7 znoF4@!knY{So)kUemg2Soiay+e%F?2OUfJ(ZaAu#w8&X7;)qapR5E0dbJ(=1XO3zH z0-xB{Mve##M@8j;-!JhZ`lMi$Bf?ilRfPb~I`A@_WSJx4IT1N*IF{l{{C+T&T4k+@q4P?8cy3#7V13nVFWbU}(+SRW~rqnl_m-sHPT5v>ywq;m|~ zBt>>se2~ULkrCh%M^#6R5lHVSO*NWh2V^zbU;&g&I>zv|PcmT@1C&%sF9s;7q-PvZ zLTO=Rke$T2RZ#4!g`9Pe>E#O@^ipS;nst!+^^^$vDRY5q+-GU?nVNObze&LS06q{Pr#GU^5P#HHG+P}_cO0jjL!I9Zzq<~|7umpnrTb>w48!P znnMG5szmM|4JZ=VtXg==;{WVJ!dx7){ykUGoXg12?&z~`D`UrFpluAEu6{1-oD!M< D4G=lX literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_delete_white_20.png b/app/src/main/res/drawable-mdpi/baseline_delete_white_20.png new file mode 100644 index 0000000000000000000000000000000000000000..f487eac7e42787f0b85629280d0dba784f70747a GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc0wmQNuC@Uw6Hgb%5RLQ62@5oT#Q&Fgx*#5X_fmgpR7^+=YDfprxe4E*~upu>Oai_>SyqD^>bP0 Hl+XkKTl^!V literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_delete_white_24.png b/app/src/main/res/drawable-mdpi/baseline_delete_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..d1a579189d32be56a4350ab5635255dbbac0600d GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1Yfl%)5R22v2@-!E>_7DX_y5EP z|LR$5ygo9#%1}7|cgZaKRf!?Ydc6G`R@JveHy{6hT;i1c|L+n{D&-jDw@#XMVPBpF P&=>|!S3j3^P6|k0wldT1B8K8s;7%%h{y4_S2pqbP0l+XkKri?R| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_edit_white_18.png b/app/src/main/res/drawable-mdpi/baseline_edit_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..47f652984818363dba5bcaf32249229974fa2939 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|mqC8z3Lp08xJ++ay*+78dz^tW$UQs5 zsf0P&Jdr6afgvryHuLU-n+Zu@ofCV)>vyWxTF5k3wumm+^lia&mIX$U`7>MBUQBTB zcjG>nWb*1akHYPX)yx;~8+KY8QMn{g?J(Q(jf&95!*TammdK II;Vst0KnloS^xk5 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_edit_white_24.png b/app/src/main/res/drawable-mdpi/baseline_edit_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..f9d43e5739ee383a96ec759df64abdb1b48aca53 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iC{Gv15R22v2@+Kg_W%Cx{(rYe z;J?5296oAc&QI$lUZ@=VQlSvZeDyCXbXd|k0wldT1B8K8r>Bc!h{y4_mkfm*3qE tDK(~-GuW4;=1rI+2gQu&X%Q~loCICABN7?`Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_edit_white_48.png b/app/src/main/res/drawable-mdpi/baseline_edit_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..0297399c99dd4415701f54fd2dff93faf9efe56e GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0Dg`O^sArXh)UO33v>>$$ekX>xi zR-GHYq7ki{hwPZdHrcX#w36Gi<7Ta8i=@W`U&j0V$zt7q4_tWMDa&6XRp)SQYv_a> zAG?l7pZ8C2vMox=QxQ97dD3@}M9s0ri=H_=at)JDys)gXo@n^thn3^=(?^y(=x%A- zFXVZ$dmq2uj|a{F{qOmlncex5pONo9Tf`pW2OrNeOwMQ7Q6rl0dE<@g){J-9mrWLE ScsCX3SO!m5KbLh*2~7aCW?26K literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_save_white_18.png b/app/src/main/res/drawable-mdpi/baseline_save_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..4601c32c6ad07d14d39ea46ed649ad14e54165fb GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|mvOHZJLp07OCoItVvHoZM-~WFz z3VzqKhPb}|zu!Ih)4%`!|9=mh(%5qG%)S5r?PnRy>H7EoexFXszx~WyHvFMmxMMVxEY#c72H2F1P&f^~e1Q0x|#NC-3s)WRRY#|LIqeVJ^^C N22WQ%mvv4FO#tkMMqdB` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_save_white_20.png b/app/src/main/res/drawable-mdpi/baseline_save_white_20.png new file mode 100644 index 0000000000000000000000000000000000000000..c00a03f1acd31f8eb1aa228a644f5252f9d4cd17 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc0wmQNuC@WG22U5q5RLQ62@3>&y#Kskj@!gF z{Mm1L>mNVvGleGF23+{MpNZ?u@kJtQ0%kJ?8@sI3EadwCf4#ftoUUgR|LzcZ#5P5{ zhP{PF^xyCKd}5yLn?7jWVG+OG5}&9avqpUXq0|2(4=Sy35Mw-_!|t|Bd%}@dlJR>E kKK8bl*|>mz?Ibe><2|iQbPG<{0Nuji>FVdQ&MBb@0Hd=W`=*Xd0c_&B%6`o% zF(H%Oq&&)m0_WAa7=*|R&Tn*h@Ugz%arSS<|7U(KFVdQ&MBb@06jf8 AGynhq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_save_white_36.png b/app/src/main/res/drawable-mdpi/baseline_save_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..bab5fe68569b4f8d17602ebc67005b80924da574 GIT binary patch literal 215 zcmV;|04V>7P)ST5Jq7JfC-WvC}F$I06V~92&$xa_tFF*B+D`IUyc!YZKM1A(0000Zg|F3Kjsr{M%fBxhDxo^7e{oVd=zvQYEb-l^^{+9nd&&CrrLrCUY`j^;~X8Zrr54^PmH2i|1m>KHt8^&BS{Wu@!Fa}RoKbLh*2~7ZkA6CNv literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_task_white_20.png b/app/src/main/res/drawable-mdpi/baseline_task_white_20.png new file mode 100644 index 0000000000000000000000000000000000000000..ea14164d03a9aefa551379c486b9d51bee012f85 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc0wmQNuC@WGDo+>35RLO&FIn?B1PHV~?ED(h zsXF1p%{C2_X@%C^n;7PP^7^1HaK4ax&ac^LQi@#axLIX?r$}vaUv`Pv*=1?^ic8va zRx;0Xw`)*VT`SGEMCpmu8qN$cu}iNv96GFibH=_~4>|?bzIo~9yk}$h`;FVr?aF4m e5cntj4QIz3zq=PgPg(+9!QkoY=d#Wzp$P!F(?^s5 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_task_white_24.png b/app/src/main/res/drawable-mdpi/baseline_task_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..3caaa4d22f0aabd2b7f9146aff07297e8664c8dc GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i*`6+rAr`0iUN+=wau8s>;Gejo zZF}Hj%QxTI$Lt}#>6$8GPksfViqHZ%OVnDC_c?3%br<-Ls4a{hgt z9%a=h!XS5P*F8lBhWYn4pA-J^;s3#tYzrp;)ngZb?2=qHZ)0@bjzpz*|Fcgf0-ed= M>FVdQ&MBb@0Q~P%a{vGU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_task_white_36.png b/app/src/main/res/drawable-mdpi/baseline_task_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..18100b782d474e11150f57ae52e1c02dc4d50e66 GIT binary patch literal 290 zcmV+-0p0$IP)3v1LL3wnPW&wBD<~U8q@ZxN|Bjd{gTz!hB%~yeh>}4M zstOchlsjQns4yP7dW-Mrf)nV zB17GoHn#a~B~XNhp@xQOJu@;WrOZtMBZV>)n%KNDa>!5|qk(`3J&v(K%DxGTRZh%9 oGZp0XPz^rTA|$~SE(`ruH`Wixz|RP>D*ylh07*qoM6N<$g3CE?7XSbN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/baseline_task_white_48.png b/app/src/main/res/drawable-mdpi/baseline_task_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..f082846ac21c91041a6c8682fdca9d3576371cca GIT binary patch literal 356 zcmV-q0h|7bP)>IrQeYxKraP1m}@?FTpq_oIo(w`yvTM9FRc70&XH6a1y-411`b_ zI0!3XChUNb@Bksv5wIY1;8h2#_$mYQZh?|rZo30YdLnE$iDdyLz54kbo^3#7%5QLG zeS;?O$R4BC{H6U4sz!b&LLLx{eD*zW1)dnzs~<#|zxe6&Y(T~S=X%cQOTOjz#(G2{ zu^Hsg+U{Qm-WodsLeG1E20_N@Z(pzn2naGxVEI5zkZ}y%08nwjk(N&ZB1Z=jXBB`+ zQh%ZY*GWL30|Or1`Fr{*AVSU!Gjn`O5tU!hpU*pa4q@COkbFM?00005sJl literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/outline_error_outline_white_18.png b/app/src/main/res/drawable-mdpi/outline_error_outline_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..4e05c3806ca96e887cbc0f4aac5efc6905d16081 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|m7J9lkhG?9hI%%(9vjI=5WW#)s z6waW4LozCp4=Bi(s9fIAReW5);_URM&B;$|ET4w1|Dj^*?Ki33^Tu*ic-^Q({ec{VU`sbwmGpW@6JuxLnmHroO@JJU1zg?MC9K28%5gR zHmGr#I+Wj#JFzH$?Tg`w^hpyW)Z-+2CLcWPH~+yZQH|*0GPgkv5Hgipb$DKb4d>*Qxg;H&`pYUAcVwPL^BS zJJJeVVhs`<_P^U!Rl=$&b kzbB%r!?Zi%&ff~Am`z_l^Zi+B2y{M!r>mdKI;Vst0LwgHA^-pY literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/outline_error_outline_white_24.png b/app/src/main/res/drawable-mdpi/outline_error_outline_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..615b0591f0c9ed35b032c14db4e02e39dd4b4ee5 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iy`C&2P<>d)ba}sA)d->hW!DUfV;z$;+vD2RojB6w@*mc zMyH%N@4x%a%+79>{XbLDHa7F>%i4>XJ1r;2L27P%DzbM2r-x!LEtJ`t-XVf+w?8aA zIM-BH*L3b-yTHb%RHTZh5W3P=-TPkEw+a!DC8+Igrs~m{x@m|S#X>G@z(nN-`I8{9 zS6rz@*i8WCyev7i7{aJK-bZ aZ`e0%X2I_YSZEFa0000D({e}UK*4kmfCIXRt3nr1++eSBTNA5AsPOX#$b>p1XS*UYY`odhR=o>rsOQ0$$ zy=WOL?i0z8L8cHTb1_PfLbg>u#XegU=y7rZIEtoW@<@9N)tyudwE#lU zQ8Vf=i9>n8T5f=v>h5?Bxd~M>O|4`A2*E5g>BUvkP}MC2&<#zdan&+Zd4&MH&}11` ztwL3+5I{?|TU;g6Q!NBgm8J3r0Hsr8kYt0Qr%AFwnHm6S%G99I3;;BZW-ux;-D^ih z*~6~%ac$wjDgDW`@aUJmwpduaEUb>DFTWPncMBg7D_2$r{ Q-T(jq07*qoM6N<$f)f7Im;e9( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/sharp_add_task_white_18.png b/app/src/main/res/drawable-mdpi/sharp_add_task_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..839d494d8258abb44119e040fa38a7176d01c63d GIT binary patch literal 246 zcmV{PVM1%%jniGWsKBaIfhOOD_b7O_)E6>zK9D#_-@NTz=H zW|$d~u7%>jnF~IXW-#T3A*&A&BN6&GnWHg;tQjz7OGHEuj|Yn)Me}4?$@WOO=Z(2y z{*e)eu$7451FKdd!U-6P5a9kG8A73X;o5|lxY7;>&D&0~Q9d{h+D;)M$zibqW_C&$ wH7>K%u67p1hGPS&9XMsz{we``ROdhY0xPrRl?s|@c>n+a07*qoM6N<$g1|ju_5c6? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/sharp_add_task_white_20.png b/app/src/main/res/drawable-mdpi/sharp_add_task_white_20.png new file mode 100644 index 0000000000000000000000000000000000000000..abef96bff07ad9e6290207d51bdda448f7c4a9b9 GIT binary patch literal 291 zcmV+;0o?wHP)qCVl5f*HMCO^WAlQolVAX*$)ErKwXCKEB4*Zn7qHjUaWG8hIO7TeFV zy?fo)3%hvyxVz_`i&!*lI#9JWk1V;?HH=SfE7RD%9^SMatGo4%vj}BZ|Jkp;np~2} z+m2B7vRO{o>!|4r7GVReOctSv(+EW!g@k>Nu@pSVlfr=Q zCfynntu^s7V&gFN7)_FDM;h+&s4>9l^|(x`JxIlzg)1tl;7&hg5FqYM zZ*Qu4guVWTgr}Fp}4+{fG#S9A0t-2D-L2)a*L*?9FC` zrgw*F;2L8c%UPR^2u&ZjOJx|_D;5329}2D1jnJvU`)b9-HU_Co1s>rR-MR4yFW8wI zkMN1L2&{WR z@ZrF0W`6{C9o>4{TZ-GMYVYkYJ?FOPR%G}BixT_zJn%(}26xmblTU|?vBeuv(PW2$ zDYM2SanYotW==7xLvmE=y%Y9tG_wrcN;-{VvnO85~?yNgZNkVa8R7>nWJ!sNqeuBE@Ws#VY`nOpFMNYQgPH zj0iOVj*OT#u71)r0OgE~h?+DPoV$$tff3;opu1vh02e*VmNej-$XHY=fPnn?I)*$p!$ zkYO81NG)Asiz#;6R+|JRHGj(x(r!nS%;RvvNAJc2$Y6u?{%6a6XIs0w8vI0bXmHB` eOW`gxB=HUHD+p~JV`i)X0000C z3ZG`&%LDR^O!dFjM4lN2XrYOICMdAYn|i%EEo~ODzt$}%MEOO_=1H3StCVQb7L#JmhX*(c|76ou`&5iMbK_5F4@+B6 zNtg6l<2%CAx_DC6*B>v!h8p{+B=8xvtx5^tMObyx9`!3H6o0D6H*)7B<`Te*kX5@j zod8~hqLX@%2wsF8Cpn)8UW7|0ea1U8b;66NEjH+SHq14nb-|0MJ<#gHSAb`)!V>Qn z&`rg8;!^1GKQ9c2h_XUC3J?CwU%g%sFv(s;4Zbsgp%nx!Q;*_UkB<_BY&4f50v{y^ zJt}Gxq4+3)=CE@q&TH{e9gX2}?I_Ou)yENNe>jwb@Ua9@zf78S<8CIf{OKD_^6%Of zV}X6+WiE)-I$8)~HNUe~0)6`~LWV3kc6qH`(8hvT7m$+JhT#?Jo#`Ymfh+XX`x^Vj j4OeWj#N_`K|8K-MdtDg-AJo0(00000NkvXXu0mjf& + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-xhdpi/baseline_delete_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_delete_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..4257955804949ad081cf68594d049bd3e4b28b00 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K8s;7%%h{y4_S2pqrR9WPmqx2){csZw#ipPWp`xi{N>37s_6l?C9 o_>9ej#dU$f7lGFsM2?^G-M*pQV3OAZW}x{Dp00i_>zopr0MKPH{r~^~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_delete_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_delete_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..ad2fa12f66498700c7434afaa8ce7a2d017b693e GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0DI8PVHkch)?FI?n3puod?@y*1< znQDsbP0l+XkKri?R| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_delete_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_delete_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..aadf7229ee75795998b33c2dd239d0a2c4cc69e6 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw+C5zyLo)8Yy>yVbL4mI*Gy4)z4*}Q$iB}0o_AV literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_delete_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_delete_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..a73379951d7a8eece2b6698bfb08eeea2665c8ef GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcgwt2cZhE&{od*vW+vw?uCV|+%N z+RFn%n(bB#1kZWQjy~skWZj&MIM(_lTcandcwXW?D)fHapKpHzIpxpE_kK9~r^-o$ z9cT`NftW+k*<>~l6F-pPC|LH+{xf5>R>FDqFCh-++0PU%J-a_C@8{83Y!T6}hDWCv z)pxJls&(k`Gv{580?qz^6|0gluUVBYbJ065ev-<|_f|k0wldT1B8K8r>Bc!h{y4_mkfm*3qE tDK(~-GuW4;=1rI+2gQu&X%Q~loCICABN7?`Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_edit_white_20.png b/app/src/main/res/drawable-xhdpi/baseline_edit_white_20.png new file mode 100644 index 0000000000000000000000000000000000000000..9fc7d2c15ae1b53c015fbfe16084f7bef677be93 GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU0wmSG7d!(}9iA?ZAs)xyUNGcya1d#E=)Sde zaaVDU=h}cmR`CMmzQ@G+X}ie^516+PR*kT~In|ica3Kiw+9Rea?p-&zkDe zs;ad6%SKbK))?LUU%4!o76+V=Ja_1*N+Y-D`G>$$ekX>xi zR-GHYq7ki{hwPZdHrcX#w36Gi<7Ta8i=@W`U&j0V$zt7q4_tWMDa&6XRp)SQYv_a> zAG?l7pZ8C2vMox=QxQ97dD3@}M9s0ri=H_=at)JDys)gXo@n^thn3^=(?^y(=x%A- zFXVZ$dmq2uj|a{F{qOmlncex5pONo9Tf`pW2OrNeOwMQ7Q6rl0dE<@g){J-9mrWLE ScsCX3SO!m5KbLh*2~7aCW?26K literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_edit_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_edit_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..92a1e1e11742fd430e9caceaf784c2418059b3bf GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhawZh5*mhGg7(du1c|&sh(f|fYo~Tq#!TN8natTvva>~P-IHqlyg7M z%pn^zeUj;rEh1 z&*zHPFZVrV_V9kfT$hJeJWb9ScAnDoG@czi;fIXO$+JHvtea@T=ocwdctp@0O8A}f z)Ra(PnlMM+L84E(<&lM>MIU#|6AOn3Kk=4lB@PvS!bcvMILP>k9(km(^vca@=Ktp6 VufBLpas>L4!PC{xWt~$(69BZ8c47bk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_edit_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_edit_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..bd15772c494d6586e8219cdbc342764d01617e3b GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z$oMC;uunK>+O}jyoVeFTpn^O zIKOM~ifPbR+Wh7ogCna4%alfrNG7J159jX+8ED@N`LH)7D5=Nrm_)MueABWmv*)ha z>grOLzW!~FXz%^ozrQUMviq@7i0x;gklRl~A+?{sI5*e4Wm&D8e~5GTf6p7YjH;Yg zJFko3OrQIF=Z#wv3qq~@{0}*{zxUh`z4(Z}|BEX>QaSf3+1oo#n?GIQ?0o+T&;8X~ z9`viXJmgouGVw<<=f)pdoP7I&nkN7ES)uf~*_OZN$A^c9+xg|~P#C8_26LVJujJ7D zo-g2`HFL?2bquQelpVU`WfmOM=eh7$oK@o!H>v!yKNb!-n{?Yopr?uU~n;by85}Sb4q9e01rTwg8%>k literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_save_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_save_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..bab5fe68569b4f8d17602ebc67005b80924da574 GIT binary patch literal 215 zcmV;|04V>7P)+ZGea9lVlE09=uVwU&HU&c>5oyGu(@Pg;Y}_y+lH&?*P`2VhS{ zMehe3$O(iHf`FXC6&%SHos7{9ERST5Jq7JfC-WvC}F$I06V~92&$xa_tFF*B+D`IUyc!YZKM1A(00007q%{2b9J6D(NYppm}(gbH$W8$4WNqDKE3ME*otHvG?yd*nnw}= z%^?Yarjx`#Q%Qm#5JV6`rXz?Tf(RmrAO)ZTF#@=75g3%q`JI5t8#iPp~aq-WTG=wT2{_;Nw+pq*m!j})Z_8Ul;KtZgAA#i}C z30xp)LVM!iTlAv|(E;}o3;^yUm;l^EFaq!=m;v|_3<3NIrT{(!V*msYKmY**hzp3F z00IagfB*srAb385s-Kl$_E5)NGh_=FQkprvRwPdS_--)&T|6n^UL0 z|9*x6RJSkxhfrAs)cuR6wUBC?fbE}WZ!H4O-JPd*_KdSVz}{*4-X37(G<{_cuymTf zv3v1LL3wnPW&wBD<~U8q@ZxN|Bjd{gTz!hB%~yeh>}4M zstOchlsjQns4yP7dW-Mrf)nV zB17GoHn#a~B~XNhp@xQOJu@;WrOZtMBZV>)n%KNDa>!5|qk(`3J&v(K%DxGTRZh%9 oGZp0XPz^rTA|$~SE(`ruH`Wixz|RP>D*ylh07*qoM6N<$g3CE?7XSbN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_task_white_20.png b/app/src/main/res/drawable-xhdpi/baseline_task_white_20.png new file mode 100644 index 0000000000000000000000000000000000000000..a9b23ebdae55f6d8153887ea1e0401741bb9e4c8 GIT binary patch literal 273 zcmV+s0q*{ZP)}9fD1#m+?n;Y%}KyJQ^1fm_YAL1 z)sssXC%r>Mx;gnP_ary}xRBaZOx;{q4=Zl@ir<$2tVLd}F)Z0B=Z|wk8Wv3A0IZ)k XbtxprA+jSC00000NkvXXu0mjff?#fs literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_task_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_task_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..f082846ac21c91041a6c8682fdca9d3576371cca GIT binary patch literal 356 zcmV-q0h|7bP)>IrQeYxKraP1m}@?FTpq_oIo(w`yvTM9FRc70&XH6a1y-411`b_ zI0!3XChUNb@Bksv5wIY1;8h2#_$mYQZh?|rZo30YdLnE$iDdyLz54kbo^3#7%5QLG zeS;?O$R4BC{H6U4sz!b&LLLx{eD*zW1)dnzs~<#|zxe6&Y(T~S=X%cQOTOjz#(G2{ zu^Hsg+U{Qm-WodsLeG1E20_N@Z(pzn2naGxVEI5zkZ}y%08nwjk(N&ZB1Z=jXBB`+ zQh%ZY*GWL30|Or1`Fr{*AVSU!Gjn`O5tU!hpU*pa4q@COkbFM?00005sJl literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_task_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_task_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..557ec00c6fd0aac48a3656f4c5cb878f79e53da9 GIT binary patch literal 486 zcmV@P)yLBZ^7gwsB}_MXN-3ojjKKz+ z#XUoBTc(`pxU5x47>$csP)S(j$0`ZO#kr9#33tSqpDqcH1?k>MmxL#gK>EPs$$@pOiN!J}F^Pd{V-o-$@$ypf)K!=-F@& zYLlXavZ|m8s-OxQfS~98zXuicV<#{LN1%e*oJrjqn1~}4)aHEfWl{w-Ic-vcpn#kP z#^KO#3VJcjat=cFpj%jthdt(u#R143bPEf*H?Rl~`_D-h)Z~1jP5P^x{g6GV$!U}N z&&d?DwQIFWzn?P(`?S&qJ;##YO!}Riy^ta3CG?oIFe)cLsHdb~=b;ivR!s literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/baseline_task_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_task_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..0d825e9c3af620389ef8ba6f0ee49da3bec649ca GIT binary patch literal 616 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VAA(=aSW+oe0ybMUN57>v5)x; zhcXHn#g6peh-vCJh?ejWP|{;vz%|+T(yO$|9yz=rw|~7Mt=nF9NuPvMnp)_OBu=a}H0N*VHik7Z;P= zncF)SI~@owzOv!^3V{#F_ZVggGF|8qXh>^eFi~bn2;um#6X;|P#urW;4#rL}*+9hy z*O?fa7ics1KIZ>_XzgL94O=rFUl(Kwklo)W&~WGnP?N~9`5enXsxs6* z-rvsfrRP7Nm}Eka-+e{@ zekR5lGWAwYxql`{G%|dsEc)}3wt$D$K@jNgHg(Yu0;afTt&v=1Uo z2FWe2KuRB2%v&MW(5(ExLXMfK!QMc*MLYH}d%_~HuQ?nTm@Y&xFbOm;;z$;+vD2RojB6w@*mc zMyH%N@4x%a%+79>{XbLDHa7F>%i4>XJ1r;2L27P%DzbM2r-x!LEtJ`t-XVf+w?8aA zIM-BH*L3b-yTHb%RHTZh5W3P=-TPkEw+a!DC8+Igrs~m{x@m|S#X>G@z(nN-`I8{9 zS6rz@*i8WCyev7i7{aJK-bZ aZ`e0%X2I_YSZEFa00001yf0k{A(qC!up1%w7Yz-Qr;WOio< zmh3dfSH7Qb=FNLE^OX7*U8r$Ok0&A`9(mw~>ba;2_auCgmQP~tisP<%#U{_RPKVV= zwBQXZrc7C}(eyF(Q*c+j9YWTG_?p!xWPPwNxIB*g5a%rcp3%o6U@KnlRwVVq$<1k4 z7j7^Y&lfK8-A3Y+P&=Waeos2iuk4S^(m0xQ>C(&~XA;pe_uWEjnn{*10AoYq8!1jD z3+%{hfnl*6pi%@9)ybL?X%w#z(32)g(uOK~07B#G<^q)>1Yn=K|e+y74b^!ErR#16?@;U~(340>IEQ(4KOih=_iXl&wWMa;uF+v9^sB zm(w=Z#9DGuxf1?gQdIzJ3gJH?ZIOkyC{JZiEw24Pj TZURGb00000NkvXXu0mjf3j@4E literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/outline_error_outline_white_24.png b/app/src/main/res/drawable-xhdpi/outline_error_outline_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..eff1407825811a0762e1b19d0f1b8c1f796ab791 GIT binary patch literal 474 zcmV<00VV#4P)D({e}UK*4kmfCIXRt3nr1++eSBTNA5AsPOX#$b>p1XS*UYY`odhR=o>rsOQ0$$ zy=WOL?i0z8L8cHTb1_PfLbg>u#XegU=y7rZIEtoW@<@9N)tyudwE#lU zQ8Vf=i9>n8T5f=v>h5?Bxd~M>O|4`A2*E5g>BUvkP}MC2&<#zdan&+Zd4&MH&}11` ztwL3+5I{?|TU;g6Q!NBgm8J3r0Hsr8kYt0Qr%AFwnHm6S%G99I3;;BZW-ux;-D^ih z*~6~%ac$wjDgDW`@aUJmwpduaEUb>DFTWPncMBg7D_2$r{ Q-T(jq07*qoM6N<$f)f7Im;e9( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/outline_error_outline_white_36.png b/app/src/main/res/drawable-xhdpi/outline_error_outline_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..d69481ba9a0c8dcf902e9701c730f46b9d0dbd71 GIT binary patch literal 695 zcmV;o0!aOdP)-*jQC%pOvhF{LYwqjaUUBoCCNH0zzuXL zy>?v1>@0>^h$kxNKIUd2%uHNRJ*P3PR^zP4AJz8@t7<9CFdSBxFF21)Sb;iB|7TLK z!wPJ|d3;freHdEpIAd{7|9r=OG$bjZ0sHY?|J=stYQ>p`cl!1Ln=vve5sbuUe9*Vo zm{N^Dr>{8eXvC;8Z#o;%uJ1@=Dmmxe)w?FtCl!KvH0j-~ip)tktaq0%CaExt!6m)h zpOh2U>D>_wN~#2da76D`C*^<{_}yEaq(<}+=@+IarG|5T46A`P6lh={!|hBt4xPlB zik)+am0(V466?miQU-b?)?SL$idczOw|23IrHV5T#2S-8)dB_32x4=SV&S^j2aL)< zpi%fBcC8f0i4L*NNucV10@y6pfvM%V@OO;NP@s|cF19I23lCE4NUI+xfc;_*(pRTV ztRaJe8pPUCjRq_g`-}k@3^V|r#g?SG;2yE_NucHe1#n($cbbcx5ZjdDK%2ylr@7cu zvE>;Kv|Q|Inu|4y)nzzPomg|4i+vNDl;J>=#J;7uSgY933?)@d7ylV{cY!t z2>^y+7zpxb?a=^!&~gW&jU6e^M|%I8@Akj>eo)-&2gUuU(XB^~Fs$x{VRf+X*bD29 z{lYBRFU+i5pQU}_+Q-FV=jvH_ArgNPpbA9rgg84fU_o+KgaKt1btr{8mCOO9UbS!! d3wW9W061*9Se;A{(ANL}002ovPDHLkV1fiCM=t;X literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/outline_error_outline_white_48.png b/app/src/main/res/drawable-xhdpi/outline_error_outline_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..4d785a64859c348f754df56fb46642c0176a671a GIT binary patch literal 969 zcmV;)12+7LP)wobI-Z=T%s5;V#J6MgAF)= zD|m=8yvIDs_yqu1MHyf54kPHpWicCNYQ}v>}6LA|f;+gEsVF5R+JU~~t8PW`l84T|u&mJW5 z*f)$c9MtS>gV8={#GVX(~zz0*0NK2^qFQDHL_fu67kTUEGkNvuz#Hu#?eQjIz z0*KI|t%M&wYc|~1zCp?7CkP;b2qkU&dw%E%ENQ{4sj32+v@~xK3Geian*M_CH55ny z5ek|Q7wmuFj{meOuz*IbUU=b^TCY)y7GXG`03s9>6Wbn7^Ke7^dD%z=WHmpodm|33 zwJuQ<0*JKQdB_`Wh9iAo5um0OGu{H2x{0(#CZJW@Ox=SyIu+8IkNC?iAb~Z-Os6}k zPoYc@MJ0d;6N;HWcgm>lN=mMxo<)FVQO|O$!r;F3v5NGA zE%8T-wQ#sA{disc1xF2BF^RwAtAT4)@fY1h;#&=BpxHxwyA6@}hNl{6ITPRXM-jU$dMrX8P?&VmirLyP=w^C rh=0kD`xsOaBK0|Lj2JOu#1M){WR z@ZrF0W`6{C9o>4{TZ-GMYVYkYJ?FOPR%G}BixT_zJn%(}26xmblTU|?vBeuv(PW2$ zDYM2SanYotW==7xLvmE=y%Y9tG_wrcN;-{VvnO85~?yNgZNkVa8R7>nWJ!sNqeuBE@Ws#VY`nOpFMNYQgPH zj0iOVj*OT#u71)r0OgE~h?+DPoV$$tff3;opu1vh02e*VmNej-$XHY=fPnn?I)*$p!$ zkYO81NG)Asiz#;6R+|JRHGj(x(r!nS%;RvvNAJc2$Y6u?{%6a6XIs0w8vI0bXmHB` eOW`gxB=HUHD+p~JV`i)X00001GiZLGiKqLL5|d zaB#4biw{IQDW&`!yrxOa<#+1wg8wGPL{6zVH_&0(7$hpr z4Rl=C7Se%p0ad@AL0*`-3gZ->n*$j;=ND9NU(Bke!W9g%!O}-kURl|va-Xc@2=JJc zS`H~s(BCl{2=qMY2U%yAt^lC26glRBPuX%=AuH2Uf3cL)SI&L2Pn?jBf-}o9F*+M% bxGjDG$d9enf@{|?00000NkvXXu0mjf*~ipO literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/sharp_add_task_white_24.png b/app/src/main/res/drawable-xhdpi/sharp_add_task_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..9b38af0cfe11e75f52ade09c6c0bf66284a6b061 GIT binary patch literal 545 zcmV++0^a?JP)C z3ZG`&%LDR^O!dFjM4lN2XrYOICMdAYn|i%EEo~ODzt$}%MEOO_=1H3StCVQb7L#JmhX*(c|76ou`&5iMbK_5F4@+B6 zNtg6l<2%CAx_DC6*B>v!h8p{+B=8xvtx5^tMObyx9`!3H6o0D6H*)7B<`Te*kX5@j zod8~hqLX@%2wsF8Cpn)8UW7|0ea1U8b;66NEjH+SHq14nb-|0MJ<#gHSAb`)!V>Qn z&`rg8;!^1GKQ9c2h_XUC3J?CwU%g%sFv(s;4Zbsgp%nx!Q;*_UkB<_BY&4f50v{y^ zJt}Gxq4+3)=CE@q&TH{e9gX2}?I_Ou)yENNe>jwb@Ua9@zf78S<8CIf{OKD_^6%Of zV}X6+WiE)-I$8)~HNUe~0)6`~LWV3kc6qH`(8hvT7m$+JhT#?Jo#`Ymfh+XX`x^Vj j4OeWj#N_`K|8K-MdtDg-AJo0(00000NkvXXu0mjf&Gdp{0v0r;Tb3bNg=kd*oWRXP{|7p-gKi8@A zoCXWP3JvC&rOpsNbhMLFq{194M8!`Yah2W4V|tll71dbgE~k>i^zj6fc*+U;m=gCe zk2UU4u*n(Z2XW&y+dZ{jWRD4^liMMG@r6k$oTp4lgsmLlI0IC9$T#1!pE>5K_X_L0 zqNK~o^EiO=oiWZtmOIA;zglqqw%cAEPB-&D%p$|&luGZQ%2Ff;;0^oKTgS_3GD=>n zg$vw@SWF-dFGvQE3=s?N5nHL zPp8^CBJ{E08p^v8;Cxi(h`5%}CMOf&9MaifIAb(rjtEn(Svj9Jr%2OLcsON_2o={7 znoF4@!knY{So)kUemg2Soiay+e%F?2OUfJ(ZaAu#w8&X7;)qapR5E0dbJ(=1XO3zH z0-xB{Mve##M@8j;-!JhZ`lMi$Bf?ilRfPb~I`A@_WSJx4IT1N*IF{l{{C+T&T4k+@q4P?8cy3#7V13nVFWbU}(+SRW~rqnl_m-sHPT5v>ywq;m|~ zBt>>se2~ULkrCh%M^#6R5lHVSO*NWh2V^zbU;&g&I>zv|PcmT@1C&%sF9s;7q-PvZ zLTO=Rke$T2RZ#4!g`9Pe>E#O@^ipS;nst!+^^^$vDRY5q+-GU?nVNObze&LS0YpWjlYo>*o+ce-N84~PZ}{mqYL~^d?Kwl6WHP$`lz-8KaJB0 zJ^Csq*v3+tm@PsjO)O#+TR6oXzD7LR$CN<)*TA5KSDoqHjYPl4Ar{Bvn9354@GK!d zzzstM8h8{jruVQgQMMJFXDk6ez)ge6k9oWbfgj~0^;$V+(92I{e1Kb;3N(b`Uu34y z|2mh;%J=}+_4@w9kg>ZZwXrT3{~N1ymJ7kJZhv~~N{jd+fdl6xhf|zstm1EG(wFKN zJM)6y$j1QuO*z3A30U(?X7cN|>aIBbaX3HtwE+v}{@mb;urFZTuged9HE(>q-}SWh zT^nD7UH(ObbNn^>DJy)R>Z8oc4Za8~eF;zG2w#Lg-+I43Px!TrdQ$e}2w#MDU($s+ z!WW^(lk|SB@I`!EvC{e*V;+H)|2>y-5unV@kQ9Y`!2qgccR8SaaL*fb5Kp^o)eT;$zzL|i=wn~J87QUH)*2Y$dLM*;%eTc=a#Q+6` zUq2lI&COkp!Z>ZoyNVqF?d|n{6qN8&5->U7_^Y6ZpPqoh5fk0&_^An)9r7_>f4Hyx7CCKo;dTmIbmXc(N^!LCKj_fozKYtO}%AcIikU zox)eA0x6UpU*xD$0ZYZ-Q&`S1hW|d%Px#07*qoM6N<$g3}7- A5C8xG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_delete_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_delete_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..d76b1a2bc53d14127a43b14991cc745c1fa3fa30 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL0wmRZ7KH(+UQZXtkch)?ukYq>_@-Y{M;wyt55l{~Iay)UJ@dyUkTm=>8HxTwwi$)2aKT#PC)5>;bKk!wXY2p6m_LP#PTiRoNrEf?^nX~Zh5nr~v{`0!GOw34N zzvMgbJ9+J=g?8L{xPgVQ?8a)p&7t>hUS4Q+)J!%{r_%Llqw(ugUCx(yVbL4mI*Gy4)z4*}Q$iB}0o_AV literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_delete_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_delete_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..041faae76a8b685884128712bfe0871a26cdde90 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=eq%^N1iT@Ar-gY-ag3d7%1X;ak|FA z0R5z8?7kfu54JDhDD6n=;q_H<=eGM-d*aseCez)MZ_iTkoV4WoX|2N@YwKFKp3_a< zmHM}T&HV*?kNm2;b$ZRcEj%x8GO&Sx+REp$_E*-5g-MVAZhYQQJ@a)O_wFeN^|o#Z zmV6V!eS7M`vaK5`*Qu__ezta7j(5WCu=u{ooBP(f&wOg2`FcX+>(FVI{!LctH>;+* pn%%5_vo>qKubA&770*jI3%ar-W&+T+44$rjF6*2UngEXSZDs%f literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_delete_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_delete_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..c647fead353a482f98553fbbfe139a1344d77d7e GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=%mREuT!Hj|(!s~%V}F1;g-U|_ zf*I=nf4Z?XQ~LJ|i4R_XK4xsbm7mAK2bA6C>Eakt!T9!EJL6#k0p^Y7Pve&Uoqm>O zWzw%irX$5b6%4(4S@%8|_N4-?DXQL^d9p{3JZ<@FA0G#7Hr_GAnGai)8fZn4DL*;={T5nrR9F6ZA| z8s1vVySq~A>w>~rk0slbr!TQyI;meV2I#T|;n^0JXFuL@?gqKj)78&qol`;+062@B A_W%F@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_edit_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_edit_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..8033d4a0cfe43097c7de417c8c5276a7b5348d89 GIT binary patch literal 243 zcmVfUJ{-=`x0UH;h3+sz*hEIor*>lZfv30H0((StN=M83xQa z`%n`SfE}v`mGSBBM{&6yipgPv7Kg(H50zUzxfdqevEQ29)pi!o2A42cFR;dCqf0Et zu5lzvco{7fkM%1$@nzMNu^8Sa9OP z)|<_!0BG3zvNf;nZuA@LM}M$BH0uu5iN30ln?Wg5zH|@fH(r#>_W%F@07*qoM6N<$ Ef@RWlw*UYD literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_edit_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_edit_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..92a1e1e11742fd430e9caceaf784c2418059b3bf GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhawZh5*mhGg7(du1c|&sh(f|fYo~Tq#!TN8natTvva>~P-IHqlyg7M z%pn^zeUj;rEh1 z&*zHPFZVrV_V9kfT$hJeJWb9ScAnDoG@czi;fIXO$+JHvtea@T=ocwdctp@0O8A}f z)Ra(PnlMM+L84E(<&lM>MIU#|6AOn3Kk=4lB@PvS!bcvMILP>k9(km(^vca@=Ktp6 VufBLpas>L4!PC{xWt~$(69BZ8c47bk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_edit_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_edit_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..e1e8db6792d0df1f13fc7bf91886370fd63813db GIT binary patch literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz0wh)Q=esd5FnW2qIEGZ*dVAg0izQIN_2Kjx z+K=kaur6mk=rhBVr{m_D!UEo;RXfj`8c1At`SSbZE4t@aiq?3FhH?plfUD>ASzlIp zPTv{f|Laoz`(39G-^#kSG2b>lC3WH4gwzGP8}4MLN1WRtI!$|R(^HStDL*f639h|h zli44cIe%9d_fCmLzJ=xw9nG1yOkc4k^3rXFw~Bh+%v<^!^k2*`zT-T*RDSMN=h<6J z6SiLJiO@AM4%0n5A=KG8b?wET$mbc))}+p|&2F65_|)NbitBRT4N8~UA}5vn_}`V5 zpc?UEL&Cu(R&Ft!2rP`8h}l!t1a0v@Db?nh%6sV1rnZEMk<1%ztjUWg2~*dxTh0CK zz^jJJ4YLyU*0{~!U(NaKNLEAT##M=VYrJO2ujYDoLd$jgt@US)O>lJqf+<_&Z+=?1 VXl+Tr7hvErc)I$ztaD0e0s!z-s~G?Q literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_edit_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_edit_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..7bfd34ba0363e3cc427933173f65b7fcf6ef172d GIT binary patch literal 478 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=`~rMJT!Hj|>VXN?m+F zz}Ptcf9ot|*JD#3u5Oynb7fMHm*&zbK~7)YHeY>L@>+`F>#yeG!xLE?9-n-0tK^%d zTs%v^e$#RBgO9r(e02TrL#d)h&}JWpT)fG0cX3@d|1Kq|n@VPDZYynDV;FfwCs|_s zHS;dBrQaTkDKWPEty!EAeyVu&ioi3)vsc7V{d`Ah))%g-JOSThskS0N<+^J4UH7#s z-FKe&e&LDl0Z*zmK7oWgp6z2t7A&&Kcv}6ZUU^={qfT`kL}m3p_MdW3swcd6#L0M< sxU2o8+_LH!5Jp;+gg40VUN0H=POLb)b`z5oFjyHpUHx3vIVCg!03-AMc>n+a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_save_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_save_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..bd50005d7f17de17b8c4c84dcbbad818b3336038 GIT binary patch literal 290 zcmV+-0p0$IP)KdY$G5n}rsDYnNE zW5BSn&B?K??+8YXb$EKW?kGkT!2}a525VtqU|`YmVh(!IU&C=>4&_%xxx+d4z}RO;(LLASJz>mQTo5n} zLkZ4EAPrV}OnbuvrbvD59d?kqn>+#@)JS2I{c2=WsMbDGwSgM)`0-G(`f394zDgwG zJ++9$+ttX#*yv`2V#(s46Wi%r2gJ5vF^gHu;uix-j}63I%Otxb zGO}wib2)s`_)WDrZc-U>ay4L^b9FURoImZw)eu!($>t_A3}eO7q%{2b9J6D(NYppm}(gbH$W8$4WNqDKE3ME*otHvG?yd*nnw}= z%^?Yarjx`#Q%Qm#5JV6`rXz?Tf(RmrAO)ZTF#@=75g3%q`JI5t%f=`sK zM)(Hb*ib_b38?;i!Xpr&8dAuiPc=LPQK}*P_4A#z;dtjz4a(iPQj=v*O`upm6^In; zqXwa3=2eIlGp$3gm{}#F#Y}1uE~a0Ncrj?MvI7uP6r&i$C`K`gbqMpjg0?6o4T@2W zVicno#VAHGicySW6rtibS} zlRrg>VzX8mv(Utf)+t3uV&&hB@T@_W;fN)ja*|NQww;r)7@HzHk4x|FqaC0lo>E0S366N#6751W;;n&*H*+H1 zeiOT4nu*`y&h*4&U5u;aNlz>lFP7?w$+>)5&$0b9;9M;iEjHIb&?@1AcM~tTGC8a3 z`$~QjpSU$WhV1hZg(hB&wSF3;pJy+cx{Nul`#V1F{-Kh(Z;E^Eo{$hi2qA=!*!c$9 W6|K{?e@QC<0000UDS=>yAipA`QWFQ4bcVCO`%zDO}J0!IbBP5us6c(?@cbXot>8E#ph?fFJ~_P zVKDQ5)#|Pe7|=-mwOD#@#v1df*J6KL{I0sN`_$T4rPz#Bm$Lgkw*Q*Y{_fVT>Y5K* zoR`$H+pjb0{GyPbJK3XsmZyL&Th^1!xq_Jrj$3##R6v9lh;UpRyJ?!+6FCj@K!yc- zTofCMgjg9*xr?xAhzBYxuyI+~P$a<0yh)vlJ;hf<;KVcyl?keW0Sb&P0uBraqLSs4 z95NpvgJ9)~W-QvbF66a`^{tB&vtn1S=X99#WkuB9ozZVsUQ6EI*k4>@LPDf2#VHaXTFD zRg-jM|K&6PhOqkI^EVv)rO$s7kzR4HVw#oFh1Y*(cWq63`O;J`;C{-ix|jvtlQZ=m zGhJ1?e5J6l&v%(+ANQ7QqqBMrb6Fp$A9I{_*+#tUPFBI@Q;+%NW|V$!ljjP;3mRnugoR$* z;ydyDk^9Qm8=6n)wVzI3x@)~o@pgvjRrR-4=M-;kiCV2}^r{X%yN}ugAxBqs=QL9|@ajUtg)a%H4U;j5QaA5z7>12hH-{*5O?}5pU N!PC{xWt~$(697KM9S#5h literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_task_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_task_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..acfd12d459e4f9a1bc5c9f332f8b4b1a6d18efb0 GIT binary patch literal 416 zcmV;R0bl-!P)O z7d3|uCbo_>HOI$@)Eqwfn3^kwDY>GUiYtyOI0+`^WSEe{mkbkea?IyS$6U@9yTeW9 zgk@kkO(FI@%~*{4NntS>sG~m#EJlNfD2ubkhSZRIE)#PoBAnUn>>3YasZ;#OutAFI zA;6Ny`P508l43msL_`k9pk!Exx#Y;b1kg5Ori>(g# zGiM(3E4%lza&6Gm=o7w8SjIEf>4q80d8;)#t?T08|09v3%UIq5qEC1!%Uroq+JxmU znTkdaNBNDw24gce?70G5sohkVtIq~oQC2c7#eC)xP1JmrsQYglzy4LMlhH10NXXmf Y4&6(2tk>)OivR!s07*qoM6N<$f(=luO#lD@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_task_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_task_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..557ec00c6fd0aac48a3656f4c5cb878f79e53da9 GIT binary patch literal 486 zcmV@P)yLBZ^7gwsB}_MXN-3ojjKKz+ z#XUoBTc(`pxU5x47>$csP)S(j$0`ZO#kr9#33tSqpDqcH1?k>MmxL#gK>EPs$$@pOiN!J}F^Pd{V-o-$@$ypf)K!=-F@& zYLlXavZ|m8s-OxQfS~98zXuicV<#{LN1%e*oJrjqn1~}4)aHEfWl{w-Ic-vcpn#kP z#^KO#3VJcjat=cFpj%jthdt(u#R143bPEf*H?Rl~`_D-h)Z~1jP5P^x{g6GV$!U}N z&&d?DwQIFWzn?P(`?S&qJ;##YO!}Riy^ta3CG?oIFe)cLsHdb~=b;ivR!s literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_task_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_task_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..49e3f36bb2753df9a5dcd3674e39dca0ebd13bcf GIT binary patch literal 699 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz1|<8_!p|}=Fg1C)IEGX(zP)Og(;Fz!{?WK| zt64Wo;(ZSlrcO=`hHpprc^=Obo2;hxyCuTp#_sUs=@X6>1m{JU%Afu#c5?cT{G#)= z@85n_N&mn9C-3qZGr{0y57RkD?E`EE3-(Uyn#v@@dhc@GBF5zn@3+j)I3V~y+ER$O z!n@Cf*>AG?#fJ1PcLfC2az`wFJFT&NQ7`kpOJ&{%94{VYjF$YjEG45!)md0aa#q60 z3oPDkY7u@W2VI!!(ilK&Ba?%Z7IIGG@!c>dqp6ea&nX5FdrwBwQ+Ht<`&kJ;FS2wm z*veschF{EGcundChNzYE6ADcZD%CPfTlQmGW1^RVa1IyewqDLK)q_3;2U&#Au&ln5 z{y@{<7Jq{E&y5x~`<`+d2K-qJN z*M=L^Bly<1|L<45ktU~e@LGfOfzOhOwr>s!tzpkz*u%Z}=tjAch$i0-QMc~oyZy;e znSR@{u94fq716}HK`EnfP4!(~Aj=8J+CBNL_#57W1tqQ*9z~R^-Pe;i@Y*0s=5<-c z_JqPMY8!;oGw6&;9ldA;G>6dp$PM*lbW!x|r}Mjudpp!$LJMpB(LgY*Hef_-Py dj3MARcUMi-9-ZszH-L$f!PC{xWt~$(698=JBg_B* literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_task_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_task_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..9ed126cc03fc38868ddcf90f89fc73a447894002 GIT binary patch literal 909 zcmV;819JR{P)>NI)JU0eOf7Dzz)I=Z;k8?PIjrIchc^1QYng15}PE5f2woIFX-c0dIlk0fiAg4B&YKG!rO*$oq*?NK=BCfX3{;W`b9f1~3#bH9ES?lVqgvw& zBEl?Q0PO?{`RX`}=RkXbJVbGMYycfXgbtno0xBSi&tnH@0uefR3J9ox2s0^oQULv# z;%NU9VFphC0TmFXY~d^(0|FvRKmuY1`YRv-2}nQ!5|CLS;|WMW>_9`)KEwDx zebYew_&{r>f!5*!T{R7KB|gw%#`iqeZ4W&cKioD8wBk~Pp3#+T8(o(sTrl{v*$C%d zx^UeX(I~<6JVtae<=Nyl+e!NL99YlpOmUwzR(n`UHup?GI*Dso!v^6IxI+xEisd8= jyHZLirIb=isj2o4eWoGbJ=~n100000NkvXXu0mjf_~vOP literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/outline_error_outline_white_18.png b/app/src/main/res/drawable-xxhdpi/outline_error_outline_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..c869d5fc2e257afc823bcf6497e68487575d50d8 GIT binary patch literal 544 zcmV+*0^j|KP)Mt2I``YB5WjJ!bAc#im0PI zr~1HtSkxf~Geb1tc;^HL95iRNeH?^C4V9PMun2KzD{p*}aj=xX8lp`8#Io{`f_bd(7H?AMlPlO# zVf*Ip$6hsE1sBr_^wk8ygitE;+#mKdk&OL|odmOF%YO8e>`kYzCe#F&5Xv;)^%m5m zz*!pRNY#zEpd)*ru{6w(J+tHGHZhvG8`{Z1f(e0!TwdL)IWlsPLL{())MebxJaG^^ zv@Y*5X-l6tsmUnkv*1R|xx}z8p4{64&J7RiR*rd-%Dnw%Jyae!1C*GcPBZ2xe()lX>?`)V7CNQMU?M+AmD4VdEnfP|9&{{mPKC%}k1CvZ`0aa1 z6S3RjzD}RBZy)Pj|Jr@SS+E?hne#rTIj-%qc6FP!oGuv8buq`euvVFJi`#YpT``tB zCdRn3g6mDT!;1B#^NG|bwfo;_A~SETw49wB?*v{;;c7zFQm8d6o4rpL{we4gg+~h) zI1_Foy#lrKPbKvOorH~{VwI1PWbCVzrJ^9hk(JH9BxAn>s%G2;M`2^A3VD=-3|re$ z3?^LUM%bZvq%1%)Gw7U!jiD)QIUZ;TP!B3x7q$@(>-*jQC%pOvhF{LYwqjaUUBoCCNH0zzuXL zy>?v1>@0>^h$kxNKIUd2%uHNRJ*P3PR^zP4AJz8@t7<9CFdSBxFF21)Sb;iB|7TLK z!wPJ|d3;freHdEpIAd{7|9r=OG$bjZ0sHY?|J=stYQ>p`cl!1Ln=vve5sbuUe9*Vo zm{N^Dr>{8eXvC;8Z#o;%uJ1@=Dmmxe)w?FtCl!KvH0j-~ip)tktaq0%CaExt!6m)h zpOh2U>D>_wN~#2da76D`C*^<{_}yEaq(<}+=@+IarG|5T46A`P6lh={!|hBt4xPlB zik)+am0(V466?miQU-b?)?SL$idczOw|23IrHV5T#2S-8)dB_32x4=SV&S^j2aL)< zpi%fBcC8f0i4L*NNucV10@y6pfvM%V@OO;NP@s|cF19I23lCE4NUI+xfc;_*(pRTV ztRaJe8pPUCjRq_g`-}k@3^V|r#g?SG;2yE_NucHe1#n($cbbcx5ZjdDK%2ylr@7cu zvE>;Kv|Q|Inu|4y)nzzPomg|4i+vNDl;J>=#J;7uSgY933?)@d7ylV{cY!t z2>^y+7zpxb?a=^!&~gW&jU6e^M|%I8@Akj>eo)-&2gUuU(XB^~Fs$x{VRf+X*bD29 z{lYBRFU+i5pQU}_+Q-FV=jvH_ArgNPpbA9rgg84fU_o+KgaKt1btr{8mCOO9UbS!! d3wW9W061*9Se;A{(ANL}002ovPDHLkV1fiCM=t;X literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/outline_error_outline_white_36.png b/app/src/main/res/drawable-xxhdpi/outline_error_outline_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..734892d8296064507596b5f0ce67d08a5f4ba56c GIT binary patch literal 1118 zcmV-k1flzhP)?!i zgCMDRi+Af4!Oy@=L-#(n=dn)jv7GOY*SGg~?%r#yz4pVH6e&`qNRcAN{{t#$pp`8g z;}Ulm<^=#x8D@w}9A*=1Sj^OaN6-|OvzhaJ!Vg9`%?28iE^0Z4ctsdIXCF(FC}{?p zxJy(FvYyK1h?>nV-Xn$AY-3jGMOCqfk4WPKJD6TdS?hR0To@)-8c_?lK-@UVyvdf; zDmbf(;SDP%GxQ$x)u|ucqK9^JEF?>vF~(3wmWAYKr-xho@WJwvJkusa)?98(*qJAE z(M+BNPA3x>vLdU+ANWDFJhpCi?hNl=pV5vyBFx6={5wPHIDQ*V4&o z5%$L{ici)%&t|`orzUa>HRSnLBy=x|XApY-TUV$TYp0$oMgBGE0m&TCx%HJc@sHTX zSI@bYk#+FbJsNrt&ys^i9(a04IpFKuEx7P60P~s$JHAjp)ITpG z%oy^H9&HFtb6aXmiwUb?#9|r>O0vxHbvi>jAt7PL(CO$^FdxkUi{SI`a!g5u)$!Tl z+8>0VoR=0sf9Pl^Cd?T6Ev^>Y)XW%CP&Yf`ZwR`D5#YuLRh(@Sl8~~{H$es zAVS6|D9kzg&-gW+=18TQ6C)g2jb}PJ)G(E#ksLFI$8cn!>UoEHs5n1H!_>mj}-tMt`;@nT$IKx(|oXpGv+rv>M) z@w#w9oW={@W3x@;mHdJ@jgKf4r0IP2q99J=LnUM4G(Ii!hdh0c0sWOn=zG3tTo~8& k;8uzhDN>|Jks>;N0m+}cBCs!~4*&oF07*qoM6N<$f{aldI{*Lx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/outline_error_outline_white_48.png b/app/src/main/res/drawable-xxhdpi/outline_error_outline_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..4398efcb26a16c6b6288e06a1f29e9924f014e93 GIT binary patch literal 1533 zcmV}3b*>7;Rff$3x`V_YMS zE^~+ho}JrZma>I|)JdaB_R~+xTtm~uMvgO$D@}2Pb#vs!<0bZRA0N8SZk{hToY$!0 zTi>y!m~h_V9HI0RuNMo>E1V~^&hSDp;4J2A9+HLrVKd4@CO zK|k_j9`U@(ALK=K-pCi6GP@G}ko!z7&U(UDwBWF zWb^by3GNhKUZd#ZR3t>9pCY;=yj(Zw4-!j1HzT}gA;%(CL?|f6SQspxg^We`yFz`@ zSk9#Nk=`EsmEX<-OH{QWc@bsKTCeLbWB$LhUk(4pw$#?W08)x=hN#cF#PgP^=5k=)6CkCGHJZD|KBo;?MN6&$ zwHPY>ldkZ*YWNp6Iq~2PkWy?iMBn2E&<}=oSSj~_OzG|SE*!jQXr?;q7WxFF6kUei zXZi&Xe5Ex$;%tob3P>qNyyZhQY3HG)-L>Mq18UPgLw9&Ao#|eEY3eYI@C-;PL;3n% zI>Se`nP^9$0Ci|9fp628UBcfQv*S+lbnk$aVq9A&C9fm-Nc&*+77mbpu=p^!(QmX% z5Sj`HNdLJ>KAQ5o#^kW$UO@mrN-?Z)b3LiScF!q#Xh1#M-}78DgP&;3-E+NmD-fUt z?r9u-oXp^1jk%-FyMI9d8IqR6$;|2IDF+J+Xizs7oNUzBrB;=~0;*`2pvV6zvr@YN zvs73>CGA4c&iKYQXiQBgRa8JqG2yHtW5|DzngJkP(fVn8Q~NZgb`~1YPK~R5@lEL_ zZ~F=js82U>9^aI1CZoI1fVwrVPRBQOL1SuVp#kZ>%@^XEs%cEM78+2iZvA3>Q@1px z78M%MB8{tC@l8!>Of?o7P@`@qz5sF#NM11+q|*)3@|l-JF177&obhFQRtYcM=cTdo0{_Q3$TY}$vM_6Y{a<+M-8iNj!k98Vkun|cm} z$NAKAu*D030J&bg5N`QPAV98{zl2*r6$Fo$1yq5S-~|EXWeJ`v;!ONulx4uy2U8Z3 zTZT5-iZE+jHnUia%XTQM1KCh#aUokWtxjZ9uf>gQ3%5Fwg9R+EQIiy zu{f0jmQti#azvL>a>!d0_i{|2H3T_m()tL?QKgnZp#Szx|*ukGIrloA*AoWyeCfQHF zizPRC2Gz+{#<&&>%w-NSkc-kYAgBdYX6vmgRW4EE#(#S!sBw`hRra!j^>og;mq{cN ji9{liNF)-8L`MA!da|C#j>~kT00000NkvXXu0mjf)M4Gt literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/sharp_add_task_white_18.png b/app/src/main/res/drawable-xxhdpi/sharp_add_task_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..03fdfc353dc24e9e2046c11586fc482771f406d2 GIT binary patch literal 616 zcmV-u0+;=XP)4e-6u|K(S*?=FMo1Hhq)OmSkQA{vfgl`74B0JYH~ci!LTn48_q?#$fWh=jcB_Ga#PyZdJ5&4`@GnGVL7WtBP&Hc7e5 z4KBrCDr|AcAM){=170#cEG8l48@Bkw8W%&U6^?O@BbEk-F0+qsywduQu;5C~)5`tO zcXoJ8m1~TWFu@E@c%5l=#1)O&qs@I6YMEadXrDzAW6KNN;v-!H1< zH^*B81<)z&&AfJ39X7n*wNAl1M#|En{}z67J0c~bW#AA0!Rkk?Xb+- zP*a_%xo@sIQG3pm2+vfvsm%2{C)^t~ zROi$mPWkPHg>NjputBy=0hrHbP=qC(24S{st_b7I@{l*ZR*fLcdjsDHKLznQnyCM) zLzl0tdKNtc94DRdg%`}kJt%9C@__464$98sKZ?KBwU4uBeJ#xZ0000p`2$Gr%Rbc*6dw>;%8?iEs9xbJhhN zUOtom$8XMsVw3CZ!vaZJCs9T9w%w z`ou|-v>K4LQfC9QBD^w*7Xz{)d^D*i6IU8sRkJtUpVD`eJeFWz0MQPyBJ@pqBgK+U z*T81Oj2Je9E@$bPt3Ah|CbAlj+(S+wA7OV9x?uPwEMel44!7QxWwK3!DgDHeP4O=alJFC?BxFXO?-$ h6^;%6Mi|B}iGTbkt8Trdw0Hmj002ovPDHLkV1h*;D>DE9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/sharp_add_task_white_24.png b/app/src/main/res/drawable-xxhdpi/sharp_add_task_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..58cb49c7618cc6fe7182408a5c74862f5155f764 GIT binary patch literal 798 zcmV+(1L6FMP)Gdp{0v0r;Tb3bNg=kd*oWRXP{|7p-gKi8@A zoCXWP3JvC&rOpsNbhMLFq{194M8!`Yah2W4V|tll71dbgE~k>i^zj6fc*+U;m=gCe zk2UU4u*n(Z2XW&y+dZ{jWRD4^liMMG@r6k$oTp4lgsmLlI0IC9$T#1!pE>5K_X_L0 zqNK~o^EiO=oiWZtmOIA;zglqqw%cAEPB-&D%p$|&luGZQ%2Ff;;0^oKTgS_3GD=>n zg$vw@SWF-dFGvQE3=s?N5nHL zPp8^CBJ{E08p^v8;Cxi(h`5%}CMOf&9MaifIAb(rjtEn(Svj9Jr%2OLcsON_2o={7 znoF4@!knY{So)kUemg2Soiay+e%F?2OUfJ(ZaAu#w8&X7;)qapR5E0dbJ(=1XO3zH z0-xB{Mve##M@8j;-!JhZ`lMi$Bf?ilRfPb~I`A@_WSJx4IT1N*IF{l{{C+T&T4k+@q4P?8cy3#7V13nVFWbU}(+SRW~rqnl_m-sHPT5v>ywq;m|~ zBt>>se2~ULkrCh%M^#6R5lHVSO*NWh2V^zbU;&g&I>zv|PcmT@1C&%sF9s;7q-PvZ zLTO=Rke$T2RZ#4!g`9Pe>E#O@^ipS;nst!+^^^$vDRY5q+-GU?nVNObze&LS0x)s4`No9b;AiWL_^>8cAc4OS}L(7ICaRow{M z)P-2OaODF^iQ-!nM5Ia=O;898K4Ogpi8cQ&B2qas=bSk+bLJjBU$!|j_jm7^_d}$N zGRi2Uj55l2bAm?Z)5$mdL?6G?&maJg>E}=S=;b>;r>#h!20o;llZ=oiMmWv4bksYl zo!tzPC5G6?l6oXH)5T3};}15{TtBE5dU$}V7-l=~ghx$b8;@}vBlIveB&*5*zG8^= zVNi29j_)`{C2!VB9^yZqvq6*pG)}VEebc)$)yEp+8VBiS74K1Dwg?lcuz=;PW+T6F zCz17qmUR($Er;znOFdi_{d$!x)n=$$`MvD!6?lp)^dvH z#w>up`Pc=kjk__Zf7nH9=CtRqk5NO`c<*zmJ?p*}^^CpDvi{=c@v|XooVLvFCDi{~ z7x=(g8D7j9BNo63n<_(Bwno`RLk{JFNH>JO*oKGpWF*eMB8qiVMdWzD;ZNJ zdW@zbv*v0#PrYWXl?T>2s}X>vt9z{Itg5DLH5HpRMLFIY2wr8JvmA!9P1$ZODLSh~ zIq2^yI7@^cW#_4(=&WYN%+tT_`h%eMMtVUJ~&k~_c z(c_p=c$NsAkxZ`U&br`XWs@zDY!2nln&uM?>)6v{i z8TK%vE>$uuhIPrLCbWkcc7o$+v8?GvpUWC%JZy=fed3Dc0+wN*sionH}buuS4?Q#~D8(7Baw^X!@EH|*s6Q+r@%q%xBiz)6{S_&35?O$Icy*~Yadsvjv z(o+3eu6Et(lDAq$Qqoesgq~rx3x5$>>ayh@X1P@R3eBL(@DH9kHZjHUT tZtFLGWGkQYu9Q(m8D*4FMj3BX{0Hz!Gaamo;|u@*002ovPDHLkV1iP6FrWYc literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/sharp_add_task_white_48.png b/app/src/main/res/drawable-xxhdpi/sharp_add_task_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..806d3e89d21beee3f00a7dec15f3d3c57498ed04 GIT binary patch literal 1585 zcmV-12G043P)fi$N`Gl)onp|Bz7!YeN-b3AQl z@RVs`7n&2nm=xsULL{sk+kxaol6XkT=J4%e50cq>kL!8YyJoN7AF$WjAKt?{y=#et zgoK2IgoK2IgoK2I)KO?;Chc^wg8>FOLzVLYT%k&ppXg@`Ygx{tOs+4O7FM&5v!uxx z_V5;MV;iQ4PIiu7C0TQUT`XhD*t?n9Ilv8UWspNGWzyKdX=NjSppmO=WtQJK^XNxA z{VehmXAws!DyMncFPt`xQFOj#t{*t}(8DlpvX`l4=Xr_WahXf3WL#Nsrg4NaB!%IVgfH1uGq9ZHKJEFc@}Ur5zR24G23d%v)KKg)>alCfDu+| z@hsu*1UN(V(V|lRbavl-HDu+f5xu5!^&}a-IL;%gxA7c=a}wNK7g@!4 z^_RqWp3TVv@R98|SA3)JtFnyyCE)qkcDpC;#Xd+^S$agp^EAXZ3(xU*Y5Ipn^N6r6 zrodCR4nw{2ERGrLIl|rb%rhzQX91Ca%O5%;x-qh`G5Y);G_+k=@c$ zUOjs@XcXHM`C|9!&9y$WV=k0*{C=!}tUmA9$jA zVJAz;v$^nrU*0iPWmn*-RjbcXnfFrs#*{J3Bf?=rb)HZB3s3SV%f={=2;Unj^jKn^ z>%dSRq69o!oJ~4$+EAsLDR{_3RB9d(s)kB6r{c*>RB|2><5H>nQu1UXDm{+~e;Fz^ zAvI5GA`f`70vUKx5!vT4{Y>GvSOiaEB8{s@2PnfsI(CV0ERoL5r2~}dHP8AyLeI7j^D-(ygh_>08LD2%TH1(XB zsA6k^Nejr@;)P5^6?^kLJM5(VH*Fe@6l1CC{xVc;dDSV1xB+B&caSWvMG0XoF_1YaR zEDlKJbEw;hdToyu76zpCLESAxz4k{7iv&{oB=aUwuf}L$fk1j6^|Bu5(-|!+7D(;0 zaF%L~78VLr=8Xl)0#w?qDM|w5&*mnDc2;jG#GCDL90B>X!ICQ=kGAM?0_4{wZ%%;x z+9uEmkY5{3x&iWPt5OF*zHN5v0LZuPk{tk*X~XT30+nUU_7VfR-}JxqKu(X1nBfJG zlY>W^Si{diw--Q#9$hn;cJ}=1Bb#n7fC@PL=uYPFE=L)>?RUDp0J463)-;-FWj@dG zKKuF6xR^9Ck#nHYZmgRF*t*4+I6K16A0lUmKzc>w<`_|*h#Vb6+aZ3X(4&lxu~2+W zA%|gq!&BmO6pvHC#^z)jWt1POk#-Iw8XifOA^LgI?Pix6OigsMlk>S~F7qkN%QIG~ z1J%N6_Hi~9%sKY)CT;F^aCCFy&7_?!b}+yIXQ+-|T_aSfa*D6n&IhcZt<3ZOAt50l jAt50lAt50lA@=hRi3{<#18MZ300000NkvXXu0mjf+(-0K literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_delete_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_delete_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..aadf7229ee75795998b33c2dd239d0a2c4cc69e6 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw+C5zyLo)8Yy>yVbL4mI*Gy4)z4*}Q$iB}0o_AV literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_delete_white_20.png b/app/src/main/res/drawable-xxxhdpi/baseline_delete_white_20.png new file mode 100644 index 0000000000000000000000000000000000000000..e48ef158f554cba3b3bea017039d3ad035e4b0f8 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r50wh%=tki(iVow*xkc@k8uk7Y+FyL_wG}k#i zDMx_w*h!fU9oEfdh{M3h#Dc*%!?Z0V{xkFWkOwc>r-dYZWDfso5_di8-zopr06T$8 AJ^%m! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_delete_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_delete_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..a73379951d7a8eece2b6698bfb08eeea2665c8ef GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcgwt2cZhE&{od*vW+vw?uCV|+%N z+RFn%n(bB#1kZWQjy~skWZj&MIM(_lTcandcwXW?D)fHapKpHzIpxpE_kK9~r^-o$ z9cT`NftW+k*<>~l6F-pPC|LH+{xf5>R>FDqFCh-++0PU%J-a_C@8{83Y!T6}hDWCv z)pxJls&(k`Gv{580?qz^6|0gluUVBYbJ065ev-<|_fEakt!T9!EJL6#k0p^Y7Pve&Uoqm>O zWzw%irX$5b6%4(4S@%8|_N4-?DXQL^d9p{3JZ<@FA0G#7Hr_GAnGai)8fZn4DL*;={T5nrR9F6ZA| z8s1vVySq~A>w>~rk0slbr!TQyI;meV2I#T|;n^0JXFuL@?gqKj)78&qol`;+062@B A_W%F@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_delete_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_delete_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..b40da7917b111877f34a7377a38ffa69d27a43e9 GIT binary patch literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE8Azrw%`pX1t^qzFu0Z-f#UN;I@gbl=;w3?T z!3_2PKi$|j#g+B_WU*SdL!$RJCw*|)e{1FXt=S9=jAEWHjv*C{Z_l?TGCK;e9K5=3 zhUNbN*`~sCA+nC)o|9BSXnxMM{G4y6|6gwUQy(|s-+As!|0^AT+3TM8znt~w|BFp> zG7JaQnSd680f&lbP&>$56aoo;kO4ESZiT#jCYu}gQcN~C@Z~hw+{l+7v6Mon`q=mt5YdJlEfJg||z=zAGF2j{p1Aw_NH* zqW#zDW^egTw_W~vE&kfus#PD?zQ29E_?5qzt^DoZyY5W|dw0?orkd`wjrK9#|&sh(f|fYo~Tq#!TN8natTvva>~P-IHqlyg7M z%pn^zeUj;rEh1 z&*zHPFZVrV_V9kfT$hJeJWb9ScAnDoG@czi;fIXO$+JHvtea@T=ocwdctp@0O8A}f z)Ra(PnlMM+L84E(<&lM>MIU#|6AOn3Kk=4lB@PvS!bcvMILP>k9(km(^vca@=Ktp6 VufBLpas>L4!PC{xWt~$(69BZ8c47bk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_edit_white_20.png b/app/src/main/res/drawable-xxxhdpi/baseline_edit_white_20.png new file mode 100644 index 0000000000000000000000000000000000000000..86a629d405cad35b7a629652e3460008b941754e GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r50wh%=tki(iOHUWakc@k8uWS@NWFXR<82&Iq z!FSf01BOX%je;v8j+F;Y7Ikr*dgNQSPT}(Uru7qpiq2U+|EJZnBk`y-H=FCdo}PIB zIa4dEj_~?-?>K!~QSOsThwD5h!SFQ){tL60KDs1t`cOn+pTy+~mJa!IMYlW4uWj5S zXzX_H{nbuMgMSl-XjIDA{(>*KZ~-BS6^R~{F3D8|(%&0tUQxn*-Ob4L2S z%4ahX#C84^XT3e=h_ifq-rB$u$8h4IDRbl=H--M|EGeI)8e-x^Pdp24sEHF?aX_2F fv;yehm<9TBeUAzY@2n~XdYZx0)z4*}Q$iB}*+O}jyoVeFTpn^O zIKOM~ifPbR+Wh7ogCna4%alfrNG7J159jX+8ED@N`LH)7D5=Nrm_)MueABWmv*)ha z>grOLzW!~FXz%^ozrQUMviq@7i0x;gklRl~A+?{sI5*e4Wm&D8e~5GTf6p7YjH;Yg zJFko3OrQIF=Z#wv3qq~@{0}*{zxUh`z4(Z}|BEX>QaSf3+1oo#n?GIQ?0o+T&;8X~ z9`viXJmgouGVw<<=f)pdoP7I&nkN7ES)uf~*_OZN$A^c9+xg|~P#C8_26LVJujJ7D zo-g2`HFL?2bquQelpVU`WfmOM=eh7$oK@o!H>v!yKNb!-n{?Yopr?uU~n;by85}Sb4q9e01rTwg8%>k literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_edit_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_edit_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..7bfd34ba0363e3cc427933173f65b7fcf6ef172d GIT binary patch literal 478 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=`~rMJT!Hj|>VXN?m+F zz}Ptcf9ot|*JD#3u5Oynb7fMHm*&zbK~7)YHeY>L@>+`F>#yeG!xLE?9-n-0tK^%d zTs%v^e$#RBgO9r(e02TrL#d)h&}JWpT)fG0cX3@d|1Kq|n@VPDZYynDV;FfwCs|_s zHS;dBrQaTkDKWPEty!EAeyVu&ioi3)vsc7V{d`Ah))%g-JOSThskS0N<+^J4UH7#s z-FKe&e&LDl0Z*zmK7oWgp6z2t7A&&Kcv}6ZUU^={qfT`kL}m3p_MdW3swcd6#L0M< sxU2o8+_LH!5Jp;+gg40VUN0H=POLb)b`z5oFjyHpUHx3vIVCg!03-AMc>n+a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_edit_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_edit_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..ac8e24549650c4c22d1e2ae2ca6c4d876facb81b GIT binary patch literal 582 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE8Azrw%`pX1;Q>A&u0Z-f4M3k8-wUA8vL!)& z!3=^`$3Ogkx+a7%>fLF@n%5@vIse|QwSHFmr!ulOBD(G*0|R5Dr;B4q1>>9Zt+_xK zG9R39_=(Zm{b@6gOqJfC`k$q~x$Ih0_S&rw;#PslyacP+`cD6+Yu9YK=khQAGPq8xzw-bma72?azGux91oI84P%s z7k*z~Wj0M)7q%{2b9J6D(NYppm}(gbH$W8$4WNqDKE3ME*otHvG?yd*nnw}= z%^?Yarjx`#Q%Qm#5JV6`rXz?Tf(RmrAO)ZTF#@=75g3%q`JI5tfF z<2n!pDo}w|fC)x{3RIv16{tW3{%7Eh0Ua7N=rCaC7I00IjISX>leH_rFVYkFw(gAl6KZ6CuFq0qVsqp_M*1o_Fk{4s8HY&MA6@%H`)`(Rtpr@=&84M^%bc!1 z4U%6=3CgQGi#p378F|I{*Lx07*qoM6N<$ Ef+L;AqyPW_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_save_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_save_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..f553932e4aa1f68c7217568ee2c5ddc5dc494c3f GIT binary patch literal 444 zcmV;t0Ym8#iPp~aq-WTG=wT2{_;Nw+pq*m!j})Z_8Ul;KtZgAA#i}C z30xp)LVM!iTlAv|(E;}o3;^yUm;l^EFaq!=m;v|_3<3NIrT{(!V*msYKmY**hzp3F z00IagfB*srAb385s-Kl$_E5)NGh_=FQkprvRwPdS_--)&T|6n^UL0 z|9*x6RJSkxhfrAs)cuR6wUBC?fbE}WZ!H4O-JPd*_KdSVz}{*4-X37(G<{_cuymTf zvUDS=>yAipA`QWFQ4bcVCO`%zDO}J0!IbBP5us6c(?@cbXot>8E#ph?fFJ~_P zVKDQ5)#|Pe7|=-mwOD#@#v1df*J6KL{I0sN`_$T4rPz#Bm$Lgkw*Q*Y{_fVT>Y5K* zoR`$H+pjb0{GyPbJK3XsmZyL&Th^1!xq_Jrj$3##R6v9lh;UpRyJ?!+6FCj@K!yc- zTofCMgjg9*xr?xAhzBYxuyI+~P$a<0yh)vlJ;hf<;KVcyl?keW0Sb&P0uBraqLSs4 z95NpvgJ9)~W-QvbF66a`^{tB&vtn1S=X99#WkuB9ozZVsUQ6EI*k4>@LPDf2#VHaXTFD zRg-jM|K&6PhOqkI^EVv)rO$s7kzR4HVw#oFh1Y*(cWq63`O;J`;C{-ix|jvtlQZ=m zGhJ1?e5J6l&v%(+ANQ7QqqBMrb6Fp$A9I{_*+#tUPFBI@Q;+%NW|V$!ljjP;3mRnugoR$* z;ydyDk^9Qm8=6n)wVzI3x@)~o@pgvjRrR-4=M-;kiCV2}^r{X%yN}ugAxBqs=QL9|@ajUtg)a%H4U;j5QaA5z7>12hH-{*5O?}5pU N!PC{xWt~$(697KM9S#5h literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_save_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_save_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..f931c4c2c14b9b8d63d477ad11a031455dc2532a GIT binary patch literal 868 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE8Azrw%`pX1TLOGST!Hlep$1-P?^6W2+omMQ zFPMSNZR-A8pa0iOO#8&q^yP%!WA@`8+;6;CmhY+jdZOtQ&Yx{u*H`mQVaj{H+(Sip zpX+EXT$5fek zf^CGu*My2i)dg+u4$k;=u;tUi)=vi~ePYb#S=W=l#Ma>!GZBP@LBfFsMrJl1Amc${ zqq{MJ3m1nlL|Ec(%rBNx%jLN)jgGxP3|1*lI$)Arv-G)UTf@nZ!FfNJuRUzr{HF2f<7x3bm^I~= zo?(3b@kI2!hC+@9JlP4S1XbpHFdH+Sozv)~JV8%`S-WX%Ph*(!j66-I-n z(-_#k@1M@SC)PafQ+;~F%xy0p3!d74q{i*%#MC|^nP(P$&-F}VGl zT}`Xpv+d@Z_t%rQa|T@Co6W)fc1^64%a+wUj_k;|{#Izo;<-mvPI+`M{>Cx+(y!$e mM=Ciln%&+V225o@(C~$^WX;k4&WQpYAg-sYpUXO@geCx`tJtRi literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_task_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_task_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..557ec00c6fd0aac48a3656f4c5cb878f79e53da9 GIT binary patch literal 486 zcmV@P)yLBZ^7gwsB}_MXN-3ojjKKz+ z#XUoBTc(`pxU5x47>$csP)S(j$0`ZO#kr9#33tSqpDqcH1?k>MmxL#gK>EPs$$@pOiN!J}F^Pd{V-o-$@$ypf)K!=-F@& zYLlXavZ|m8s-OxQfS~98zXuicV<#{LN1%e*oJrjqn1~}4)aHEfWl{w-Ic-vcpn#kP z#^KO#3VJcjat=cFpj%jthdt(u#R143bPEf*H?Rl~`_D-h)Z~1jP5P^x{g6GV$!U}N z&&d?DwQIFWzn?P(`?S&qJ;##YO!}Riy^ta3CG?oIFe)cLsHdb~=b;ivR!s literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_task_white_20.png b/app/src/main/res/drawable-xxxhdpi/baseline_task_white_20.png new file mode 100644 index 0000000000000000000000000000000000000000..189ffecba3267d925aa70f1a900197a7e8683ba6 GIT binary patch literal 461 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdoh8V4ULV;uuoF`1a0jUuH)Uw}-tl zpHF2pl)JEYSiN8{O7dDDK5N6#%OQ=7CmUlAG#(H(x^+`~?UAdNKRp)voBy-!PDulT z11vijmmQe(ao6dF?fhpl{aq4-4hReGNUKm{+PraMkRp?|+nV3HqDlvDG!(ipKJH*T zCdk^O%q8J2V$i3NAQO1NVo`&j3nOy}6Po}lj}n)Ji-q<( z1eXQR`;yPoixV^xwBuHC1|IN#utYmlfHmiUHsf@rf4${*LYcNTsxvlM%w&Au;C?HL z!QJ-5JVqntdwKVALj{>DEE&1uR@y&evdB4bnknM=YGt#BZ$&6FX8Ch~%WZKjd9QQEXTdAI419Sfb(f`{+*WH}_akk|i;n%lbE`NBo vvGZ~A;g8?u?$6HV^=X{_;^|Bf_{(7O^Yz}mO2sw6Xkzem^>bP0l+XkKB;d5A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_task_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_task_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..0d825e9c3af620389ef8ba6f0ee49da3bec649ca GIT binary patch literal 616 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VAA(=aSW+oe0ybMUN57>v5)x; zhcXHn#g6peh-vCJh?ejWP|{;vz%|+T(yO$|9yz=rw|~7Mt=nF9NuPvMnp)_OBu=a}H0N*VHik7Z;P= zncF)SI~@owzOv!^3V{#F_ZVggGF|8qXh>^eFi~bn2;um#6X;|P#urW;4#rL}*+9hy z*O?fa7ics1KIZ>_XzgL94O=rFUl(Kwklo)W&~WGnP?N~9`5enXsxs6* z-rvsfrRP7Nm}Eka-+e{@ zekR5lGWAwYxql`{G%|dsEc)}3wt$D$K@jNgHg(Yu0;afTt&v=1Uo z2FWe2KuRB2%v&MW(5(ExLXMfK!QMc*MLYH}d%_~HuQ?nTm@Y&xFbOm;>NI)JU0eOf7Dzz)I=Z;k8?PIjrIchc^1QYng15}PE5f2woIFX-c0dIlk0fiAg4B&YKG!rO*$oq*?NK=BCfX3{;W`b9f1~3#bH9ES?lVqgvw& zBEl?Q0PO?{`RX`}=RkXbJVbGMYycfXgbtno0xBSi&tnH@0uefR3J9ox2s0^oQULv# z;%NU9VFphC0TmFXY~d^(0|FvRKmuY1`YRv-2}nQ!5|CLS;|WMW>_9`)KEwDx zebYew_&{r>f!5*!T{R7KB|gw%#`iqeZ4W&cKioD8wBk~Pp3#+T8(o(sTrl{v*$C%d zx^UeX(I~<6JVtae<=Nyl+e!NL99YlpOmUwzR(n`UHup?GI*Dso!v^6IxI+xEisd8= jyHZLirIb=isj2o4eWoGbJ=~n100000NkvXXu0mjf_~vOP literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_task_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_task_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..7f3ee92e118fe82d99d98d7e0a7bfb8ee9b08e14 GIT binary patch literal 1234 zcmZ8h4NOy46u$TN0k1{ySribNef-JJ^!!BG(eCk(AjX^QQNOP0mtoOAEF`R;eWlY4UZ zW@n}P@j`e20Kc@w(j3pqjyXwq;z-AdDgcPXY0?i@eEwkY;rUIu%Yv`In9)}K#VLJq zMt*ma6RGye`(ju5zDmyi-G@4^T7XrJyAHtys-AgF1@x_coOESgP|Df9ZA#Fm<<9BTOIB^3<9ehdD9Cl&h?QY?fElm^Jryc}iC8fx{x?hUD%x6S9 zC!*m;x(A~!u1GK^x9@c(eri6kz_JmAiVk$e!Y7XoPX_ymg!~wb1Z7;V`vAy@dmCn2 zgedfmZgw!7+5cyKjtJ#-cvDs2v%g_wIQvO8s31+KGVGQwRmq4M5a= z#*G8!Xd|@Mu{^v6%>!B7IB1SEdf7BUSOm=xMju-h8;)bqSD=PGgUn$@Ut1+G3?MUY z^s`|$5pPFM(9BH&bxj$F$I;4~xy-rOcw7xCOjUd7zM785hPqL|!) zOiLNutTLrC*jsH{$lw%pMka%It1}jP&ea)N^mzS1l{w|;3kphMbOeplm59QC5Fxre zaTX*Q@HV9}!Or`4=c$Ro#jhp>mBFStx^l&m;7BZYX_xRReX^^TAWms5p%6}gBJ{j) z-C?CDeTs`u*nuFf&)^Yr#PQ67EOwO;M2trAomP1i)H=@P&fi)AjydANj#>5Ph2Iq1 zCFvveVB1T@52gM3X_))<<^BGBhBAAj0CNY@xz54~J-uCd-L@@45ODAHGiUBJs?`8( z%dd^blXkme`Zni5A8fII6xnLEG<5c^c?DfoSp^ekDZ@I4nCpSCVhon|wA0j0#T5Ck zqec9lUYRV>;*HxgdlhP0=uS-XA~grfdC1E#h(d3SaDVh%GZaNz*5YNucfwn5x(S+@ zt7;l8JYrQ$)+bgR8~q8M_UMvTw_pVpHtuxiq4kbIP7i;0-HyT2PhOUS*2vaYH%Vg( zt}KqW1mR1>s=a#vtR!!BogWPWzXX=*!ioMC4hG3Y|Fg|I6(F8_Ymajb5os?aPA$fh zf;l8Dr4PwC?75Vqu|tB17jhhL&^k&Vbo?z*#Nns9K`MwZ zC-yFVKWZ~iDpJK?x1ZGVb=@VJ@q!|STcJ9i@V))xhOJXt@ac9}AZb+w4&^nMs{=N5 zy(y=$Ta@ZBdr=Y_eSS E51U2;%m4rY literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/outline_error_outline_white_18.png b/app/src/main/res/drawable-xxxhdpi/outline_error_outline_white_18.png new file mode 100644 index 0000000000000000000000000000000000000000..d69481ba9a0c8dcf902e9701c730f46b9d0dbd71 GIT binary patch literal 695 zcmV;o0!aOdP)-*jQC%pOvhF{LYwqjaUUBoCCNH0zzuXL zy>?v1>@0>^h$kxNKIUd2%uHNRJ*P3PR^zP4AJz8@t7<9CFdSBxFF21)Sb;iB|7TLK z!wPJ|d3;freHdEpIAd{7|9r=OG$bjZ0sHY?|J=stYQ>p`cl!1Ln=vve5sbuUe9*Vo zm{N^Dr>{8eXvC;8Z#o;%uJ1@=Dmmxe)w?FtCl!KvH0j-~ip)tktaq0%CaExt!6m)h zpOh2U>D>_wN~#2da76D`C*^<{_}yEaq(<}+=@+IarG|5T46A`P6lh={!|hBt4xPlB zik)+am0(V466?miQU-b?)?SL$idczOw|23IrHV5T#2S-8)dB_32x4=SV&S^j2aL)< zpi%fBcC8f0i4L*NNucV10@y6pfvM%V@OO;NP@s|cF19I23lCE4NUI+xfc;_*(pRTV ztRaJe8pPUCjRq_g`-}k@3^V|r#g?SG;2yE_NucHe1#n($cbbcx5ZjdDK%2ylr@7cu zvE>;Kv|Q|Inu|4y)nzzPomg|4i+vNDl;J>=#J;7uSgY933?)@d7ylV{cY!t z2>^y+7zpxb?a=^!&~gW&jU6e^M|%I8@Akj>eo)-&2gUuU(XB^~Fs$x{VRf+X*bD29 z{lYBRFU+i5pQU}_+Q-FV=jvH_ArgNPpbA9rgg84fU_o+KgaKt1btr{8mCOO9UbS!! d3wW9W061*9Se;A{(ANL}002ovPDHLkV1fiCM=t;X literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/outline_error_outline_white_20.png b/app/src/main/res/drawable-xxxhdpi/outline_error_outline_white_20.png new file mode 100644 index 0000000000000000000000000000000000000000..d47f99ccdc0f808a6b823714d00d3c09df34ea28 GIT binary patch literal 821 zcmV-51Iqk~P)616vhWa#i7L|dKQozP+ckUDq{e(G*<}5g5p||D>QIkEW9&zHkOc>h#LL?G0{X5 zxR$>_uocuuf+w^X$j@d&Zg%(fc4l_h*<|0g@4fwYX5Tm8%se47%Ph0Zgb)l;E{x4`ZdCM_jtivm&lLU8>$LynO-&i6SKe!7# z;}5!a$dgz>a-ScV+8%e~0e6MZL}eei6g9lt90X3?CMz_lI!}`oHaQH4_!(*0@W_Wo z0M2Mrqtr95M2$9QzOkn~h>B2N^cb}kqoFd4(&{mq&!d3%+9&Z5b+u|FN1Y>|OfO9V z`iYjAR%o%;~oX_g>P&e5vPigEhZv4}Xv*Rh3X+7Ti@*HiB6KjEUC zeFfs;sruJ3FGb9Us%Y7o;U!f^=Dko+$^eCM@#1er!U1f!rne9qz=CU<>){r+Jt=58 zh8bQV%8-IaR02id#N{RtmKgHG;i3!aV&(F51R4K+oGX_L$w8sle)Fw-v5x}rZorzd5fTtuD zwB?ooKqa}QEm#czDhXC?$*&DhP4Zj6X-dPk)Ao(K^+z8mI6Sic_$>tonARTwr{EAh z1=kSPU*z~`8{4kJgs}cHF$LGL)?a8ludul#z=Uj@}+#2P8 zw7I#gi+t>D&y!%<+TiH3pSH0@G_%Yyv%vlVy;C#sAYyXi00000NkvXXu0mjfNBn;z literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/outline_error_outline_white_24.png b/app/src/main/res/drawable-xxxhdpi/outline_error_outline_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..4d785a64859c348f754df56fb46642c0176a671a GIT binary patch literal 969 zcmV;)12+7LP)wobI-Z=T%s5;V#J6MgAF)= zD|m=8yvIDs_yqu1MHyf54kPHpWicCNYQ}v>}6LA|f;+gEsVF5R+JU~~t8PW`l84T|u&mJW5 z*f)$c9MtS>gV8={#GVX(~zz0*0NK2^qFQDHL_fu67kTUEGkNvuz#Hu#?eQjIz z0*KI|t%M&wYc|~1zCp?7CkP;b2qkU&dw%E%ENQ{4sj32+v@~xK3Geian*M_CH55ny z5ek|Q7wmuFj{meOuz*IbUU=b^TCY)y7GXG`03s9>6Wbn7^Ke7^dD%z=WHmpodm|33 zwJuQ<0*JKQdB_`Wh9iAo5um0OGu{H2x{0(#CZJW@Ox=SyIu+8IkNC?iAb~Z-Os6}k zPoYc@MJ0d;6N;HWcgm>lN=mMxo<)FVQO|O$!r;F3v5NGA zE%8T-wQ#sA{disc1xF2BF^RwAtAT4)@fY1h;#&=BpxHxwyA6@}hNl{6ITPRXM-jU$dMrX8P?&VmirLyP=w^C rh=0kD`xsOaBK0|Lj2JOu#1M)}3b*>7;Rff$3x`V_YMS zE^~+ho}JrZma>I|)JdaB_R~+xTtm~uMvgO$D@}2Pb#vs!<0bZRA0N8SZk{hToY$!0 zTi>y!m~h_V9HI0RuNMo>E1V~^&hSDp;4J2A9+HLrVKd4@CO zK|k_j9`U@(ALK=K-pCi6GP@G}ko!z7&U(UDwBWF zWb^by3GNhKUZd#ZR3t>9pCY;=yj(Zw4-!j1HzT}gA;%(CL?|f6SQspxg^We`yFz`@ zSk9#Nk=`EsmEX<-OH{QWc@bsKTCeLbWB$LhUk(4pw$#?W08)x=hN#cF#PgP^=5k=)6CkCGHJZD|KBo;?MN6&$ zwHPY>ldkZ*YWNp6Iq~2PkWy?iMBn2E&<}=oSSj~_OzG|SE*!jQXr?;q7WxFF6kUei zXZi&Xe5Ex$;%tob3P>qNyyZhQY3HG)-L>Mq18UPgLw9&Ao#|eEY3eYI@C-;PL;3n% zI>Se`nP^9$0Ci|9fp628UBcfQv*S+lbnk$aVq9A&C9fm-Nc&*+77mbpu=p^!(QmX% z5Sj`HNdLJ>KAQ5o#^kW$UO@mrN-?Z)b3LiScF!q#Xh1#M-}78DgP&;3-E+NmD-fUt z?r9u-oXp^1jk%-FyMI9d8IqR6$;|2IDF+J+Xizs7oNUzBrB;=~0;*`2pvV6zvr@YN zvs73>CGA4c&iKYQXiQBgRa8JqG2yHtW5|DzngJkP(fVn8Q~NZgb`~1YPK~R5@lEL_ zZ~F=js82U>9^aI1CZoI1fVwrVPRBQOL1SuVp#kZ>%@^XEs%cEM78+2iZvA3>Q@1px z78M%MB8{tC@l8!>Of?o7P@`@qz5sF#NM11+q|*)3@|l-JF177&obhFQRtYcM=cTdo0{_Q3$TY}$vM_6Y{a<+M-8iNj!k98Vkun|cm} z$NAKAu*D030J&bg5N`QPAV98{zl2*r6$Fo$1yq5S-~|EXWeJ`v;!ONulx4uy2U8Z3 zTZT5-iZE+jHnUia%XTQM1KCh#aUokWtxjZ9uf>gQ3%5Fwg9R+EQIiy zu{f0jmQti#azvL>a>!d0_i{|2H3T_m()tL?QKgnZp#Szx|*ukGIrloA*AoWyeCfQHF zizPRC2Gz+{#<&&>%w-NSkc-kYAgBdYX6vmgRW4EE#(#S!sBw`hRra!j^>og;mq{cN ji9{liNF)-8L`MA!da|C#j>~kT00000NkvXXu0mjf)M4Gt literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/outline_error_outline_white_48.png b/app/src/main/res/drawable-xxxhdpi/outline_error_outline_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..f3ebf02dab35e079f5060754751503e6ab49dfb1 GIT binary patch literal 2219 zcmeHH`#;l-9{<|RW*M^wc@~m7atU>kYnQpqvcn7`sSFD<_j0dg8)F(pC^_pfmvIzY z9l0cz4Ha=}lzUIq<48$7X2@la=XL&q^ZWCDeLnB^>;2p3^?rR`?`$Fghk&Eu001Cd zPdj_{SkW{?vD0{?eDM zpN~CQw`{s^Vk)dOKoxDQfg-=nlAl4CEAfBp)1@qbFI(Uzoy8dIYZpE_uGxdWVykF% z-jjYHRw1v~BfSKBv)sOTnsc=yF5#s0{Np_^(rpL7-#;JuRV?dvY!9AO<v5mM3Nf1|xGn`C&#$cL8e!bMQf18W(VF40m$wVJK1JA};{ z-wr*jt*?s#9$GauCJ9^Lw{4{(rv5W6SyGnGOXoL1Hh;g|kU?)f-T^W{|6%fDAYox4 zjQJ$%#X%kM@+(uJRMwv3^n-|J7QMF6VHbSg8#ukHh6`CGLmTE0E;{>$UMan~*ytD6 z9hq2iSZk{cT9tvW@b_>o7&*Na(lwf^E0A)6$gB}BEo1?6aQT}T7{(#H0EAS^jR)mI!H=;1JqKo1vxzrv@VHNvfX5j)TZKD&7h9VDrL$0nHL|(shr3Hm|}v zhkX}|zFJ`A_D;!0_SsSsvVT!>T0!$uQS9e_Ma}Ai(+_%wNNzn-{V0=RnJA1NQIib9 z`Nn(3X|}iGdxpYd4G7pI6<<$=&!cFQU%HqfXn~>bHWU+69?wU~+W3{4`#FF{L}7rq zF`v__j1j%J9NmT|CV10wA)3etffQ}kmQA#YRdj$%y;OkbHwkBT1)++&8KL+U;mnpX z+V4x3#t;kZtu*BAWEBC~Ghe5txYYN;OMD1L*I&zOd*gr>+hGeKS zUJ+ir$>5zB5i1jiZ?T0Jd;Hfi*|DI!0aEof@%8iY4l#TUJ8fM{EwnIB^;39ym9qYc zs@}#Cf@1S)hDEH>iM#iWo-qun#-l?}n*yRv0Okl=pqj`myR`_yXX@l+rcIW#D6@%3 zELknn;CTmwoPC#S;Fn_t)0%Ey4ZU_Nu6&nPtT~T5tnH>74=QuPZ?fh@DtM-XaYe4> zAxeQ)V6bt-=Do>UjpCmv-xIZvSR!0eb(ZT|tAEX3VH*}>C}9~r0ST^1+S6?sKv`ED zl2~gIkWqB$f~TDXeqdom4EZ<=pX9W-v8w+|FnzPsAC0o*;7y7946UGdp{0v0r;Tb3bNg=kd*oWRXP{|7p-gKi8@A zoCXWP3JvC&rOpsNbhMLFq{194M8!`Yah2W4V|tll71dbgE~k>i^zj6fc*+U;m=gCe zk2UU4u*n(Z2XW&y+dZ{jWRD4^liMMG@r6k$oTp4lgsmLlI0IC9$T#1!pE>5K_X_L0 zqNK~o^EiO=oiWZtmOIA;zglqqw%cAEPB-&D%p$|&luGZQ%2Ff;;0^oKTgS_3GD=>n zg$vw@SWF-dFGvQE3=s?N5nHL zPp8^CBJ{E08p^v8;Cxi(h`5%}CMOf&9MaifIAb(rjtEn(Svj9Jr%2OLcsON_2o={7 znoF4@!knY{So)kUemg2Soiay+e%F?2OUfJ(ZaAu#w8&X7;)qapR5E0dbJ(=1XO3zH z0-xB{Mve##M@8j;-!JhZ`lMi$Bf?ilRfPb~I`A@_WSJx4IT1N*IF{l{{C+T&T4k+@q4P?8cy3#7V13nVFWbU}(+SRW~rqnl_m-sHPT5v>ywq;m|~ zBt>>se2~ULkrCh%M^#6R5lHVSO*NWh2V^zbU;&g&I>zv|PcmT@1C&%sF9s;7q-PvZ zLTO=Rke$T2RZ#4!g`9Pe>E#O@^ipS;nst!+^^^$vDRY5q+-GU?nVNObze&LS03Ja9wI zU>b7_vC<~5n<>)97kcgB>bOT%aW_~a*^;(Ne2#hGH1`=}h(7x0;~2w?^N1f2SI^TG z$lt|0qvpJ$EQCJlFAq6PQ^Z}%Xr;tcMIOLeGu~(@Zk97_RJy;BQDzl*0O$01p zRo*uJ>Cbylib1D%A{2c?f`U^#5iWa@oOX>@`+r~r@JDSxWx$&;;)&4aN%O!Ouf;T( zw*?<@j3>fvPpYks@kDr8k?Na!yyg7Lt_Eh#6Je7l-KB`Dnpv|XJQ22g5}pXXrkyg+ zl89D#BJA;`JQTqL;)#}cBJB4h?TzHc5<_{d*?f>jf9bSqJH7(0u#HLIAREIHmUCE0u?&yC}JqDE%AwZK($X@D6!XsX983jEQAm- z;h6vxhg%6mMV<*zdB7S&ROXogHHQ2VL=Bz+P;b%{LX6>gF{+Vr+UX<4zP+q~niKa5 zVmZEWGXm-_eJm2owCmKjG(hdeBSw;W83Ij~-&9uSvjkdMz@(pv!0(;sIl=!YmShPy zRX>=|B6=1;%i9pCf%Z3YQUmR8g{1~&yP0SOnALWyMPLRS+D)9N!y?f1NPq|}oaD*k zJMXXv)I3yikYUDn>>2t-5WQcQbhRb@v6Q)}g3hi}NPDm+2V%OTQD5m7`(b#v>@EGQ zko-d9c-}`Y(wXD&Jl{Mz>VV?{&$&j4o#H}N91-oJNFxoo7H2i8Q4NRV9}DAXw_Woa QKL7v#07*qoM6N<$f|_}uT>t<8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/sharp_add_task_white_24.png b/app/src/main/res/drawable-xxxhdpi/sharp_add_task_white_24.png new file mode 100644 index 0000000000000000000000000000000000000000..618ca512a9d05d319d51235e10f59c4ed9dcaab5 GIT binary patch literal 1030 zcmV+h1o``kP)YpWjlYo>*o+ce-N84~PZ}{mqYL~^d?Kwl6WHP$`lz-8KaJB0 zJ^Csq*v3+tm@PsjO)O#+TR6oXzD7LR$CN<)*TA5KSDoqHjYPl4Ar{Bvn9354@GK!d zzzstM8h8{jruVQgQMMJFXDk6ez)ge6k9oWbfgj~0^;$V+(92I{e1Kb;3N(b`Uu34y z|2mh;%J=}+_4@w9kg>ZZwXrT3{~N1ymJ7kJZhv~~N{jd+fdl6xhf|zstm1EG(wFKN zJM)6y$j1QuO*z3A30U(?X7cN|>aIBbaX3HtwE+v}{@mb;urFZTuged9HE(>q-}SWh zT^nD7UH(ObbNn^>DJy)R>Z8oc4Za8~eF;zG2w#Lg-+I43Px!TrdQ$e}2w#MDU($s+ z!WW^(lk|SB@I`!EvC{e*V;+H)|2>y-5unV@kQ9Y`!2qgccR8SaaL*fb5Kp^o)eT;$zzL|i=wn~J87QUH)*2Y$dLM*;%eTc=a#Q+6` zUq2lI&COkp!Z>ZoyNVqF?d|n{6qN8&5->U7_^Y6ZpPqoh5fk0&_^An)9r7_>f4Hyx7CCKo;dTmIbmXc(N^!LCKj_fozKYtO}%AcIikU zox)eA0x6UpU*xD$0ZYZ-Q&`S1hW|d%Px#07*qoM6N<$g3}7- A5C8xG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/sharp_add_task_white_36.png b/app/src/main/res/drawable-xxxhdpi/sharp_add_task_white_36.png new file mode 100644 index 0000000000000000000000000000000000000000..806d3e89d21beee3f00a7dec15f3d3c57498ed04 GIT binary patch literal 1585 zcmV-12G043P)fi$N`Gl)onp|Bz7!YeN-b3AQl z@RVs`7n&2nm=xsULL{sk+kxaol6XkT=J4%e50cq>kL!8YyJoN7AF$WjAKt?{y=#et zgoK2IgoK2IgoK2I)KO?;Chc^wg8>FOLzVLYT%k&ppXg@`Ygx{tOs+4O7FM&5v!uxx z_V5;MV;iQ4PIiu7C0TQUT`XhD*t?n9Ilv8UWspNGWzyKdX=NjSppmO=WtQJK^XNxA z{VehmXAws!DyMncFPt`xQFOj#t{*t}(8DlpvX`l4=Xr_WahXf3WL#Nsrg4NaB!%IVgfH1uGq9ZHKJEFc@}Ur5zR24G23d%v)KKg)>alCfDu+| z@hsu*1UN(V(V|lRbavl-HDu+f5xu5!^&}a-IL;%gxA7c=a}wNK7g@!4 z^_RqWp3TVv@R98|SA3)JtFnyyCE)qkcDpC;#Xd+^S$agp^EAXZ3(xU*Y5Ipn^N6r6 zrodCR4nw{2ERGrLIl|rb%rhzQX91Ca%O5%;x-qh`G5Y);G_+k=@c$ zUOjs@XcXHM`C|9!&9y$WV=k0*{C=!}tUmA9$jA zVJAz;v$^nrU*0iPWmn*-RjbcXnfFrs#*{J3Bf?=rb)HZB3s3SV%f={=2;Unj^jKn^ z>%dSRq69o!oJ~4$+EAsLDR{_3RB9d(s)kB6r{c*>RB|2><5H>nQu1UXDm{+~e;Fz^ zAvI5GA`f`70vUKx5!vT4{Y>GvSOiaEB8{s@2PnfsI(CV0ERoL5r2~}dHP8AyLeI7j^D-(ygh_>08LD2%TH1(XB zsA6k^Nejr@;)P5^6?^kLJM5(VH*Fe@6l1CC{xVc;dDSV1xB+B&caSWvMG0XoF_1YaR zEDlKJbEw;hdToyu76zpCLESAxz4k{7iv&{oB=aUwuf}L$fk1j6^|Bu5(-|!+7D(;0 zaF%L~78VLr=8Xl)0#w?qDM|w5&*mnDc2;jG#GCDL90B>X!ICQ=kGAM?0_4{wZ%%;x z+9uEmkY5{3x&iWPt5OF*zHN5v0LZuPk{tk*X~XT30+nUU_7VfR-}JxqKu(X1nBfJG zlY>W^Si{diw--Q#9$hn;cJ}=1Bb#n7fC@PL=uYPFE=L)>?RUDp0J463)-;-FWj@dG zKKuF6xR^9Ck#nHYZmgRF*t*4+I6K16A0lUmKzc>w<`_|*h#Vb6+aZ3X(4&lxu~2+W zA%|gq!&BmO6pvHC#^z)jWt1POk#-Iw8XifOA^LgI?Pix6OigsMlk>S~F7qkN%QIG~ z1J%N6_Hi~9%sKY)CT;F^aCCFy&7_?!b}+yIXQ+-|T_aSfa*D6n&IhcZt<3ZOAt50l jAt50lAt50lA@=hRi3{<#18MZ300000NkvXXu0mjf+(-0K literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/sharp_add_task_white_48.png b/app/src/main/res/drawable-xxxhdpi/sharp_add_task_white_48.png new file mode 100644 index 0000000000000000000000000000000000000000..6e813239f0385625dba87653841ce559cf1b9f0b GIT binary patch literal 2327 zcmV+y3F!8TP)G0000QyNklu#3+8?5tVc_rl^r3PDCMF6=bMQ-8&wJR)KAz-uCJ5PN z^ewDr7bkF$qwJ)MtA+CU(a&Iw#n1d7We*QBMTq}~emwW^8h&$v?c7bhz;B?BZwZyJ zDf8#*g+GTa94B;+vVoTBgFl-W$WKo3BG*RmtnDCo;omlb;Gl~U&96cN*rX1lR#uWvBBX1I8{$X^L-CUVZ{GEIkCI0P< zH@M0tfCDt<4SpR@TSRi0-E3wRowU)$EJ{pON+~8#qC_*du#`1yU^`z2zz^_Qt`yL~ zI~K72$PT)hZ`MBJQvOO8|K)p+_yH=E@`8UZ|IY;eI0LL@UbdMnYPpeBykRt?<+uV@Z||Cto(gvH)Czt#KflMcT5eMXzncQLYBih}2!1yOUZ>Uh?-l&6O4NC`YcS5ce+>BN zXe{y@t%AwMF!+^Xi$-z%g5On<(>31f9SXnF!7=`iX$V#3KQ+p`SMa+kvtDCUfj0%e zyFztlzit)$?n+JG(PU8YyDN33#sIWk@VhJa5smfzHGxl>bO-{BOCs^a9~mikA{D;I7p89bLW={sTG3uN1ozF5&hJ_#G%P#DAsAdpMAA z5jSPRZ&^X%@GF(L70q=S@mo|-K>SK^IN?G{nekgvP)PhraU|hV{$v5a1qB7guN0#R z7gJ{ie?|p`#cxkQBK`~teBw{~^Etf*Y2i<)!0)HuzW@tA!c5S_pF)8V{?D@CeEbWr zG7P2PO>@8yzl8%v{0p%3Am&1WfBYc?SZhVtRuBSz2muzGaW)l%!5>0^)poQk1)=bV z5MX&i#)g7$_(KS=J|&q|K}h@|1UQ(K&!QkK{tyD3EK5nNzzBcE#leF91vpxml}3Rf z{*qD!5a4cUqN##B;146f+2ULy1>fZXe;5G{m!}&k$N~N^0-U~}VO@da17$-9aQupr zRRzw^^9>-t{Y!e*6nHpJIg9}3uc=y5;N>*yFakWhsGV8C=Y9?o4#n_eUeZ_r|S>3M~Ef#w5V=*2RCQ;GnIMPfP;5Z{B@D1qYeoYgm~h z0U@@pKd%Cd_+t|g-~fkn6j;R{nSd}yn4F=&GXD4k1Uba#v;yn+qZ1J77%TeS;Ez#2 zpo82fyTBizfTA5`7^8qf9p)LKfMOkI8>fK6ALyLB37K=sDEyJ;c^6Q_fR=(2v7M|G zi2$W&W<*QD2seuWH>LDw{>}_DTLic$rB-9H%2*C@tq5>YOr!Ry{o$hAh;k)BbCzr@ zM~d-toHGF$3wM7%B3dQ_>=#tWJK73P(Hqlwdr=5bis^}4+ML;-m?{En7d2P&nc&wp z-2xF{yR5}pvjo32t9uzI0_+ynW!MHBv^{ZIkRo zMAa^!hG$aDN$j$@ps}h2C`C<*Z^76vLc0jCRpR3*XXp0P;r=m=DRlEtp#>;Km(if~ z_xX}_?#|}sHn#n;prBl60ZOsh=+W%#?BM~sClu4fsjpaS6>~ zcC(pPbkar}vnY+V^=P2P4YaX{rS$L|?{ZZ8Zfl zvY94TZD9^uG~PRQouAmmHL6-e1AQ7BAh^m9Yt335#gs6fdo*@pv3=9oNvHlXjMboF z25U5S<+72z{GDk+{6byK)$B^#Br|P;`&GJV5z0DG3rkpU?fY<&clj3`Tq0!6MJ(iD zw(-8k4i#tT82i}9YW~8-LNdFGdRke;3i{Z@PTr002ovPDHLkV1kT?bN>JU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/baseline_delete_20.xml b/app/src/main/res/drawable/baseline_delete_20.xml new file mode 100644 index 0000000..4f54b4b --- /dev/null +++ b/app/src/main/res/drawable/baseline_delete_20.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_delete_24.xml b/app/src/main/res/drawable/baseline_delete_24.xml new file mode 100644 index 0000000..3c4030b --- /dev/null +++ b/app/src/main/res/drawable/baseline_delete_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_edit_24.xml b/app/src/main/res/drawable/baseline_edit_24.xml new file mode 100644 index 0000000..2844baf --- /dev/null +++ b/app/src/main/res/drawable/baseline_edit_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_save_24.xml b/app/src/main/res/drawable/baseline_save_24.xml new file mode 100644 index 0000000..1a8d86d --- /dev/null +++ b/app/src/main/res/drawable/baseline_save_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_task_20.xml b/app/src/main/res/drawable/baseline_task_20.xml new file mode 100644 index 0000000..1ecfe01 --- /dev/null +++ b/app/src/main/res/drawable/baseline_task_20.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/baseline_task_24.xml b/app/src/main/res/drawable/baseline_task_24.xml new file mode 100644 index 0000000..3a38d3a --- /dev/null +++ b/app/src/main/res/drawable/baseline_task_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..956b344 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/outline_error_outline_24.xml b/app/src/main/res/drawable/outline_error_outline_24.xml new file mode 100644 index 0000000..0f4224c --- /dev/null +++ b/app/src/main/res/drawable/outline_error_outline_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/sharp_add_task_24.xml b/app/src/main/res/drawable/sharp_add_task_24.xml new file mode 100644 index 0000000..295ddfa --- /dev/null +++ b/app/src/main/res/drawable/sharp_add_task_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..850ca27 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_note_details.xml b/app/src/main/res/layout/activity_note_details.xml new file mode 100644 index 0000000..f0a300c --- /dev/null +++ b/app/src/main/res/layout/activity_note_details.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_note_editor.xml b/app/src/main/res/layout/activity_note_editor.xml new file mode 100644 index 0000000..cedd2a5 --- /dev/null +++ b/app/src/main/res/layout/activity_note_editor.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + +