gitextract_ht_tjfbb/ ├── .gitignore ├── LICENSE ├── README.md ├── app/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ ├── schemas/ │ │ └── com.isaiahvonrundstedt.fokus.database.AppDatabase/ │ │ └── 8.json │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── isaiahvonrundstedt/ │ │ └── fokus/ │ │ └── ExampleInstrumentedTest.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── isaiahvonrundstedt/ │ │ │ └── fokus/ │ │ │ ├── Fokus.kt │ │ │ ├── components/ │ │ │ │ ├── custom/ │ │ │ │ │ ├── ItemDecoration.kt │ │ │ │ │ └── ItemSwipeCallback.kt │ │ │ │ ├── enums/ │ │ │ │ │ └── SortDirection.kt │ │ │ │ ├── extensions/ │ │ │ │ │ ├── android/ │ │ │ │ │ │ ├── AppCompatExtensions.kt │ │ │ │ │ │ ├── IntentExtensions.kt │ │ │ │ │ │ ├── TextViewExtensions.kt │ │ │ │ │ │ └── UriExtensions.kt │ │ │ │ │ └── jdk/ │ │ │ │ │ ├── CalendarExtensions.kt │ │ │ │ │ ├── ListExtensions.kt │ │ │ │ │ └── TimeExtensions.kt │ │ │ │ ├── interfaces/ │ │ │ │ │ ├── Streamable.kt │ │ │ │ │ └── Swipeable.kt │ │ │ │ ├── json/ │ │ │ │ │ ├── JsonDataStreamer.kt │ │ │ │ │ └── Metadata.kt │ │ │ │ ├── modules/ │ │ │ │ │ ├── DatabaseModule.kt │ │ │ │ │ ├── ExternalModule.kt │ │ │ │ │ └── InternalModule.kt │ │ │ │ ├── preference/ │ │ │ │ │ └── InformationHolder.kt │ │ │ │ ├── receiver/ │ │ │ │ │ └── LocalizationReceiver.kt │ │ │ │ ├── service/ │ │ │ │ │ ├── BackupRestoreService.kt │ │ │ │ │ ├── DataExporterService.kt │ │ │ │ │ ├── DataImporterService.kt │ │ │ │ │ ├── FileImporterService.kt │ │ │ │ │ └── NotificationActionService.kt │ │ │ │ ├── utils/ │ │ │ │ │ ├── DataArchiver.kt │ │ │ │ │ ├── NotificationChannelManager.kt │ │ │ │ │ ├── PermissionManager.kt │ │ │ │ │ └── PreferenceManager.kt │ │ │ │ └── views/ │ │ │ │ ├── RadioButtonCompat.kt │ │ │ │ ├── ReactiveTextColorSwitch.kt │ │ │ │ └── TwoLineRadioButton.kt │ │ │ ├── database/ │ │ │ │ ├── AppDatabase.kt │ │ │ │ ├── converter/ │ │ │ │ │ ├── ColorConverter.kt │ │ │ │ │ └── DateTimeConverter.kt │ │ │ │ ├── dao/ │ │ │ │ │ ├── AttachmentDAO.kt │ │ │ │ │ ├── EventDAO.kt │ │ │ │ │ ├── LogDAO.kt │ │ │ │ │ ├── ScheduleDAO.kt │ │ │ │ │ ├── SubjectDAO.kt │ │ │ │ │ └── TaskDAO.kt │ │ │ │ └── repository/ │ │ │ │ ├── EventRepository.kt │ │ │ │ ├── LogRepository.kt │ │ │ │ ├── SubjectRepository.kt │ │ │ │ └── TaskRepository.kt │ │ │ └── features/ │ │ │ ├── about/ │ │ │ │ ├── AboutFragment.kt │ │ │ │ ├── LibrariesFragment.kt │ │ │ │ └── NoticesFragment.kt │ │ │ ├── attachments/ │ │ │ │ ├── Attachment.kt │ │ │ │ ├── AttachmentOptionSheet.kt │ │ │ │ └── attach/ │ │ │ │ ├── AttachToTaskActivity.kt │ │ │ │ ├── AttachToTaskAdapter.kt │ │ │ │ └── AttachToTaskViewModel.kt │ │ │ ├── core/ │ │ │ │ ├── activities/ │ │ │ │ │ └── MainActivity.kt │ │ │ │ ├── fragment/ │ │ │ │ │ └── RootFragment.kt │ │ │ │ └── worker/ │ │ │ │ └── ActionWorker.kt │ │ │ ├── event/ │ │ │ │ ├── Event.kt │ │ │ │ ├── EventAdapter.kt │ │ │ │ ├── EventFragment.kt │ │ │ │ ├── EventPackage.kt │ │ │ │ ├── EventViewModel.kt │ │ │ │ ├── archived/ │ │ │ │ │ ├── ArchivedEventAdapter.kt │ │ │ │ │ ├── ArchivedEventFragment.kt │ │ │ │ │ └── ArchivedEventViewModel.kt │ │ │ │ ├── editor/ │ │ │ │ │ ├── EventEditorContainer.kt │ │ │ │ │ ├── EventEditorFragment.kt │ │ │ │ │ └── EventEditorViewModel.kt │ │ │ │ └── widget/ │ │ │ │ ├── EventWidgetProvider.kt │ │ │ │ ├── EventWidgetRemoteViewFactory.kt │ │ │ │ └── EventWidgetService.kt │ │ │ ├── log/ │ │ │ │ ├── Log.kt │ │ │ │ ├── LogAdapter.kt │ │ │ │ ├── LogFragment.kt │ │ │ │ └── LogViewModel.kt │ │ │ ├── notifications/ │ │ │ │ ├── NotificationWorker.kt │ │ │ │ ├── event/ │ │ │ │ │ ├── EventNotificationScheduler.kt │ │ │ │ │ └── EventNotificationWorker.kt │ │ │ │ ├── subject/ │ │ │ │ │ ├── ClassNotificationScheduler.kt │ │ │ │ │ └── ClassNotificationWorker.kt │ │ │ │ └── task/ │ │ │ │ ├── TaskNotificationScheduler.kt │ │ │ │ ├── TaskNotificationWorker.kt │ │ │ │ └── TaskReminderWorker.kt │ │ │ ├── schedule/ │ │ │ │ ├── Schedule.kt │ │ │ │ ├── ScheduleEditor.kt │ │ │ │ ├── picker/ │ │ │ │ │ ├── SchedulePickerAdapter.kt │ │ │ │ │ └── SchedulePickerSheet.kt │ │ │ │ └── viewer/ │ │ │ │ ├── ScheduleViewerAdapter.kt │ │ │ │ └── ScheduleViewerSheet.kt │ │ │ ├── settings/ │ │ │ │ ├── BackupFragment.kt │ │ │ │ └── SettingsFragment.kt │ │ │ ├── shared/ │ │ │ │ ├── abstracts/ │ │ │ │ │ ├── BaseActivity.kt │ │ │ │ │ ├── BaseAdapter.kt │ │ │ │ │ ├── BaseBasicAdapter.kt │ │ │ │ │ ├── BaseBottomSheet.kt │ │ │ │ │ ├── BaseEditorFragment.kt │ │ │ │ │ ├── BaseFragment.kt │ │ │ │ │ ├── BasePickerFragment.kt │ │ │ │ │ ├── BasePreference.kt │ │ │ │ │ ├── BaseService.kt │ │ │ │ │ ├── BaseViewerFragment.kt │ │ │ │ │ └── BaseWorker.kt │ │ │ │ └── adapters/ │ │ │ │ └── MenuAdapter.kt │ │ │ ├── subject/ │ │ │ │ ├── Subject.kt │ │ │ │ ├── SubjectAdapter.kt │ │ │ │ ├── SubjectFragment.kt │ │ │ │ ├── SubjectPackage.kt │ │ │ │ ├── SubjectViewModel.kt │ │ │ │ ├── archived/ │ │ │ │ │ ├── ArchivedSubjectAdapter.kt │ │ │ │ │ ├── ArchivedSubjectFragment.kt │ │ │ │ │ └── ArchivedSubjectViewModel.kt │ │ │ │ ├── editor/ │ │ │ │ │ ├── SubjectEditorContainer.kt │ │ │ │ │ ├── SubjectEditorFragment.kt │ │ │ │ │ └── SubjectEditorViewModel.kt │ │ │ │ ├── picker/ │ │ │ │ │ ├── SubjectPickerAdapter.kt │ │ │ │ │ ├── SubjectPickerFragment.kt │ │ │ │ │ └── SubjectPickerViewModel.kt │ │ │ │ └── widget/ │ │ │ │ ├── SubjectWidgetProvider.kt │ │ │ │ ├── SubjectWidgetRemoteViewFactory.kt │ │ │ │ └── SubjectWidgetService.kt │ │ │ ├── task/ │ │ │ │ ├── Task.kt │ │ │ │ ├── TaskAdapter.kt │ │ │ │ ├── TaskFragment.kt │ │ │ │ ├── TaskPackage.kt │ │ │ │ ├── TaskViewModel.kt │ │ │ │ ├── archived/ │ │ │ │ │ ├── ArchivedTaskAdapter.kt │ │ │ │ │ ├── ArchivedTaskFragment.kt │ │ │ │ │ └── ArchivedTaskViewModel.kt │ │ │ │ ├── editor/ │ │ │ │ │ ├── TaskEditorContainer.kt │ │ │ │ │ ├── TaskEditorFragment.kt │ │ │ │ │ └── TaskEditorViewModel.kt │ │ │ │ └── widget/ │ │ │ │ ├── TaskWidgetProvider.kt │ │ │ │ ├── TaskWidgetRemoteViewFactory.kt │ │ │ │ └── TaskWidgetService.kt │ │ │ └── viewer/ │ │ │ └── ImageViewer.kt │ │ └── res/ │ │ ├── anim/ │ │ │ ├── anim_fade_in.xml │ │ │ ├── anim_slide_down.xml │ │ │ └── anim_slide_up.xml │ │ ├── color/ │ │ │ ├── color_text_input_stroke.xml │ │ │ ├── selector_chip_background.xml │ │ │ ├── selector_chip_stroke_color.xml │ │ │ └── selector_chip_text_color.xml │ │ ├── drawable/ │ │ │ ├── ic_hero_sort_ascending_24.xml │ │ │ ├── ic_hero_sort_descending_24.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ic_launcher_monochrome.xml │ │ │ ├── ic_outline_access_time_24.xml │ │ │ ├── ic_outline_add_24.xml │ │ │ ├── ic_outline_archive_24.xml │ │ │ ├── ic_outline_arrow_back_24.xml │ │ │ ├── ic_outline_attach_file_24.xml │ │ │ ├── ic_outline_balance_24.xml │ │ │ ├── ic_outline_calendar_month_24.xml │ │ │ ├── ic_outline_celebration_24.xml │ │ │ ├── ic_outline_check_24.xml │ │ │ ├── ic_outline_checklist_24.xml │ │ │ ├── ic_outline_close_24.xml │ │ │ ├── ic_outline_code_24.xml │ │ │ ├── ic_outline_color_lens_24.xml │ │ │ ├── ic_outline_confirmation_number_24.xml │ │ │ ├── ic_outline_date_range_24.xml │ │ │ ├── ic_outline_delete_24.xml │ │ │ ├── ic_outline_edit_note_24.xml │ │ │ ├── ic_outline_event_24.xml │ │ │ ├── ic_outline_event_busy_24.xml │ │ │ ├── ic_outline_event_repeat_24.xml │ │ │ ├── ic_outline_file_download_24.xml │ │ │ ├── ic_outline_file_open_24.xml │ │ │ ├── ic_outline_file_upload_24.xml │ │ │ ├── ic_outline_filter_alt_24.xml │ │ │ ├── ic_outline_info_24.xml │ │ │ ├── ic_outline_lightbulb_24.xml │ │ │ ├── ic_outline_link_24.xml │ │ │ ├── ic_outline_location_on_24.xml │ │ │ ├── ic_outline_menu_24.xml │ │ │ ├── ic_outline_more_vert_24.xml │ │ │ ├── ic_outline_music_note_24.xml │ │ │ ├── ic_outline_notes_24.xml │ │ │ ├── ic_outline_notifications_active_24.xml │ │ │ ├── ic_outline_numbers_24.xml │ │ │ ├── ic_outline_open_in_new_24.xml │ │ │ ├── ic_outline_person_2_24.xml │ │ │ ├── ic_outline_priority_high_24.xml │ │ │ ├── ic_outline_query_stats_24.xml │ │ │ ├── ic_outline_save_24.xml │ │ │ ├── ic_outline_science_24.xml │ │ │ ├── ic_outline_sensor_door_24.xml │ │ │ ├── ic_outline_settings_24.xml │ │ │ ├── ic_outline_share_24.xml │ │ │ ├── ic_outline_translate_24.xml │ │ │ ├── ic_outline_verified_24.xml │ │ │ ├── ic_outline_wb_sunny_24.xml │ │ │ ├── selector_checkbox.xml │ │ │ ├── shape_bottom_sheet.xml │ │ │ ├── shape_calendar_current_day.xml │ │ │ ├── shape_calendar_selected_day.xml │ │ │ ├── shape_cascade_background.xml │ │ │ ├── shape_color_holder.xml │ │ │ ├── shape_color_holder_chip.xml │ │ │ ├── shape_color_holder_vertical.xml │ │ │ ├── shape_icon_background.xml │ │ │ ├── shape_widget_background.xml │ │ │ ├── shortcut_icon_base_event.xml │ │ │ ├── shortcut_icon_base_subject.xml │ │ │ ├── shortcut_icon_base_task.xml │ │ │ ├── shortcut_icon_event.xml │ │ │ ├── shortcut_icon_subject.xml │ │ │ ├── shortcut_icon_task.xml │ │ │ ├── toggle_checked_to_unchecked.xml │ │ │ ├── toggle_unchecked_to_checked.xml │ │ │ ├── vector_checked.xml │ │ │ └── vector_unchecked.xml │ │ ├── layout/ │ │ │ ├── activity_attach_to_task.xml │ │ │ ├── activity_container_event.xml │ │ │ ├── activity_container_subject.xml │ │ │ ├── activity_container_task.xml │ │ │ ├── activity_main.xml │ │ │ ├── fragment_about.xml │ │ │ ├── fragment_archived_event.xml │ │ │ ├── fragment_archived_subject.xml │ │ │ ├── fragment_archived_task.xml │ │ │ ├── fragment_backup.xml │ │ │ ├── fragment_editor_event.xml │ │ │ ├── fragment_editor_subject.xml │ │ │ ├── fragment_editor_task.xml │ │ │ ├── fragment_event.xml │ │ │ ├── fragment_libraries.xml │ │ │ ├── fragment_logs.xml │ │ │ ├── fragment_notices.xml │ │ │ ├── fragment_picker_subject.xml │ │ │ ├── fragment_root.xml │ │ │ ├── fragment_settings.xml │ │ │ ├── fragment_subject.xml │ │ │ ├── fragment_task.xml │ │ │ ├── layout_appbar.xml │ │ │ ├── layout_appbar_editor.xml │ │ │ ├── layout_appbar_viewer.xml │ │ │ ├── layout_calendar_day.xml │ │ │ ├── layout_calendar_week_days.xml │ │ │ ├── layout_dialog_input_attachment.xml │ │ │ ├── layout_item_add.xml │ │ │ ├── layout_item_archived_event.xml │ │ │ ├── layout_item_archived_subject.xml │ │ │ ├── layout_item_archived_task.xml │ │ │ ├── layout_item_event.xml │ │ │ ├── layout_item_library.xml │ │ │ ├── layout_item_log.xml │ │ │ ├── layout_item_menu.xml │ │ │ ├── layout_item_schedule.xml │ │ │ ├── layout_item_subject.xml │ │ │ ├── layout_item_subject_picker.xml │ │ │ ├── layout_item_subject_single.xml │ │ │ ├── layout_item_task.xml │ │ │ ├── layout_item_task_send.xml │ │ │ ├── layout_item_widget.xml │ │ │ ├── layout_navigation_header.xml │ │ │ ├── layout_preference_info.xml │ │ │ ├── layout_sheet_options.xml │ │ │ ├── layout_sheet_schedule.xml │ │ │ ├── layout_sheet_schedule_editor.xml │ │ │ ├── layout_viewer_image.xml │ │ │ ├── layout_widget_events.xml │ │ │ ├── layout_widget_progress.xml │ │ │ ├── layout_widget_subjects.xml │ │ │ └── layout_widget_tasks.xml │ │ ├── menu/ │ │ │ ├── menu_add.xml │ │ │ ├── menu_attachment.xml │ │ │ ├── menu_editor.xml │ │ │ ├── menu_events.xml │ │ │ ├── menu_logs.xml │ │ │ ├── menu_share.xml │ │ │ ├── menu_subjects.xml │ │ │ ├── menu_tasks.xml │ │ │ └── navigation_main.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── navigation/ │ │ │ ├── navigation_container_event.xml │ │ │ ├── navigation_container_subject.xml │ │ │ ├── navigation_container_task.xml │ │ │ ├── navigation_main.xml │ │ │ └── navigation_root.xml │ │ ├── values/ │ │ │ ├── array.xml │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── dimen.xml │ │ │ ├── integer.xml │ │ │ ├── strings.xml │ │ │ ├── themes.xml │ │ │ └── values.xml │ │ ├── values-ar/ │ │ │ └── strings.xml │ │ ├── values-de/ │ │ │ └── strings.xml │ │ ├── values-es/ │ │ │ └── strings.xml │ │ ├── values-fr/ │ │ │ └── strings.xml │ │ ├── values-hdpi/ │ │ │ └── dimen.xml │ │ ├── values-id/ │ │ │ └── strings.xml │ │ ├── values-night/ │ │ │ ├── colors.xml │ │ │ └── themes.xml │ │ ├── values-night-v23/ │ │ │ └── themes.xml │ │ ├── values-night-v27/ │ │ │ └── themes.xml │ │ ├── values-ru/ │ │ │ └── strings.xml │ │ ├── values-tr/ │ │ │ └── strings.xml │ │ ├── values-v23/ │ │ │ └── themes.xml │ │ ├── values-v27/ │ │ │ └── themes.xml │ │ └── xml/ │ │ ├── xml_about_main.xml │ │ ├── xml_about_notices.xml │ │ ├── xml_launcher_shortcuts.xml │ │ ├── xml_provider_paths.xml │ │ ├── xml_settings_backups.xml │ │ ├── xml_settings_main.xml │ │ ├── xml_widget_events.xml │ │ ├── xml_widget_subjects.xml │ │ └── xml_widget_tasks.xml │ └── test/ │ └── java/ │ └── com/ │ └── isaiahvonrundstedt/ │ └── fokus/ │ ├── ExampleUnitTest.kt │ └── features/ │ ├── attachments/ │ │ └── AttachmentTests.kt │ ├── event/ │ │ └── EventUnitTest.kt │ ├── schedule/ │ │ └── ScheduleTests.kt │ └── task/ │ └── TaskUnitTest.kt ├── build.gradle ├── fastlane/ │ └── metadata/ │ └── android/ │ ├── de/ │ │ └── short_description.txt │ └── en-US/ │ ├── full_description.txt │ └── short_description.txt ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat └── settings.gradle