From 090d5fc003bba1de7b184848ca453ec0337f940e Mon Sep 17 00:00:00 2001 From: Acclorite Date: Thu, 15 Feb 2024 14:15:19 +0200 Subject: [PATCH] 0.5.0 - Browse + Library Screen + Settings --- .idea/deploymentTargetDropDown.xml | 35 +- .idea/gradle.xml | 2 +- .idea/misc.xml | 1 - app/.gitignore | 3 +- app/build.gradle.kts | 91 ++-- app/src/main/AndroidManifest.xml | 11 +- .../acclorite/books_history/MainActivity.kt | 113 ++++- .../books_history/data/local/room/BookDao.kt | 5 + .../books_history/data/mapper/BookMapper.kt | 5 +- .../data/mapper/BookMapperImpl.kt | 89 +++- .../data/parser/EpubFileParser.kt | 55 +++ .../data/parser/EpubTextParser.kt | 49 ++ .../books_history/data/parser/FileParser.kt | 9 + .../data/parser/PdfFileParser.kt | 52 +++ .../data/parser/PdfTextParser.kt | 77 ++++ .../books_history/data/parser/TextParser.kt | 8 + .../data/parser/TxtFileParser.kt | 39 ++ .../data/parser/TxtTextParser.kt | 30 ++ .../data/repository/BookRepositoryImpl.kt | 216 ++++++++- .../books_history/domain/model/Book.kt | 39 +- .../domain/model/FormattedLine.kt | 15 - .../domain/model/NavigationBarItem.kt | 11 + .../domain/model/NullableBook.kt | 6 + .../domain/model/StringWithId.kt | 13 + .../domain/repository/BookRepository.kt | 18 + .../domain/use_case/FastGetBooks.kt | 12 + .../books_history/domain/use_case/GetBooks.kt | 14 + .../domain/use_case/GetBooksFromFiles.kt | 17 + .../domain/use_case/GetFilesFromDownloads.kt | 16 + .../domain/use_case/UpdateBooks.kt | 12 + .../books_history/presentation/Navigation.kt | 24 +- .../components/AnimatedTopAppBar.kt | 113 +++++ .../components/BottomNavigationBar.kt | 63 +++ .../components/BottomNavigationItem.kt | 57 +++ .../components/CustomAlertDialog.kt | 115 +++++ .../presentation/components/CustomCheckbox.kt | 39 ++ .../components/CustomDialogWithContent.kt | 158 +++++++ .../components/CustomDialogWithLazyColumn.kt | 166 +++++++ .../presentation/components/IsEmpty.kt | 67 +++ .../presentation/components/IsError.kt | 67 +++ .../presentation/components/MoreDropDown.kt | 98 ++++ .../components/SelectableDialogItem.kt | 54 +++ .../presentation/main/MainEvent.kt | 11 + .../presentation/{ => main}/MainViewModel.kt | 112 +++-- .../screens/browse/BrowseScreen.kt | 337 ++++++++++++++ .../browse/components/BrowseAddingDialog.kt | 75 ++++ .../components/BrowseAddingDialogItem.kt | 83 ++++ .../browse/components/BrowseFIleItem.kt | 147 ++++++ .../BrowseStoragePermissionDialog.kt | 38 ++ .../screens/browse/data/BrowseEvent.kt | 33 ++ .../screens/browse/data/BrowseState.kt | 25 ++ .../screens/browse/data/BrowseViewModel.kt | 378 ++++++++++++++++ .../screens/library/LibraryScreen.kt | 421 ++++++++++++++++++ .../library/components/LibraryBookItem.kt | 183 ++++++++ .../library/components/LibraryMoveDialog.kt | 63 +++ .../library/components/LibraryTabRow.kt | 168 +++++++ .../screens/library/data/LibraryEvent.kt | 28 ++ .../screens/library/data/LibraryState.kt | 29 ++ .../screens/library/data/LibraryViewModel.kt | 261 +++++++++++ .../screens/settings/SettingsScreen.kt | 99 ++++ .../components/SettingsCategoryItem.kt | 66 +++ .../settings/components/SettingsOptionItem.kt | 50 +++ .../nested/appearance/AppearanceSettings.kt | 109 +++++ .../AppearanceSettingsDarkThemeDialog.kt | 58 +++ .../AppearanceSettingsThemeSwitcher.kt | 72 +++ .../AppearanceSettingsThemeSwitcherItem.kt | 149 +++++++ .../data/AppearanceSettingsEvent.kt | 5 + .../data/AppearanceSettingsState.kt | 8 + .../data/AppearanceSettingsViewModel.kt | 31 ++ .../nested/general/GeneralSettings.kt | 104 +++++ .../GeneralSettingsLanguageDialog.kt | 55 +++ .../general/data/GeneralSettingsEvent.kt | 5 + .../general/data/GeneralSettingsState.kt | 8 + .../general/data/GeneralSettingsViewModel.kt | 43 ++ .../books_history/ui/{theme => }/Color.kt | 6 +- .../acclorite/books_history/ui/Elevation.kt | 7 + .../books_history/ui/{theme => }/Theme.kt | 10 +- .../acclorite/books_history/ui/Transitions.kt | 60 +++ .../acclorite/books_history/ui/Typography.kt | 68 +++ .../acclorite/books_history/ui/theme/Type.kt | 34 -- .../util/ArithmeticOperations.kt | 11 + .../acclorite/books_history/util/Constants.kt | 7 + .../acclorite/books_history/util/Resource.kt | 8 +- .../acclorite/books_history/util/UIText.kt | 9 +- .../res/drawable/browse_screen_filled.png | Bin 0 -> 7623 bytes .../res/drawable/browse_screen_outlined.png | Bin 0 -> 18232 bytes app/src/main/res/drawable/empty_browse.png | Bin 0 -> 15400 bytes app/src/main/res/drawable/empty_history.png | Bin 0 -> 16973 bytes app/src/main/res/drawable/empty_library.png | Bin 0 -> 15682 bytes app/src/main/res/drawable/epub.png | Bin 0 -> 9986 bytes app/src/main/res/drawable/error.png | Bin 0 -> 4347 bytes app/src/main/res/drawable/file.png | Bin 0 -> 4998 bytes .../res/drawable/history_screen_filled.png | Bin 0 -> 18922 bytes .../res/drawable/history_screen_outlined.png | Bin 0 -> 15353 bytes .../res/drawable/library_screen_filled.png | Bin 0 -> 5369 bytes .../res/drawable/library_screen_outlined.png | Bin 0 -> 4874 bytes app/src/main/res/drawable/pdf.png | Bin 0 -> 8757 bytes app/src/main/res/drawable/txt.png | Bin 0 -> 7025 bytes app/src/main/res/font/bold.ttf | Bin 132152 -> 0 bytes app/src/main/res/font/bold_italic.ttf | Bin 135396 -> 0 bytes app/src/main/res/font/light.ttf | Bin 132220 -> 0 bytes app/src/main/res/font/light_italic.ttf | Bin 135664 -> 0 bytes app/src/main/res/font/medium.ttf | Bin 132304 -> 0 bytes app/src/main/res/font/medium_italic.ttf | Bin 135588 -> 0 bytes app/src/main/res/font/regular.ttf | Bin 132204 -> 0 bytes app/src/main/res/font/regular_italic.ttf | Bin 135532 -> 0 bytes app/src/main/res/font/semi_bold.ttf | Bin 132156 -> 0 bytes app/src/main/res/font/semi_bold_italic.ttf | Bin 135408 -> 0 bytes app/src/main/res/font/thin.ttf | Bin 131992 -> 0 bytes app/src/main/res/font/thin_italic.ttf | Bin 135344 -> 0 bytes app/src/main/res/values-uk/strings.xml | 94 ++++ app/src/main/res/values/strings.xml | 100 ++++- app/src/main/res/xml/backup_rules.xml | 13 - .../main/res/xml/data_extraction_rules.xml | 19 - app/strings.xml | 67 +++ build.gradle.kts | 1 - settings.gradle.kts | 6 + 117 files changed, 5648 insertions(+), 210 deletions(-) create mode 100644 app/src/main/java/com/acclorite/books_history/data/parser/EpubFileParser.kt create mode 100644 app/src/main/java/com/acclorite/books_history/data/parser/EpubTextParser.kt create mode 100644 app/src/main/java/com/acclorite/books_history/data/parser/FileParser.kt create mode 100644 app/src/main/java/com/acclorite/books_history/data/parser/PdfFileParser.kt create mode 100644 app/src/main/java/com/acclorite/books_history/data/parser/PdfTextParser.kt create mode 100644 app/src/main/java/com/acclorite/books_history/data/parser/TextParser.kt create mode 100644 app/src/main/java/com/acclorite/books_history/data/parser/TxtFileParser.kt create mode 100644 app/src/main/java/com/acclorite/books_history/data/parser/TxtTextParser.kt delete mode 100644 app/src/main/java/com/acclorite/books_history/domain/model/FormattedLine.kt create mode 100644 app/src/main/java/com/acclorite/books_history/domain/model/NavigationBarItem.kt create mode 100644 app/src/main/java/com/acclorite/books_history/domain/model/NullableBook.kt create mode 100644 app/src/main/java/com/acclorite/books_history/domain/model/StringWithId.kt create mode 100644 app/src/main/java/com/acclorite/books_history/domain/use_case/FastGetBooks.kt create mode 100644 app/src/main/java/com/acclorite/books_history/domain/use_case/GetBooks.kt create mode 100644 app/src/main/java/com/acclorite/books_history/domain/use_case/GetBooksFromFiles.kt create mode 100644 app/src/main/java/com/acclorite/books_history/domain/use_case/GetFilesFromDownloads.kt create mode 100644 app/src/main/java/com/acclorite/books_history/domain/use_case/UpdateBooks.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/components/AnimatedTopAppBar.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/components/BottomNavigationBar.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/components/BottomNavigationItem.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/components/CustomAlertDialog.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/components/CustomCheckbox.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/components/CustomDialogWithContent.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/components/CustomDialogWithLazyColumn.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/components/IsEmpty.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/components/IsError.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/components/MoreDropDown.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/components/SelectableDialogItem.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/main/MainEvent.kt rename app/src/main/java/com/acclorite/books_history/presentation/{ => main}/MainViewModel.kt (79%) create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/browse/BrowseScreen.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/browse/components/BrowseAddingDialog.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/browse/components/BrowseAddingDialogItem.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/browse/components/BrowseFIleItem.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/browse/components/BrowseStoragePermissionDialog.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/browse/data/BrowseEvent.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/browse/data/BrowseState.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/browse/data/BrowseViewModel.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/library/LibraryScreen.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/library/components/LibraryBookItem.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/library/components/LibraryMoveDialog.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/library/components/LibraryTabRow.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/library/data/LibraryEvent.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/library/data/LibraryState.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/library/data/LibraryViewModel.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/SettingsScreen.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/components/SettingsCategoryItem.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/components/SettingsOptionItem.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/nested/appearance/AppearanceSettings.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/nested/appearance/components/AppearanceSettingsDarkThemeDialog.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/nested/appearance/components/AppearanceSettingsThemeSwitcher.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/nested/appearance/components/AppearanceSettingsThemeSwitcherItem.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/nested/appearance/data/AppearanceSettingsEvent.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/nested/appearance/data/AppearanceSettingsState.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/nested/appearance/data/AppearanceSettingsViewModel.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/nested/general/GeneralSettings.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/nested/general/components/GeneralSettingsLanguageDialog.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/nested/general/data/GeneralSettingsEvent.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/nested/general/data/GeneralSettingsState.kt create mode 100644 app/src/main/java/com/acclorite/books_history/presentation/screens/settings/nested/general/data/GeneralSettingsViewModel.kt rename app/src/main/java/com/acclorite/books_history/ui/{theme => }/Color.kt (85%) create mode 100644 app/src/main/java/com/acclorite/books_history/ui/Elevation.kt rename app/src/main/java/com/acclorite/books_history/ui/{theme => }/Theme.kt (84%) create mode 100644 app/src/main/java/com/acclorite/books_history/ui/Transitions.kt create mode 100644 app/src/main/java/com/acclorite/books_history/ui/Typography.kt delete mode 100644 app/src/main/java/com/acclorite/books_history/ui/theme/Type.kt create mode 100644 app/src/main/java/com/acclorite/books_history/util/ArithmeticOperations.kt create mode 100644 app/src/main/res/drawable/browse_screen_filled.png create mode 100644 app/src/main/res/drawable/browse_screen_outlined.png create mode 100644 app/src/main/res/drawable/empty_browse.png create mode 100644 app/src/main/res/drawable/empty_history.png create mode 100644 app/src/main/res/drawable/empty_library.png create mode 100644 app/src/main/res/drawable/epub.png create mode 100644 app/src/main/res/drawable/error.png create mode 100644 app/src/main/res/drawable/file.png create mode 100644 app/src/main/res/drawable/history_screen_filled.png create mode 100644 app/src/main/res/drawable/history_screen_outlined.png create mode 100644 app/src/main/res/drawable/library_screen_filled.png create mode 100644 app/src/main/res/drawable/library_screen_outlined.png create mode 100644 app/src/main/res/drawable/pdf.png create mode 100644 app/src/main/res/drawable/txt.png delete mode 100644 app/src/main/res/font/bold.ttf delete mode 100644 app/src/main/res/font/bold_italic.ttf delete mode 100644 app/src/main/res/font/light.ttf delete mode 100644 app/src/main/res/font/light_italic.ttf delete mode 100644 app/src/main/res/font/medium.ttf delete mode 100644 app/src/main/res/font/medium_italic.ttf delete mode 100644 app/src/main/res/font/regular.ttf delete mode 100644 app/src/main/res/font/regular_italic.ttf delete mode 100644 app/src/main/res/font/semi_bold.ttf delete mode 100644 app/src/main/res/font/semi_bold_italic.ttf delete mode 100644 app/src/main/res/font/thin.ttf delete mode 100644 app/src/main/res/font/thin_italic.ttf delete mode 100644 app/src/main/res/xml/backup_rules.xml delete mode 100644 app/src/main/res/xml/data_extraction_rules.xml create mode 100644 app/strings.xml diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 0c0c3383..9bd07c82 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -3,7 +3,40 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 0897082f..cb865f69 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -5,7 +5,7 @@