@@ -196,11 +196,12 @@ private void populateCards() {
196196
197197 // K2GO-445: the group's members (the IDE, its add-ons, its build assets), same filtering as the
198198 // grid. If all are filtered out, drop the empty group tile too.
199- // K2GO-443: each member carries its own glyph (they shared the code "</>" before): Code on the Go
200- // = code, Add-ons = extension (puzzle), Build assets = box. Drives the row AND the action-sheet header.
201- codeDevMembers .add (new Card ("code" , getString (R .string .k2go_card_code ), false , R .drawable .ic_card_code ));
202- codeDevMembers .add (new Card ("code-addons" , getString (R .string .k2go_card_code_addons ), false , R .drawable .ic_card_addons ));
203- codeDevMembers .add (new Card ("code-assets" , getString (R .string .k2go_card_code_assets ), false , R .drawable .ic_card_assets ));
199+ // K2GO-443: each member's glyph comes from ModuleCards (the ONE source also used by Module
200+ // management, the module detail and the action-sheet header), so an icon change there flows to
201+ // every surface and never drifts. Code on the Go = code, Add-ons = extension, Build assets = box.
202+ codeDevMembers .add (new Card ("code" , getString (R .string .k2go_card_code ), false , moduleIcon ("code" )));
203+ codeDevMembers .add (new Card ("code-addons" , getString (R .string .k2go_card_code_addons ), false , moduleIcon ("code-addons" )));
204+ codeDevMembers .add (new Card ("code-assets" , getString (R .string .k2go_card_code_assets ), false , moduleIcon ("code-assets" )));
204205 filterHidden (codeDevMembers );
205206 filterHidden (cards );
206207 if (codeDevMembers .isEmpty ()) {
@@ -433,6 +434,14 @@ else if (verdict == org.appdevforall.k2go.system.domain.SystemVerdict.State.NO_S
433434 () -> { if (isAdded ()) refreshAfterSheet (c ); }); // ADFA-4958: refresh label / drop if hidden
434435 }
435436
437+ /** K2GO-443: a module's canonical glyph from ModuleCards: the single source every surface reads, so a
438+ * per-module icon change is made once and shows in Module management, the detail, the action sheet AND
439+ * the Home members row. The code glyph is a defensive fallback if the endpoint has no backing card. */
440+ private static int moduleIcon (String endpoint ) {
441+ ModuleCards .Card c = ModuleCards .byEndpoint (endpoint );
442+ return c != null ? c .imageRes : R .drawable .ic_card_code ;
443+ }
444+
436445 /**
437446 * K2GO-445: the members sheet for the "Code on the Go Dev" group. Lists the member modules (name +
438447 * status); a row routes through the SAME onCardClick a grid card uses (open if ready, else the
0 commit comments