Commit Graph

558 Commits

Author SHA1 Message Date
571db144c4 Fixed a bug with favourites 2025-08-01 13:57:52 -06:00
c4e6d6b69f Build 0.5.0 2025-07-31 18:44:36 -06:00
1b4323c2bb Convert to my app, so I can continue a fork! 2025-07-31 18:33:10 -06:00
Kirill Kamakin
5819d0c03d Fix incompatibility with Mealie v1.11.0 (#302)
* Allow dateUpdated field to contain time zone

* Remove unused dateUpdated field

* Update version code
2024-08-04 14:52:40 +00:00
Kirill Kamakin
e71055930c Update Kover to 0.8.3 (#296) 2024-07-28 07:31:06 +00:00
Kirill Kamakin
f9277208b9 New Crowdin updates (#282)
* New translations strings.xml (German)

* New translations strings.xml (French)

* New translations strings.xml (Spanish)

* New translations strings.xml (Dutch)

* New translations strings.xml (Portuguese)

* New translations strings.xml (Russian)

* New translations strings.xml (French)

* New translations strings.xml (Spanish)

* New translations strings.xml (German)

* New translations strings.xml (Dutch)

* New translations strings.xml (Portuguese)

* New translations strings.xml (German)

* New translations strings.xml (Russian)

* New translations strings.xml (French)

* New translations strings.xml (Spanish)

* New translations strings.xml (Dutch)

* New translations strings.xml (Portuguese)

* New translations strings.xml (German)
2024-07-28 07:07:54 +00:00
Kirill Kamakin
86e70e03d0 Implement the dialog to add a new shopping list (#280)
* Add endpoint to create new shopping lists

* Initialize editing of lists names

* Implement adding new lists

* Fix invalid password for demo

* Use StateFlow to avoid lost state updates

* Refactor the list update to support empty lists

* Hide add new list button if there's a new list

* Scroll to the newly added list or item

* Replace deprecated Divider

* Move new field name input to dialog

* Display a modal dialog instead of bottom sheet

* Reduce unnecessary recompositions

* Do not hide button since it is overlapped by dialog

* Extract Composable for editable items

* Remove unused imports

* Add UI for removing and editing shopping lists

* Implement editing list name and removing lists

* Fix initial cursor state when editing name

* Add capitalization of list names

* Fix color of divider in dark mode
2024-07-27 18:12:00 +00:00
Kirill Kamakin
bfdf89ae1c Migrate Hilt plugin to KSP (#274) 2024-06-30 15:01:44 +00:00
Kirill Kamakin
67fc2dc393 Fix flaky UI test (#253)
* Update Kotlin and KSP

* Downgrade Kaspresso to last released

* Update Compose compiler extension

* Fix flaky UI test

* Update AGP version

* Fix flakySafely scope

* Fix missing system image for UI tests

* Use Intel MacOS to run UI tests

* Revert "Fix missing system image for UI tests"

This reverts commit 9003c37315f253835f3788ab2fecd402fa5522be.

* Update test device API level to 34

* Use google-atd system image source

* Update managed devices declaration syntax

* Use device and syntax from now in android app

* Try ubuntu agent for UI tests

* Use an actual emulator instead of GMD

* Use only one API level 30

* Remove Android SDK setup action

* Setup Gradle before AVD

* Use x86_64 architecture

* Replace deprecated gradle setup action

* Downgrade all dependencies again

* Run only app android tests

* Remove managed devices
2024-06-22 10:35:04 +02:00
Kirill Kamakin
59bcf0d330 Delete AppSweep plugin (#241) 2024-04-01 14:00:27 +00:00
Kirill Kamakin
7461decd73 Update dependencies versions (#203) 2024-02-17 10:22:34 +00:00
Kirill Kamakin
c03c65a96b Add Kotlinx Kover test coverage calculator (#199)
* 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
2024-02-17 10:43:36 +01:00
Kirill Kamakin
7c02a8341d Fix displaying recipe ingredient note twice (#197)
* 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
2024-01-14 10:44:21 +00:00
Kirill Kamakin
c8f1f477cc Fix transition when base URL is actually incorrect (#196) 2024-01-13 11:18:12 +00:00
Kirill Kamakin
4c6e480737 Increase instructions and ingredients font size (#195) 2024-01-13 10:46:49 +00:00
Kirill Kamakin
de4df95a0e Complete migration to Compose (#194)
* Migrate disclaimer screen to Compose

* Migrate base URL screen to Compose

* Migrate base URL screen to Compose

* Migrate authentication screen to Compose

* Initialize add recipe screen

* Remove unused resources

* Display add recipe operation result

* Add delete icon to ingredients and instructions

* Allow navigating between fields on add recipe

* Allow navigating between fields on authentication screen

* Allow to proceed from keyboard on base url screen

* Use material icons for recipe item

* Expose base URL as flow

* Initialize Compose navigation

* Allow sending logs again

* Allow to override navigation and top bar per screen

* Add additional logs

* Migrate share recipe screen to Compose

* Fix unit tests

* Restore recipe list tests

* Ensure authentication is shown after URL input

* Add autofill to authentication

* Complete first set up test

* Use image vector from Icons instead of drawable

* Add transition animations

* Fix logging host in Host header

* Do not fail test if login token is used
2024-01-13 10:28:10 +00:00
Kirill Kamakin
94f12820bc Ensure authentication token is always sent when it exists (#193)
* Ensure auth token is sent if it is present

* Allow using login token for other requests while API token is created

* Update version code
2023-12-28 10:05:20 +00:00
Kirill Kamakin
ffdac4c616 Handle new session in log file appender (#191)
* Remove getValue log with base URL when app starts

* Print time when session starts

* Flush log file when an Activity is paused
2023-12-27 09:41:34 +00:00
Kirill Kamakin
36a72b63de Implement sending logs to developer (#190)
* Save logs to a file

* Send logs via email

* Enable network logs in release builds

* Remove useless chooser title

* Append to logs file and ignore I/O errors

* Ensure email and password are not logged

* Ensure base URL is never logged

* Add logs disclaimer
2023-12-10 11:49:03 +00:00
Kirill Kamakin
f6f44c7592 Use Compose to draw the list of recipes (#187)
* Add paging-compose dependency

* Move progress indicator to separate module

* Introduce color scheme preview

* Move loading helper to UI module

* Move helper composables to UI module

* Rearrange shopping lists module

* Add LazyPagingColumnPullRefresh Composable

* Add BaseComposeFragment

* Add pagingDataRecipeState

* Add showFavoriteIcon to recipe state

* Disable unused placeholders

* Make "Try again" button optional

* Fix example email

* Wrap recipe info into a Scaffold

* Add dialog to confirm deletion

* Add RecipeItem Composable

* Add RecipeListError Composable

* Add RecipeList Composable

* Replace recipes list Views with Compose

* Update UI test

* Remove application from ViewModel
2023-11-23 06:23:30 +00:00
Kirill Kamakin
4301c623c9 Prepare v0.4.4 (#186) 2023-11-15 18:34:52 +00:00
Kirill Kamakin
2b15e230ad Revert "Add ACRA for crash reports (#180)" (#185)
This reverts commit 3d0cf8b902.
2023-11-15 18:07:44 +00:00
Kirill Kamakin
5408329604 Display ingredient notes (#182)
* Display ingredient note

* Add changelog

* Update README.md
2023-11-13 19:09:34 +00:00
Kirill Kamakin
3d0cf8b902 Add ACRA for crash reports (#180) 2023-11-11 20:53:04 +00:00
Kirill Kamakin
7867e2426d Keep screen on and update docs (#179)
* Extract recipe screen components

* Keep screen on while recipe is shown

* Update screenshots

* Add release note
2023-11-11 12:35:15 +00:00
Kirill Kamakin
941d45328e Add linked ingredients to recipe step (#177)
* 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
2023-11-07 20:47:01 +01:00
Kirill Kamakin
5ed1acb678 Simplify network layer (#175)
* Use Ktor for network requests

* Remove V0 version

* Remove Retrofit dependency

* Fix url

* Update versions of dependencies

* Revert kotlinx-datetime

Due to https://github.com/Kotlin/kotlinx-datetime/issues/304

* Rename leftovers

* Remove OkHttp

* Remove unused manifest

* Remove unused Hilt module

* Fix building empty image URLs

* Use OkHttp as engine for Ktor

* Reduce visibility of internal classes

* Fix first set up test

* Store only auth token, not header

* Remove UnitInfo/FoodInfo/VersionInfo/NewShoppingListItemInfo

* Remove RecipeSummaryInfo and ShoppingListsInfo

* Remove FullShoppingListInfo

* Remove ParseRecipeURLInfo

* Remove FullRecipeInfo

* Sign out if access token does not work

* Rename getVersionInfo method

* Update version name
2023-11-05 15:01:19 +01:00
Kirill Kamakin
eb7c8bf02a Keep screen on while viewing a recipe (#169)
* Keep screen on while user is on recipe details screen

* Update version code
2023-08-26 15:00:27 +02:00
Kirill Kamakin
accf4d93e8 New Crowdin updates (#161)
* New translations strings.xml (French)

* New translations strings.xml (Spanish)

* New translations strings.xml (German)

* New translations strings.xml (Dutch)

* New translations strings.xml (Portuguese)

* New translations strings.xml (Russian)
2023-07-05 09:45:43 +02:00
Kirill Kamakin
79dee6a9ad Allow users to trust self-signed certificates (#160)
* Implement CERT-Store

* Trust user-added certificates

* Improve code readability

* Implement saving self-signed certs to storage

* Create interface for TrustedCertificatesStore

* Remove unused code

* Make datasource implementation internal

* Bump app version to 29 (0.4.0)

---------

Co-authored-by: fz72 <fz72@gmx.de>
2023-07-04 22:53:05 +02:00
Kirill Kamakin
2375be0329 Reduce memory footprint of Hilt (#159)
* Remove @Singleton where it is not needed

* Use @AssistedFactory where possible
2023-07-04 18:22:16 +02:00
Kirill Kamakin
2bc2bb76e4 Add supported languages to app language list (#158) 2023-07-03 15:50:00 +02:00
Kirill Kamakin
9e56efa8da New Crowdin updates (#157)
* New translations strings.xml (French)

* New translations strings.xml (Spanish)

* New translations strings.xml (German)

* New translations strings.xml (Dutch)

* New translations strings.xml (Portuguese)

* New translations plurals.xml (French)

* New translations plurals.xml (German)

* New translations plurals.xml (Dutch)

* New translations plurals.xml (Portuguese)

* New translations strings.xml (French)

* New translations strings.xml (Spanish)

* New translations strings.xml (German)

* New translations strings.xml (Dutch)

* New translations strings.xml (Portuguese)
2023-07-03 15:35:06 +02:00
Kirill Kamakin
1e5e727e92 Implement shopping lists screen (#129)
* 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
2023-07-03 15:07:19 +02:00
Kirill Kamakin
a40f9a78ea Bump app version (#154) 2023-07-02 09:23:20 +02:00
Kirill Kamakin
3f93578ff0 Enable per-app language support (#153) 2023-07-02 09:20:05 +02:00
Kirill Kamakin
53c4950a00 New Crowdin updates (#150)
* New translations strings.xml (Spanish)

* New translations short_description.txt (Spanish)

* New translations full_description.txt (Spanish)

* New translations 23.txt (Spanish)

* New translations 24.txt (Spanish)

* New translations 25.txt (Spanish)

* New translations 26.txt (Spanish)

* New translations 27.txt (Spanish)

* New translations plurals.xml (Spanish)

* New translations title.txt (Spanish)
2023-07-02 08:49:13 +02:00
Kirill Kamakin
266afddbe2 New Crowdin updates (#148)
* New translations strings.xml (Russian)

* New translations plurals.xml (Russian)
2023-06-29 20:42:32 +02:00
Kirill Kamakin
980bcb1f43 Update email input field hint 2023-04-07 15:05:18 +02:00
Kirill Kamakin
559ddb6056 Add search icon 2023-04-07 14:29:52 +02:00
Kirill Kamakin
9b03cfcbb4 Show Toast when recipe favorite status is updated 2023-04-07 14:14:25 +02:00
Kirill Kamakin
b78d30790f Increase space between recipes 2023-04-07 14:13:45 +02:00
Kirill Kamakin
132e12cab7 Increase search bar size 2023-04-07 14:13:45 +02:00
Kirill Kamakin
05f1c974a6 Update unit tests accordingly 2023-04-07 13:58:09 +02:00
Kirill Kamakin
12d39282de Bump version to 0.3.12 (27) 2023-04-07 13:38:40 +02:00
Kirill Kamakin
fba266fcb0 Fallback to V1 if server version is unknown 2023-04-07 13:30:35 +02:00
Kirill Kamakin
f322112405 Fallback to HTTP if 443 is closed too 2022-12-22 18:48:46 +01:00
Kirill Kamakin
05058091e9 Add BaseURLViewModel tests 2022-12-22 18:39:31 +01:00
Kirill Kamakin
0bf4747d18 Inline scheme names 2022-12-21 22:44:47 +01:00
Kirill Kamakin
04474c3055 Remove redundant trim from base URL VM 2022-12-21 22:36:02 +01:00