Skip to content

Conversation

@phoneuooyd
Copy link
Owner

This pull request introduces recipe label support to the Foodbook application, enabling recipes to be tagged and organized with custom labels. It adds the necessary model, database schema, and converters for label selection and display, along with some minor UI and theme improvements.

Database and Model Changes

  • Added a new RecipeLabel entity and a many-to-many relationship between Recipe and RecipeLabel in the data model and migration files, including indexes for efficient querying. ([[1]](https://github.com/phoneuooyd/FoodbookApp/pull/83/files#diff-b17fcf18648df72effbb0ddb1005717317470ada54726e28ffa477a8c8b9c0c9R14), [[2]](https://github.com/phoneuooyd/FoodbookApp/pull/83/files#diff-b17fcf18648df72effbb0ddb1005717317470ada54726e28ffa477a8c8b9c0c9R88-R101), [[3]](https://github.com/phoneuooyd/FoodbookApp/pull/83/files#diff-af5e2b3faeb19c88fefcf8e73f2a59d7124cf0e50991c51002b790a289a2fcfdR1-R74), [[4]](https://github.com/phoneuooyd/FoodbookApp/pull/83/files#diff-88cd62df4f5b0fdb18f01f0eeba22f3de78edbd475a9c18aee444de78552daf8R1-R337))
  • Registered RecipeLabels as a DbSet in AppDbContext for ORM access. ([FoodbookApp.App/Data/AppDbContext.csR14](https://github.com/phoneuooyd/FoodbookApp/pull/83/files#diff-b17fcf18648df72effbb0ddb1005717317470ada54726e28ffa477a8c8b9c0c9R14))

UI and Converter Enhancements

  • Implemented CollectionContainsConverter and LabelSelectionToBorderConverter to support label selection state and dynamic border color in the UI. ([FoodbookApp.App/Converters/CollectionContainsConverter.csR1-R95](https://github.com/phoneuooyd/FoodbookApp/pull/83/files#diff-6adbe16915709bd4caa4682cf2c42c4b8a60a15582efd22a4b462208059be4d5R1-R95))
  • Added new color keys for label borders and backgrounds to improve label appearance in dark and light themes. ([FoodbookApp.App/Converters/BoolToColorConverter.csR50-R53](https://github.com/phoneuooyd/FoodbookApp/pull/83/files#diff-863444eae4a09a533a8e77619b6151607caad0c8d462a5d7ba06fce2861c0efaR50-R53))

Theme and Settings Improvements

  • Added a resource key for PageBackgroundImage to allow for customizable page backgrounds. ([FoodbookApp.App/App.xamlR30-R31](https://github.com/phoneuooyd/FoodbookApp/pull/83/files#diff-c6ddfb14c45e440af83fa0befbbe58daaf19d9a7653e01c289469514f869b6ffR30-R31))
  • Integrated wallpaper background preference loading and application at startup, including debug logging. ([[1]](https://github.com/phoneuooyd/FoodbookApp/pull/83/files#diff-a1630ed14d5484e6cc2d4c7878987b09f8204fd1569ac461c0cf18403ab27baaR48-R52), [[2]](https://github.com/phoneuooyd/FoodbookApp/pull/83/files#diff-a1630ed14d5484e6cc2d4c7878987b09f8204fd1569ac461c0cf18403ab27baaR169-R184))

These changes lay the foundation for recipe labeling, improve UI feedback for selection, and enhance theme customization.

Added local styles and wrapped StartDatePicker and EndDatePicker in card-like Frames to visually match the meal grid color on PlannerPage. This improves UI consistency and enhances the appearance of date selection controls.
themes and plannerpage actuals
Reorders the AppColorTheme enum and SupportedColorThemes collections to match the user-requested picker order. Updates the Mint theme color values in ThemeService for improved appearance and consistency.
Added new color themes (Forest, Sunset, Bubblegum, Sky) to the ThemeService and updated their color definitions. Updated localization resource files for all supported languages to include translations for the new theme names. Also adjusted the Navy and Autumn theme color values for consistency.
-
-
Introduced two new wallpaper images, autumn_dark.jpg and autumn_light.jpg, to the Resources/Wallpapers directory for seasonal theming.
Introduces support for wallpaper backgrounds in the app, including a new user setting, resource key, and UI checkbox. Updates theme and preferences services, localization, and view model to handle wallpaper state, mutual exclusion with colorful backgrounds, and theme compatibility. Adds a sample wallpaper image and integrates dynamic background image selection in styles and theme application logic.
Introduces IncreaseMealPortionsCommand and DecreaseMealPortionsCommand to HomeViewModel for adjusting planned meal portions directly from popups. Refactors meal details popup to use a new MealPreviewBlock with interactive +/- controls and dynamic ingredient scaling. Updates PlannerPage button styles for consistency and improved usability.
-
-
Added new wallpaper images to Resources/Wallpapers. Refactored FolderAwarePickerPopup and SearchablePickerPopup to simplify headers, remove footers, and use ModernSearchBarComponent for search functionality. Updated SearchablePickerPopup logic to support two-way search text binding and clear command.
labele
Base crud popup version for labels
-
-
-
-
new looks
Introduces a reusable FilterSortPopup component for sorting and filtering in IngredientsPage and RecipesPage. Adds sorting by name and label filtering to view models, updates UI to include filter/sort buttons, and wires up popup logic to update view model state based on user selection.
Replaced boolean sort flags with a SortOrder enum in IngredientsViewModel and RecipeViewModel, enabling both ascending and descending sorting. Updated FilterSortPopup to use a picker for sort order selection. Adjusted related views and popup logic to support the new sorting approach and improved UI consistency for filter/sort actions.
-
-
Introduces a new circular RestoreButton style and applies it to restore actions in UniversalListItemComponent and DataArchivizationPage. Removes TimePicker style, updates grid layouts to accommodate the new button, and improves localization fallback logic for confirmation dialogs.
Introduces a tabbed interface to the Settings page, separating language, appearance, and data settings into distinct tabs. Updates localization files to include tab labels in all supported languages. Refactors SettingsViewModel and SettingsPage to support tab selection, visual state, and tab-specific content. Also improves German translations and adds dynamic tab highlighting based on the current theme.
Introduces a factory reset option in the settings, allowing users to clear all preferences and database data, restoring the app to its initial state. Updates SettingsViewModel, PreferencesService, and IPreferencesService to support the reset logic. Adds new localization strings for factory reset in all supported languages and updates the settings page UI to use the new feature. Also adds adaptive border colors for modern UI consistency.
Introduces manual archive search via file picker, improves export logic to handle Android storage restrictions, and enhances import to restore WAL/SHM files. Adds x:DataType to XAML views for better type safety and updates ThemeService to publish light/dark color resources. AndroidManifest now requests legacy external storage and permissions for API <= 28.
Enhanced archive file listing to deduplicate entries by file name, modification date, and size. Improved localization for DataArchivizationPage across multiple languages. Updated AddRecipePage label UI for better appearance and truncation. Added manual search button handling and ensured correct styling and captions. Fixed minor logic and code organization issues in DataArchivizationPage.
@phoneuooyd phoneuooyd merged commit 3ea5593 into main Oct 17, 2025
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant