From 22c1df93030728adc4d15eb97519d734a238f76c Mon Sep 17 00:00:00 2001 From: suryag23 Date: Wed, 15 Jul 2026 17:19:46 +0530 Subject: [PATCH] RDKUI-882 Green tick indication missing on app tile after successful app installation --- accelerator-home-ui/settings.json | 2 +- .../src/items/AppCatalogItem.js | 39 +++++++++++++++++- accelerator-home-ui/src/items/DacAppItem.js | 27 ++++++++++++ accelerator-home-ui/static/images/tick.png | Bin 0 -> 5560 bytes .../package-configs/com.rdkcentral.refui.json | 4 +- 5 files changed, 68 insertions(+), 4 deletions(-) create mode 100644 accelerator-home-ui/static/images/tick.png diff --git a/accelerator-home-ui/settings.json b/accelerator-home-ui/settings.json index 2d334d0..a0d036b 100644 --- a/accelerator-home-ui/settings.json +++ b/accelerator-home-ui/settings.json @@ -13,6 +13,6 @@ "log": true, "enableAppSuspended": true, "showVersion": false, - "version": "6.0.27" + "version": "6.0.28" } } diff --git a/accelerator-home-ui/src/items/AppCatalogItem.js b/accelerator-home-ui/src/items/AppCatalogItem.js index af4fd2c..7e67f40 100644 --- a/accelerator-home-ui/src/items/AppCatalogItem.js +++ b/accelerator-home-ui/src/items/AppCatalogItem.js @@ -49,7 +49,9 @@ export const DACAppMixin = (Base) => class extends Base { const errorCode = this._app.errorCode ?? -1; if (Object.prototype.hasOwnProperty.call(this._app, "errorCode")) delete this._app.errorCode; this.updateDACStatus(statusProgressTag, overlayTag) - if (!success) { + if (success) { + this._showGreenTick(statusProgressTag) + } else { this.tag(statusProgressTag).setProgress(1.0, 'Error: ' + msg) this.fireAncestors('$showInstallError', { name: this._app.name, errorCode: errorCode }) } @@ -86,6 +88,21 @@ export const DACAppMixin = (Base) => class extends Base { } } + _showGreenTick(statusProgressTag) { + const tickMarkTag = statusProgressTag.replace('StatusProgress', 'TickMark') + const tickOverlayTag = statusProgressTag.replace('StatusProgress', 'TickOverlay') + const tickMark = this.tag(tickMarkTag) + const tickOverlay = this.tag(tickOverlayTag) + if (tickMark) { + if (tickOverlay) tickOverlay.alpha = 0.7 + tickMark.alpha = 1 + setTimeout(() => { + tickMark.setSmooth('alpha', 0, { duration: 0.5 }) + if (tickOverlay) tickOverlay.setSmooth('alpha', 0, { duration: 0.5 }) + }, 2000) + } + } + async performDACInstall(statusProgressTag, overlayTag) { if (this._app.isInstalled) { this.LOG("App is already installed, launching: " + this._app.name) @@ -187,6 +204,26 @@ export default class AppCatalogItem extends DACAppMixin(Lightning.Component) { type: StatusProgress, x: 50, y: 80, w: 200, alpha: 1, }, + TickOverlay: { + alpha: 0, + zIndex: 11, + rect: true, + color: 0xFF000000, + x: 0, + y: 0, + w: this.width, + h: this.height, + }, + TickMark: { + alpha: 0, + zIndex: 12, + mount: 0.5, + x: this.width / 2, + y: this.height / 2, + w: 100, + h: 100, + src: Utils.asset('/images/tick.png'), + }, } } diff --git a/accelerator-home-ui/src/items/DacAppItem.js b/accelerator-home-ui/src/items/DacAppItem.js index 28319c1..7884c7b 100644 --- a/accelerator-home-ui/src/items/DacAppItem.js +++ b/accelerator-home-ui/src/items/DacAppItem.js @@ -66,6 +66,20 @@ export default class DacAppItem extends DACAppMixin(Lightning.Component) { alpha: 1, zIndex: 10, }, + TickOverlay: { + alpha: 0, + zIndex: 11, + rect: true, + color: 0xFF000000, + }, + TickMark: { + alpha: 0, + zIndex: 12, + mount: 0.5, + w: 100, + h: 100, + src: Utils.asset('/images/tick.png'), + }, }, Info: {}, }, @@ -154,6 +168,19 @@ export default class DacAppItem extends DACAppMixin(Lightning.Component) { h: this.h, }) + // TickOverlay covers entire tile as dark backdrop + this.tag('ImageWrapper.TickOverlay').patch({ + x: 0, + y: 0, + w: this.w, + h: this.h, + }) + // TickMark centered on tile + this.tag('ImageWrapper.TickMark').patch({ + x: this.w / 2, + y: this.h / 2, + }) + this.tag('Info').patch({ x: this.x - 20, y: this.y + this.h + 10, diff --git a/accelerator-home-ui/static/images/tick.png b/accelerator-home-ui/static/images/tick.png new file mode 100644 index 0000000000000000000000000000000000000000..0f6040ed8bdfb1518480a94ad6432b2be558847d GIT binary patch literal 5560 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 a+pgsw&ZO?D^nrg+m9{#%5^oZA|MD-X0ikOE literal 0 HcmV?d00001 diff --git a/bolt/package-configs/com.rdkcentral.refui.json b/bolt/package-configs/com.rdkcentral.refui.json index 1279f94..5ccfa2a 100644 --- a/bolt/package-configs/com.rdkcentral.refui.json +++ b/bolt/package-configs/com.rdkcentral.refui.json @@ -1,7 +1,7 @@ { "id": "com.rdkcentral.refui", - "version": "6.0.27", - "versionName": "6.0.27", + "version": "6.0.28", + "versionName": "6.0.28", "name": "RDK Ref UI Home Screen", "packageType": "application", "entryPoint": "--lightning --dev file:///usr/share/refui/index.html",