Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the Android UI and introduces a “favorites” feature for cards, along with various UX feedback changes (moving from Snackbars to Toasts) and some icon/resource updates.
Changes:
- Add
is_favoritesupport end-to-end (DB schema + migration, ViewModel toggle, UI filtering/sorting, new “Favorites” label chip). - Update UI visuals (new card layout styling, new vector icons, delete icon swap) and add multiple new user-facing strings (EN/DE).
- Replace app-wide
SnackbarServiceusage withToastnotifications and adjust barcode scan error handling.
Reviewed changes
Copilot reviewed 28 out of 28 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| renovate.json | Increases Renovate minimum release age to reduce churn from very recent releases. |
| app/src/main/res/values/strings.xml | Adds strings for favorites, deletion feedback, shortcut feedback, and updates scan error messaging. |
| app/src/main/res/values-de/strings.xml | German translations for new strings and updated scan error messaging. |
| app/src/main/res/drawable/qr_code_solid.xml | Adds solid QR icon used in card UI. |
| app/src/main/res/drawable/heart_plus_solid.xml | Adds “add favorite” icon for option sheet action. |
| app/src/main/res/drawable/heart_minus_solid.xml | Adds “remove favorite” icon for option sheet action. |
| app/src/main/res/drawable/favorite.xml | Adds outline favorite icon for chips/UI. |
| app/src/main/res/drawable/favorite_solid.xml | Adds solid favorite icon for chips/UI. |
| app/src/main/res/drawable/delete_solid.xml | Adds replacement solid delete icon. |
| app/src/main/res/drawable/delete_forever_solid.xml | Removes old delete icon asset referenced previously. |
| app/src/main/res/drawable/barcode_solid.xml | Adds solid barcode icon used in card UI. |
| app/src/main/java/de/pawcode/cardstore/ui/viewmodels/CardViewModel.kt | Adds toggleFavorite() and supports updating isFavorite via repository. |
| app/src/main/java/de/pawcode/cardstore/ui/utils/BarcodeScanner.kt | Reworks scan error flow to copy details to clipboard + Toast feedback (replacing snackbar copy action). |
| app/src/main/java/de/pawcode/cardstore/ui/sheets/OptionsSheet.kt | Updates preview to use the new delete icon resource. |
| app/src/main/java/de/pawcode/cardstore/ui/screens/LabelListScreen.kt | Adds delete confirmation Toast and updates delete icon usage. |
| app/src/main/java/de/pawcode/cardstore/ui/screens/EditLabelScreen.kt | Replaces snackbar feedback after save with Toast. |
| app/src/main/java/de/pawcode/cardstore/ui/screens/EditCardScreen.kt | Replaces snackbar feedback after save with Toast. |
| app/src/main/java/de/pawcode/cardstore/ui/screens/CardListScreen.kt | Adds favorites actions/filtering, sorting favorites to top, and multiple Toast feedback paths. |
| app/src/main/java/de/pawcode/cardstore/ui/screens/AboutScreen.kt | Adds Toast feedback for enabling biometrics. |
| app/src/main/java/de/pawcode/cardstore/ui/components/LabelsListComponent.kt | Adds a Favorites filter chip and sentinel favorites label ID. |
| app/src/main/java/de/pawcode/cardstore/ui/components/EditCardForm.kt | Updates leading icon behavior for label chips (check vs add). |
| app/src/main/java/de/pawcode/cardstore/ui/components/CardComponent.kt | Updates card UI layout; adds favorites indicator and barcode type/icon display. |
| app/src/main/java/de/pawcode/cardstore/ui/components/AddCardComponent.kt | Rounds card shape to match updated visual style. |
| app/src/main/java/de/pawcode/cardstore/ui/CardStore.kt | Removes Scaffold SnackbarHost integration now that SnackbarService is removed. |
| app/src/main/java/de/pawcode/cardstore/data/services/SnackbarService.kt | Deletes SnackbarService in favor of Toast-based feedback. |
| app/src/main/java/de/pawcode/cardstore/data/database/migrations/2026_07_26_ADD_FAVORITE_COLUMN.kt | Adds a Room migration for the new is_favorite column. |
| app/src/main/java/de/pawcode/cardstore/data/database/entities/CardEntity.kt | Adds isFavorite column mapping to the Card entity. |
| app/src/main/java/de/pawcode/cardstore/data/database/CardDatabase.kt | Bumps DB version and registers the migration. |
Comments suppressed due to low confidence (1)
app/src/main/java/de/pawcode/cardstore/ui/screens/CardListScreen.kt:137
- toggleFavorite() launches work asynchronously, but the UI immediately shows a toast. If the update fails, the user still sees a success message. Consider running the toggle in a coroutine and awaiting completion before showing feedback.
onToggleFavorite = { card ->
viewModel.toggleFavorite(card)
val message =
if (card.isFavorite) context.getString(R.string.card_favorite_removed)
else context.getString(R.string.card_favorite_added)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Some visual changes and new small features I wanted to add