* Add Kotlin Kover
* Add AuthKtorConfiguration tests
* Ensure at least 25% code coverage
* Exclude Previews from code coverage
* Specify Kover report path for SonarQube
* Add Kover xml report task
* Extract sonar to a separate step
* Add some exclusions and minimum coverage
* Exclude Hilt-generated classes
* Add shopping list view model tests
* Reduce the coverage requirement
* Update README.md
* Bump version to 35
* Cleanup dependencies
* Bump versions of dependencies
* Save isFood/disableAmount flags to db
* Fix displaying ingredient note twice
* Remove whitespace after note is extracted
* Add Compose to app module
* Move Theme to ui module
* Add Coil image loader
* Use Compose for recipe screen
* Save instruction to ingredient relation to DB
* Display ingredients as server formats them
* Display linked ingredients under each step
* Fix ingredients padding
* Show recipe full screen
* Fix recipe screen UI issues
* Hide keyboard on recipe navigation
* Fix loading recipes from DB with no instructions or ingredients
* Add instructions section title
* Add ingredients section title
* Remove unused view holders
* Initialize shopping lists feature
* Start shopping lists screen with Compose
* Add icon to shopping list name
* Add shopping lists to menu
* Set max size for the list
* Replace compose-adapter with accompanist
* Remove unused fields from shopping lists response
* Show list of shopping lists from BE
* Hide shopping lists if Mealie is 0.5.6
* Add shopping list item click listener
* Create material app theme for Compose
* Use shorter names
* Load shopping lists by pages and save to db
* Make page handling logic match recipes
* Add swipe to refresh to shopping lists
* Extract SwipeToRefresh Composable
* Make LazyPagingColumn generic
* Show refresh only when mediator is refreshing
* Do not refresh automatically
* Allow controlling Activity state from modules
* Implement navigating to shopping list screen
* Move Compose libraries setup to a plugin
* Implement loading full shopping list info
* Move Storage classes to database module
* Save shopping list items to DB
* Use separate names for separate ids
* Do only one DB version update
* Use unique names for all columns
* Display shopping list items
* Move OperationUiState to ui module
* Subscribe to shopping lists updates
* Indicate progress with progress bar
* Use strings from resources
* Format shopping list item quantities
* Hide unit/food/note/quantity if they are not set
* Implement updating shopping list item checked state
* Remove unnecessary null checks
* Disable checkbox when it is being updated
* Split shopping list screen into composables
* Show items immediately if they are saved
* Fix showing "list is empty" before the items
* Show Snackbar when error happens
* Reduce shopping list items paddings
* Remove shopping lists when URL is changed
* Add error/empty state handling to shopping lists
* Fix empty error state
* Fix tests compilation
* Add margin between text and button
* Add divider between checked and unchecked items
* Move divider to the item
* Refresh the shopping lists on authentication
* Use retry when necessary
* Remove excessive logging
* Fix pages bounds check
* Move FlowExtensionsTest
* Update Compose version
* Fix showing loading indicator for shopping lists
* Add Russian translation
* Fix SDK version lint check
* Rename parameter to match interface
* Add DB migration TODO
* Get rid of DB migrations
* Do not use pagination with shopping lists
* Cleanup after the pagination removal
* Load shopping list items
* Remove shopping lists storage
* Rethrow CancellationException in LoadingHelper
* Add pull-to-refresh on shopping list screen
* Extract LazyColumnWithLoadingState
* Split refresh errors and loading state
* Reuse LazyColumnWithLoadingState for shopping list items
* Remove paging-compose dependency
* Refresh shopping list items on authentication
* Disable missing translation lint check
* Update Compose and Kotlin versions
* Fix order of checked items
* Hide useless information from a shopping list item