From e286d67db5f0aba8fcd06c168e7cd45606f43fb8 Mon Sep 17 00:00:00 2001 From: "Luis Guzman (AppDevForAll)" Date: Sat, 3 Oct 2026 12:39:29 -0600 Subject: [PATCH 1/2] K2GO-443 fix(app): carry the distinct module icons to Module management The add-ons work gave the Home members sheet distinct glyphs (add-ons = extension, build assets = box), but ModuleCards: the canonical source used by Settings > Module management and the action-sheet header: still mapped both to the code glyph. Point code_addons -> ic_card_addons and code_assets -> ic_card_assets so both surfaces match. --- .../main/java/org/appdevforall/k2go/redesign/ModuleCards.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controller/app/src/main/java/org/appdevforall/k2go/redesign/ModuleCards.java b/controller/app/src/main/java/org/appdevforall/k2go/redesign/ModuleCards.java index d8e63cc5..508f519d 100644 --- a/controller/app/src/main/java/org/appdevforall/k2go/redesign/ModuleCards.java +++ b/controller/app/src/main/java/org/appdevforall/k2go/redesign/ModuleCards.java @@ -74,10 +74,10 @@ public boolean runsOnThisRuntime() { R.drawable.ic_card_code, false), new Card("code_addons", R.string.k2go_mod_code_addons_title, R.string.k2go_mod_code_addons_title, R.string.k2go_mod_code_addons_sub, R.string.k2go_mod_code_addons_desc, - R.drawable.ic_card_code, false), // K2GO-99: offline add-ons gallery (reuses the code icon) + R.drawable.ic_card_addons, false), // K2GO-443: extension glyph (Module management + the action sheet; matches the Home members sheet) new Card("code_assets", R.string.k2go_mod_code_assets_title, R.string.k2go_mod_code_assets_title, R.string.k2go_mod_code_assets_sub, R.string.k2go_mod_code_assets_desc, - R.drawable.ic_card_code, false), // K2GO-437: offline build assets (reuses the code icon) + R.drawable.ic_card_assets, false), // K2GO-443: box glyph (Module management + the action sheet; matches the Home members sheet) new Card("forgejo", R.string.k2go_mod_forgejo_title, R.string.k2go_mod_forgejo_title, R.string.k2go_mod_forgejo_sub, R.string.k2go_mod_forgejo_desc, R.drawable.ic_card_forgejo, false), From 59b906d236dc557f8bf62e856db696aabd6dfa4f Mon Sep 17 00:00:00 2001 From: "Luis Guzman (AppDevForAll)" Date: Sat, 3 Oct 2026 12:45:00 -0600 Subject: [PATCH 2/2] K2GO-443 refactor(app): source the Home member glyphs from ModuleCards (one icon source) The member rows hardcoded their glyphs, a second place to update (the drift that left Module management on the old icon). They now read ModuleCards.byEndpoint(endpoint).imageRes, so a module's icon is set once in ModuleCards and shows the same in Module management, the module detail, the action-sheet header and the Home members row. --- .../k2go/redesign/LibraryHomeFragment.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/controller/app/src/main/java/org/appdevforall/k2go/redesign/LibraryHomeFragment.java b/controller/app/src/main/java/org/appdevforall/k2go/redesign/LibraryHomeFragment.java index 5f174a66..97406548 100644 --- a/controller/app/src/main/java/org/appdevforall/k2go/redesign/LibraryHomeFragment.java +++ b/controller/app/src/main/java/org/appdevforall/k2go/redesign/LibraryHomeFragment.java @@ -196,11 +196,12 @@ private void populateCards() { // K2GO-445: the group's members (the IDE, its add-ons, its build assets), same filtering as the // grid. If all are filtered out, drop the empty group tile too. - // K2GO-443: each member carries its own glyph (they shared the code "" before): Code on the Go - // = code, Add-ons = extension (puzzle), Build assets = box. Drives the row AND the action-sheet header. - codeDevMembers.add(new Card("code", getString(R.string.k2go_card_code), false, R.drawable.ic_card_code)); - codeDevMembers.add(new Card("code-addons", getString(R.string.k2go_card_code_addons), false, R.drawable.ic_card_addons)); - codeDevMembers.add(new Card("code-assets", getString(R.string.k2go_card_code_assets), false, R.drawable.ic_card_assets)); + // K2GO-443: each member's glyph comes from ModuleCards (the ONE source also used by Module + // management, the module detail and the action-sheet header), so an icon change there flows to + // every surface and never drifts. Code on the Go = code, Add-ons = extension, Build assets = box. + codeDevMembers.add(new Card("code", getString(R.string.k2go_card_code), false, moduleIcon("code"))); + codeDevMembers.add(new Card("code-addons", getString(R.string.k2go_card_code_addons), false, moduleIcon("code-addons"))); + codeDevMembers.add(new Card("code-assets", getString(R.string.k2go_card_code_assets), false, moduleIcon("code-assets"))); filterHidden(codeDevMembers); filterHidden(cards); if (codeDevMembers.isEmpty()) { @@ -433,6 +434,14 @@ else if (verdict == org.appdevforall.k2go.system.domain.SystemVerdict.State.NO_S () -> { if (isAdded()) refreshAfterSheet(c); }); // ADFA-4958: refresh label / drop if hidden } + /** K2GO-443: a module's canonical glyph from ModuleCards: the single source every surface reads, so a + * per-module icon change is made once and shows in Module management, the detail, the action sheet AND + * the Home members row. The code glyph is a defensive fallback if the endpoint has no backing card. */ + private static int moduleIcon(String endpoint) { + ModuleCards.Card c = ModuleCards.byEndpoint(endpoint); + return c != null ? c.imageRes : R.drawable.ic_card_code; + } + /** * K2GO-445: the members sheet for the "Code on the Go Dev" group. Lists the member modules (name + * status); a row routes through the SAME onCardClick a grid card uses (open if ready, else the