Conversation
π :: Release/1.6.2-17
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
κΈ°μ‘΄ String νμ μ MealMenuItem(name, allergyIds)μΌλ‘ λ³κ²½νκ³ κ΄νΈ μμ μλ¬μ§ λ²νΈλ₯Ό νμ±νλ λ‘μ§ μΆκ° Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
DataStore κΈ°λ° μλ¬μ§ μ ν μ μ₯/μ‘°ν μΈνλΌ μΆκ° (DataSource, Repository, UseCase, DI λ°μΈλ©) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
AllergiesViewModel μ μ₯/λ‘λ μ°λ λ° MainScreenμμ μλ¬μ§ μμ νμ΄λΌμ΄νΈ νμ Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- AllergiesViewModel: updatedIdsλ₯Ό reduce μΈλΆμμ κ³μ°νμ¬ λ μ΄μ€ 컨λμ μ κ±° - AllergiesViewModel: μ μ₯ μ€ν¨ μ μ΄μ μνλ‘ μ볡 λ° Toast νμ - LocalAllergyDataSourceImpl: toInt() β toIntOrNull() + mapNotNullλ‘ ν¬λμ λ°©μ§ - MainViewModel: collectAllergyIdsμ Flow.catch μΆκ°λ‘ μ½λ£¨ν΄ μ·¨μ λ°©μ§ Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
μλ¬μ§ IDλ μ€λ³΅ λΆκ° + λ©€λ²μ 체ν¬κ° μ£Ό μ©λμ΄λ―λ‘ Setμ΄ μλ―Έμ μΌλ‘ μ ν©νλ©° contains μ°μ°μ΄ O(1)λ‘ κ°μ λ¨ Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- SettingRoute: μλ¬μ§ μ€μ navigateμ launchSingleTop μ μ© - MealsSection: deprecated Dividerλ₯Ό HorizontalDividerλ‘ κ΅μ²΄ Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
β¨ :: (#125) - μλ λ₯΄κΈ° μ€μ κΈ°λ₯ μΆκ°
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the βοΈ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
β¨ Finishing Touchesπ§ͺ Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! μ΄ PRμ μ ν리μΌμ΄μ μ μλ‘μ΄ μλ λ₯΄κΈ° κ΄λ¦¬ κΈ°λ₯μ λμ ν©λλ€. μ΄μ μ¬μ©μλ νΉμ μλ λ₯΄κΈ°λ₯Ό μ νν μ μμΌλ©°, μ ν리μΌμ΄μ μ ν΄λΉ μλ λ₯΄κΈ° μ λ° λ¬Όμ§μ ν¬ν¨νλ κΈμ νλͺ©μ κ°μ‘° νμν©λλ€. μ΄ κ°μ μ¬νμ κΈμ μ 보 νμ λ΄μμ κ°μΈνλ μλ¨ μ 보λ₯Ό μ 곡νμ¬ μ¬μ©μ κ²½νμ ν₯μμν€λ©°, μ ν리μΌμ΄μ λ²μ μ΄ 1.7.0μΌλ‘ μ λ°μ΄νΈλμμ΅λλ€. Highlights
π§ New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with π and π on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a new allergy settings feature, allowing users to select their allergies. This involved significant refactoring of meal data handling to include allergy information, transitioning from simple lists of strings to a MealMenuItem data class that encapsulates both the meal name and associated allergy IDs. A new AllergiesCard component was created, and existing meal display components were updated to highlight meals containing selected allergens. Data persistence for selected allergies is handled via DataStore. The PR also updates the app version and adds a .omc entry to .gitignore. A potential issue was identified where the catch operator in the getSelectedAllergyIdsUseCase flow could terminate the flow collection on error, leading to stale allergy data on the main screen until the ViewModel is recreated.
| .catch { | ||
| reduce { state.copy(selectedAllergyIds = emptySet()) } | ||
| } |
There was a problem hiding this comment.
The catch operator here will cause the flow collection to terminate upon any exception from the upstream getSelectedAllergyIdsUseCase() flow (e.g., an IOException from DataStore). While it correctly sets a default emptySet(), the flow will no longer be collected after an error. This means if the user navigates to settings, changes their allergies, and returns to the main screen, the changes will not be reflected because the flow is no longer being observed. The allergy information will remain stale until the ViewModel is recreated (e.g., on app restart), which can lead to a confusing user experience.
π‘ κ°μ
π μμ λ΄μ©
π λ³κ²½μ¬ν
πΈ κΈ°ν