Store Icons added to the list, capsule and hero items.#419
Store Icons added to the list, capsule and hero items.#419utkarshdalal merged 2 commits intoutkarshdalal:masterfrom
Conversation
📝 WalkthroughWalkthroughA new Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
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 |
| painter = painterResource(R.drawable.ic_gog), | ||
| contentDescription = "GOG", | ||
| modifier = Modifier.size(24.dp) | ||
| modifier = Modifier.size(28.dp), |
There was a problem hiding this comment.
Updated the GOG icon size in the filter as it was slightly too small
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In
`@app/src/main/java/app/gamenative/ui/screen/library/components/LibraryAppItem.kt`:
- Line 503: The local variable alpha is created with an incorrect key usage via
remember(Int) and appears unused; replace remember(Int) with remember { 1f } or
remove the alpha declaration if dead, and similarly remove or rename the inner
hideText that shadows the outer scope (in LibraryAppItem / GameInfoBlock) to
avoid shadowing and dead code—either keep the variables only if they will be
used later (initialize correctly with remember { ... }) or delete both unused
alpha and the inner hideText to clean up the component.
🧹 Nitpick comments (1)
app/src/main/java/app/gamenative/ui/screen/library/components/LibraryAppItem.kt (1)
609-616: Consider using string resources for content descriptions and fix capitalization.The hardcoded content descriptions should use string resources for internationalization support. Also, "Gog" should be "GOG" for consistency with the rest of the codebase (e.g., line 110 in LibraryBottomSheet.kt uses "GOG").
♻️ Suggested improvement
`@Composable` fun GameSourceIcon(gameSource: GameSource, modifier: Modifier = Modifier, iconSize: Int = 12) { when (gameSource) { - GameSource.STEAM -> Icon(imageVector = Icons.Filled.Steam, contentDescription = "Steam", modifier = modifier.size(iconSize.dp).alpha(0.7f)) - GameSource.CUSTOM_GAME -> Icon(imageVector = Icons.Filled.Folder, contentDescription = "Custom Game", modifier = modifier.size(iconSize.dp).alpha(0.7f)) - GameSource.GOG -> Icon(painter = painterResource(R.drawable.ic_gog), contentDescription = "Gog", modifier = modifier.size(iconSize.dp).alpha(0.7f)) + GameSource.STEAM -> Icon(imageVector = Icons.Filled.Steam, contentDescription = stringResource(R.string.library_source_steam), modifier = modifier.size(iconSize.dp).alpha(0.7f)) + GameSource.CUSTOM_GAME -> Icon(imageVector = Icons.Filled.Folder, contentDescription = stringResource(R.string.library_source_custom), modifier = modifier.size(iconSize.dp).alpha(0.7f)) + GameSource.GOG -> Icon(painter = painterResource(R.drawable.ic_gog), contentDescription = "GOG", modifier = modifier.size(iconSize.dp).alpha(0.7f)) } }
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
app/src/main/res/drawable/ic_gog.pngis excluded by!**/*.png
📒 Files selected for processing (3)
app/src/main/java/app/gamenative/ui/screen/library/components/LibraryAppItem.ktapp/src/main/java/app/gamenative/ui/screen/library/components/LibraryBottomSheet.ktapp/src/main/res/values/strings.xml
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-12-17T05:14:05.133Z
Learnt from: utkarshdalal
Repo: utkarshdalal/GameNative PR: 344
File: app/src/main/java/app/gamenative/service/SteamAutoCloud.kt:415-419
Timestamp: 2025-12-17T05:14:05.133Z
Learning: In SteamAutoCloud.kt, when uploading files to Steam Cloud API (beginFileUpload and commitFileUpload), the filename parameter intentionally uses different formats: `file.path + file.filename` (relative path without placeholder) when `appInfo.ufs.saveFilePatterns.isEmpty()` is true (fallback case), and `file.prefixPath` (includes placeholder like %SteamUserData%) when patterns are configured. This difference is by design.
Applied to files:
app/src/main/java/app/gamenative/ui/screen/library/components/LibraryAppItem.kt
📚 Learning: 2025-09-19T17:07:27.941Z
Learnt from: utkarshdalal
Repo: utkarshdalal/GameNative PR: 159
File: app/src/main/java/app/gamenative/service/DownloadService.kt:6-6
Timestamp: 2025-09-19T17:07:27.941Z
Learning: In app/src/main/java/app/gamenative/service/DownloadService.kt, the getSizeFromStoreDisplay() function uses runBlocking to call SteamService.getDownloadableDepots() because the latter was converted from synchronous to suspend in this PR. The user confirmed the previous synchronous implementation worked fine, and if performance is acceptable, keeping runBlocking is a valid approach.
Applied to files:
app/src/main/java/app/gamenative/ui/screen/library/components/LibraryAppItem.kt
🧬 Code graph analysis (1)
app/src/main/java/app/gamenative/ui/screen/library/components/LibraryAppItem.kt (2)
app/src/main/java/app/gamenative/ui/util/Images.kt (1)
ListItemImage(24-51)app/src/main/java/app/gamenative/ui/screen/library/appscreen/CustomGameAppScreen.kt (1)
findSteamGridDBImage(83-90)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: build
🔇 Additional comments (8)
app/src/main/res/values/strings.xml (1)
797-797: LGTM!The shortened label "Unknown" is more concise and consistent with the other compatibility status labels displayed in the UI.
app/src/main/java/app/gamenative/ui/screen/library/components/LibraryBottomSheet.kt (3)
12-34: LGTM!The new imports are correctly added to support the icon rendering and game source display functionality.
56-57: LGTM!The consistent
verticalArrangement = Arrangement.spacedBy(12.dp)across FlowRow components improves chip spacing uniformity.Also applies to: 93-94, 126-128
112-119: LGTM!The GOG icon size increase to 28.dp improves visual consistency with the other store icons.
app/src/main/java/app/gamenative/ui/screen/library/components/LibraryAppItem.kt (4)
300-318: LGTM!The header overlay layout with
SpaceBetweenarrangement effectively positions the compatibility status on the left and the game source icon on the right, providing a clean visual hierarchy.
213-268: LGTM!The image URL resolution logic correctly handles all three game sources with appropriate fallbacks to Steam CDN URLs for custom games when local SteamGridDB images aren't available.
600-603: LGTM!The
GameSourceIconintegration inGameInfoBlockis consistent with the header overlay implementation.
622-737: LGTM!The preview functions are updated appropriately to demonstrate the new
GameSourceIconfunctionality with different game sources and compatibility states.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
This PR adds the Game Source Icons for stores.
Supports:
Also updated the GOG Icon to a rounder icon.
New Screens:


Summary by CodeRabbit
New Features
Style
✏️ Tip: You can customize this high-level summary in your review settings.