Repository navigation
Packages: a category for every app, groups and variant labels - #64
Closed
PatrickSt1991 wants to merge 1 commit into
Closed
PatrickSt1991 wants to merge 1 commit into
PatrickSt1991 wants to merge 1 commit into
Conversation
Every package gets its category, based on its description and the upstream README. Forks and builds of the same app are folded: - Moonlight: OneLiberty, MrPhaze62 (No Gamemode), ToypoodleGaming and brightcraft (Tizen, Tizen ForceGM) share group "Moonlight" - Nuvio: the official web app and the native legacy builds per Tizen range - RÚV: the five VOD/kids/teens/education/radio apps plus RÚV Live - Kodi: the Chorus2 and TeX web-UI wrappers - Overscan, Sonance3, StreamVault and YouTube for Tizen fold by their assets README table re-rendered with the Category column.
PatrickSt1991
added a commit
to Apps2Samsung/Apps2Samsung
that referenced
this pull request
Oct 8, 2026
## Why The app list has grown to 80 rows (7 providers, 72 community files, the custom-file row) in one alphabetical dropdown, and a good part of that is variants of the same app: five Moonlight builds, six Nuvio, five Overscan, six RÚV. This adds a category filter above the list and folds those variants into one entry with a variant picker, on both heads. The data comes from the community bundle itself: tizen-community-packages [#63](Apps2Samsung/tizen-community-packages#63) adds `category`, `group` and `variant` to every package and ships a `catalog.json` next to the `.wgt`/`.tpk` files in each release; [#64](Apps2Samsung/tizen-community-packages#64) fills them in. The fixed providers get their category from `third-party-apps.json` (follow-up PR against `main`). Without a catalog the list is exactly what it is today, so this can merge before either. ## What **Core** - `CommunityCatalog` model for the release's `catalog.json`; `AddLatestRelease` keeps that asset's URL before narrowing to installable files and downloads it on request. - `CommunityAppList.Expand` replaces the per-asset expansion both heads had inline. Files that share a group fold into one `GitHubRelease` (`HasVariants`) whose assets carry a `Variant` label; every entry gets a `Category`. - `AppCategories`: the seven ids (media, iptv, streaming, games, casting, tools, other), their en.json keys and English fallbacks. `ProviderEntry.Category` for the fixed providers; unknown or missing lands in Other. **Desktop** - New "Category" row above the app list: "All categories (57)" plus every category that has apps, with counts. The custom-file row is never filtered out; the selected app stays selected while its category is in view. - The second dropdown reads **Variant** for a folded community app (Moonlight: "OneLiberty · Chrome", "brightcraft · Tizen ForceGM", …) and **Version** otherwise, and shows the variant label in front of the file name. - First label reads "App" instead of "Release". **Android** - Same category picker. The variant picker lists variant labels only, one line each, since a `Picker` shows a single line; the file name is in the catalog view. - Labels moved above their picker so it gets the full card width. Next to the label the picker kept about 160 dp on a 360 dp phone once the round "?" and rescan buttons took theirs, and names like "Jellyfin - AVPlay - 10.10z SmartHub" were cut off. Those two buttons are now text actions on the label line: "App details" and "Rescan". Bundled manifests (desktop assets, mobile Raw) get a category per provider. New en.json keys: `lblVariant`, `lblCategory`, `lblAllCategories`, `lblAppDetails`, `lblRescan`, `category*`. ## Checked - Core + desktop build (Release), localization check passes. - `CommunityAppList.Expand` run against the catalog from #64 and the asset list of `community-651`: 72 files become 50 entries (8 groups: Kodi 2, Moonlight 5, Nuvio 6, Overscan 5, RÚV 6, Sonance3 2, StreamVault 2, YouTube 2), the IPTV filter yields 11, and without a catalog the same 72 files give the flat 72-row list with no variants. - The mobile head is not built locally (no maui-android workload here); the PR's Mobile (Android) job covers it. --------- Co-authored-by: Patrick Stel <patrick.stel@embracecloud.nl>
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.
Stacked on #63 (base branch
feat/catalog-categories), so the validate bot checks these files against the new schema. GitHub retargets it tomainonce #63 merges; merge this one right after.Every package gets a
category, based on its description and the upstream README. Forks and builds of the same app are folded withgroupand labelled withvariant:Groups: Moonlight (OneLiberty · Chrome, MrPhaze62 · No Gamemode, ToypoodleGaming, brightcraft · Tizen, brightcraft · Tizen ForceGM), Nuvio (Official web app plus the native legacy builds per Tizen range), RÚV (Sarpur, Barnaefni, Unglingar, Menntun, Útvarp, Sjónvarp live), Kodi (Chorus2 web UI, TeX web UI). Overscan, Sonance3, StreamVault and YouTube for Tizen fold by their own assets.
Kick TV and Kick TV 2.0 are different apps by different authors and stay separate. The README table is re-rendered with the Category column.