Add switchable gallery layout to Games tab - #102
Conversation
Simulator validation screenshotValidation head: iOS SimulatorVerified the gallery layout on iPhone 17 Pro / iOS 26.5, including the compact icon-only layout toggle requested in review. The screenshot shows the gallery sections, featured game card, quick-pick cards, filters, and the icon toggle without the previous large Gallery/List text control. The screenshot is an external GitHub Release asset and is not committed to the repository. The Android AVD currently has no QA wallet and opens at onboarding, so I did not accept wallet terms on the user's behalf and did not upload the unrelated welcome-page screenshot. |
There was a problem hiding this comment.
Pull request overview
This PR enhances the Games tab UI by introducing a responsive, switchable gallery vs. list layout, adds additional curated sections (spotlight/quick picks), and persists the user’s chosen layout across restarts, with updated EN/zh-Hans localization to support the new UI labels.
Changes:
- Added a persisted gallery/list layout toggle and responsive grid behavior for the gallery.
- Introduced new gallery sections (Spotlight, Quick picks, All games) and a preview-image fallback (
PreviewUrl). - Added English and Simplified Chinese localized strings for new Games-tab sections/labels.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| OneGateApp/Properties/Strings.zh-Hans.resx | Adds zh-Hans strings for new Games tab labels/sections. |
| OneGateApp/Properties/Strings.resx | Adds English strings for new Games tab labels/sections. |
| OneGateApp/Properties/Strings.Designer.cs | Adds strongly-typed accessors for the new localized strings. |
| OneGateApp/Pages/GamingPage.xaml.cs | Implements persisted layout toggle, gallery/list visibility state, and gallery section derivation (spotlight/quick picks). |
| OneGateApp/Pages/GamingPage.xaml | Reworks the Games tab UI into a toggleable gallery/list experience with new sections and layouts. |
| OneGateApp/Data/DApp.cs | Adds PreviewUrl fallback used by the new gallery UI. |
Files not reviewed (1)
- OneGateApp/Properties/Strings.Designer.cs: Generated file
Suppressed comments (3)
OneGateApp/Pages/GamingPage.xaml:110
- In the Spotlight card, the preview image is declared after the icon image in the same Grid, which will render over the icon and likely hide it. Set a higher ZIndex on the icon (or reorder) so the icon stays visible.
<Image Margin="52" Aspect="AspectFit">
OneGateApp/Pages/GamingPage.xaml:164
- In the "Quick picks" card template, the preview image is declared after the icon image in the same Grid, which will render over the icon and likely hide it. Set a higher ZIndex on the icon (or reorder) so the icon stays visible.
<Image Margin="16" Aspect="AspectFit">
OneGateApp/Pages/GamingPage.xaml:203
- In the gallery item template, the preview image is declared after the icon image in the same Grid, so it will render on top and likely hide the icon. Set a higher ZIndex on the icon (or reorder) so the icon stays visible.
<Image Margin="18" Aspect="AspectFit">
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| <DataTemplate x:DataType="og:DApp"> | ||
| <Border StyleClass="Card" WidthRequest="112" HeightRequest="120" Padding="0"> | ||
| <Grid RowDefinitions="76,44"> | ||
| <Image Margin="14" Aspect="AspectFit"> |
| } | ||
| } = true; | ||
| public bool IsListLayout => !IsGalleryLayout; | ||
| public string LayoutToggleDescription => IsGalleryLayout ? Strings.GamingList : Strings.GamingGallery; |
Summary
Validation