Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel5

...

titleWork In-Progress
typeWarning

Overview

The RDK Accelerator Home UI version 3 is the latest stable version (3.9RDK_apps/6.0.0-rc4/accelerator-home-ui/settings.json#16 platformSettings version) of the RDK reference UI which provides a full featured UI with a modern minimalistic design using a dark theme.

...

  • OEM logo with color accents which are customizable
  • Multiple Language Support
  • Casting Feature from mobile phones to premium apps such as YouTube
  • Overlay Screen
  • Extensive settings pages to interact with various Video, Audio, Connectivity options
  • Generic UI Keymap option
  • On-screen Keyboard Component for Bluetooth & Wi-Fi
  • Partner-App side loading
  • Downloadable application bundles (DAC Apps) from DAC App-store

Splash Screen

The app loads a new splash logo when the device boots up which remains for a few seconds and then leads to user on-boarding screens if device is booting up afresh.

Note: The Gracenote logo will be visible only on the device where required keys are provisioned.

User on-boarding

This screens shall appear only once the device is booting up.  Criteria used to detect the fresh boot is by verifying whether any previous Remote Control Unit (hereafter RCU) pairing information is available or not. If yes, device shall skip these on-boarding screens and land at the Home screen.

Same features and functionalities are exposed under Settings menu as well for the user to interact later.

Remote Pairing

UI initiates Bluetooth scan for HID profile to connect and pair with at this point with a configured time-out. How to put the RCU in Bluetooth pairing mode is dependent on the RCU design which is not within UI scope.

Bluetooth Pairing is done through RCU on UI

Navigator UI will prefer to use Remote Control plugin on supported platforms to pair with RCU instead of classic Bluetooth plugin. Only one plugin shall be used to onboard the RCU - if preferred Remote Control plugin is available it will not fall back to use Bluetooth plugin to scan and pair with RCU.

RCU Pairing using RemoteControl plugin

Note: this Note: this feature of automatic RCU pairing requires RCU model support integrated with BLERCUDaemon at platform firmware build time and RemoteControl plugin enabled. If your RCU and platform does not support this feature yet, you can still pair your RCU using the Classic Bluetooth plugin based RCU pairing through the "Settings" menu detailed in later section - "Pair Remote Control".

Image RemovedImage Removed

Language Selection

The UI uses Remote Control Plugin to pair with the device if it catches any error while pairing then Bluetooth plug will be activated.

Image AddedImage Added

RCU Pairing using classic Bluetooth plugin

The updated UI uses classic Bluetooth plugin to pair with the very first HID input device appearing in the scan response.

Image AddedImage Added

Language Selection

The UI currently supports two languages, English The UI currently supports two languages,  English and Spanish. New language support can be integrated with proper resource files added along with the defaults as detailed in upcoming sections. UI will reload to refresh the entire settings and during that time user may see display going blank and a spinner appearing for the reload time.

Based on user selection; active language shall be saved as user preference in platform configuration.

Note: this spinner is being spawned as a separate app instance.

 

Network Selection

Network selection screen allows the user to configure connectivity method for internet access to the device.

...

Keyboard seen in above snapshot is implemented using Lightning UI Components and has been customized to fit with present Keyboard layout.

Home Screen

This new app has redesigned ‘Home UI’ screen with new background, shadow and animation effects. It contains sections for Featured content, Lightning Apps, Featured Video on Demand, and Voice and Settings icons displayed on top section.

Prime Video, YouTube, Xumo and the metrological apps can be launched from app listings if the device has respective support integrated.

Sample Video contents including HLS & DASH FOG Live Streams can be played from the Featured Video section.

  •  New Feature: UIv3.8 Added support for few more Lightning apps.
  •  New Feature: UIv3.8 Added support for Netflix launch requirements.

User can User can access the device settings by interacting with the Settings icon which will redirect him on to dedicated settings screen. Time display is also available in the home UI.

Home Screen for Set-Top-Box Profile

Note: Voice Search Functionality implementation for the mic is not yet available, up-coming feature with BLERCUDaemon integration.

Note: The web apps will now auto-exit in case if the url gives 403 error.

Image Removed Image Removed

Peacock App

Image Removed

The UI can display popular movies in Home screen with the help of Gracenote metadata if platform support is enabled. UI upon detecting required runtime configuration shall display "Popular Movies" row at the top as detailed below.

On selecting an asset; its details screen shall be presented and User shall be able to launch the selected content on platform supported Apps (Note: Currently YouTube only is added with deeplink feature).

Image Removed Image Removed

Alexa support

Preview Mode: Navigator UI supports basic Alexa skills on aligning to Alexa Voice Integration Manual on a supported platform using Voice Control plugin.

  •  Reporting application state and device settings changes to Alexa (ApplicationStateReport, PlaybackStateReport, Volume change, Language & TimeZone change reporting)
  •  Support for Search & Play voice query redirection to YouTube.

RDK's OOBE for Alexa authentication will be activated only when user is at HOME page and internet is available. User shall have an option to disable this support by selecting "Skip" button. Later onwards UI shall deny all the Alexa related notifications until a Clear Cache or Factory reset is done through the UI.

Image Added Image AddedImage AddedImage Added Image Added

UI shall display following Alexa SDK status[DISCONNECTED, CONNECTING, CONNECTED] if enabled and authenticated. The following screen shall be displayed to user on each SDK status change and shall time out itself without any need for user interaction.

Image Added

Home Screen for Set-Top-Box Profile

Featured Content row will display app icons based on platform capability. 

Note: The web apps will now auto-exit in case if the http status code is not 200.

Image Added Image Added

The UI can display popular movies in Home screen with the help of Gracenote metadata if platform support is enabled. UI upon detecting required runtime configuration shall display "Popular Movies" row at the top as detailed below.

On selecting an asset; its details screen shall be presented and User shall be able to launch the selected content on platform supported Apps (Note: Currently YouTube only is added with deeplink feature).

Image Added Image Added

Precondition: Platform shall have support for PersistentStore Precondition: Platform shall have support for PersistentStore plugin and Gracenote API key should be added to Persistent Store of the DUT prior to UI startup. Use below commands to save and confirm the same.

Code Block
languagejs
curl -X POST http://127.0.0.1:9998/jsonrpc -d '{"jsonrpc":"2.0","id":"3","method":"org.rdk.PersistentStore.1.setValue","params":{"namespace":"gracenote","key":"apiKey","value":"SecretAPIKey"}}'
curl -X POST http://127.0.0.1:9998/jsonrpc -d '{"jsonrpc":"2.0","id":"3","method":"org.rdk.PersistentStore.1.getValue","params":{"namespace":"gracenote","key":"apiKey"}}'

Home Screen for TV Profile

Featured Content row will display app icons based on platform capability. 

  •  Upcoming Feature:  Upcoming Feature: Extend support for Composite Input and HDMI CEC Sink.

...

Here it is! This new feature allows users to select HDMI inputs connected your TV. It allows seamless switching between the UI and HDMI inputs.

Guide Screen

  •  EPG guide is a continuous updating menu that shows scheduling information for current and upcoming programs.
  •  EPG/Guide can be invoked by clicking on the second icon of the side panel.
  •  EPG Guide will show list of channels and shows which are currently airing. It will also show user the upcoming programs.
  •  One can scroll through channels by using up and down arrow keys and through shows by using left and right arrow keys.

...

  • When playing the content user has the ability to view all the channels as an overlay.
  • This feature allows user to change channels while playing the content.

  • Version 3.8 comes with a new feature to open premium apps Apps (Amazon , Netflix and YouTube etc) can be launched from the guide screen.
  • These three clickables will take place of the first three channels.
  • In presence of DTV plugin other channels will follow these three apps.
  • In absence of a DTV plugin , the guide screen will still openable with these three items populated.

Apps Screen

My Apps, App Catalog, Manage Apps tabs now is dedicated for supporting DAC Apps or app-store on a supported device and firmware with provisioned ASMS Cloud app-store functionality.

On selecting the Apps Icon from left banner; User shall be presented a new page with 3 tabs highlighted with "MyAppsMy Apps" which shall list the list of all available Apps installed app bundles on that particular platform. User If no installed app bundles are found; user shall be presented with the "App Catalog" tab which will display all available downloadable app bundles from remote server from which user shall be able to launch selected App from this page as well.

  •  Note: The other tabs "App Catalog & Manage Apps" are kept reserved for upcoming feature - to support DAC Apps. In this UI version these pages shall display Empty listing.

Image Removed

Featured Video Player

The redesigned video player utilizes UVE implementation and has kept the minimal controls such as a progress bar with pause, play, next and previous buttons. Various player controls are detailed below.

Image Removed

  • Navigation
    • The overlay screen has timeout of 5 sec. You can bring up the overlay by pressing Arrow UP key.
    • Enter to pause, Left and Right to navigate between options
    • Back and Home key will take you back to home screen from Featured video player instance.

Settings Screen

Settings screen has several new options which allows user to interact with device capabilities.

Image Removed

Native Frame State:

Image Removed

Network Configuration

Image Removed

This page contains three subsections detailed below:

  • Network Info - This page presents the current network interface status details to user such as Connection type and status, IP address, MAC address, signal strength etc.

Image Removed Image Removed

  • Network Interface - This page allows the user to change current network configuration - option to choose between Wi-Fi and Ethernet. If Wi-Fi is selected, next page will allow user to join with a wireless network. Join Another Option from Wi-Fi page gives user an option to connect to hidden networks around them - User has to provide Network name, select the proper security and password.
  • Note: Previously connected SSID will not ask for password again and it will get connected if we click on previous connected SSID, and only connect with SSID that is saved [3.8 NEW FEATURE]. Only last saved one SSID is remembered.

Image Removed  Image Removed  Image Removed

  • Check Internet Access - This allows the user to confirm that the device has internet connectivity

Pair Remote Control

Allows user to connect to Human Interface devices like Remote, Bluetooth keyboard etc.

  1. To add a device navigate to add a device option and press enter.
  2. User will be directed to pairing screen where you will list of devices scanned by the UI. Press enter to setup connection.
  3. Notification message will be shown to confirm the connection.

Below Images shows the flow.

Image Removed  Image Removed  Image Removed  Image Removed Image Removed

Video Settings

Video settings provide users to change resolution of the screen. HDR and HDCP options are read only fields which confirms certain requirements for premium apps.

Note: Transparent(advanced settings) contents are currently work in progress

Image Removed

  • Resolution

This screen presents the common resolutions supported by both source(device) and sink(display).

Image Removed

Audio

Provides option to change Output mode of the device.

Note: Transparent contents are currently work in progress

Image Removed

  • Output Mode

Image Removed

Other Settings

Image Removed

  • Sleep Timer

Sleep Timer turns off the screen upon selecting a particular time frame from the options provided. Device will be in Light Sleep mode by default. User can change the default sleep(standby) mode from Energy Saver section.

Image Removed

  • Energy Saver

Energy Saver page allows user to configure the default sleep mode from the supported standby modes.

  1. Deep Sleep - Which releases the resources in the device and suspend the UI. Lowest power consumption mode except power off.
  2. Light Sleep - Turns off the display but the background processes remain active.

Image Removed

  • Language

Allows user to change the menu language of the UI. If changed, the UI will reload to refresh the entire settings and in that process user may see display going blank and a spinner appearing for the reload time.

Note: this spinner is being spawned as a separate app instance.

Image Removed Image Removed

youtube languages changes with respect to device support

Image RemovedImage Removed

  • Privacy

  1. Local Device Discovery - This feature allows user to control (enables/disable) the DIAL casting support of the device - YouTube app. If enabled; user shall be able to see the device in his mobile App(under casting option in YouTube mobile app) which is in the same local network. Upon selecting it will directly link your mobile to device and open the YouTube app in the UI.
  2. USB Media Device - User shall be able to enable or disable USB external media support. If enabled and media device is connected with the device then the USB icon will appear in Featured Content section as detailed in "USB Feature" section.
  3. Audio Input/Clear Cookies and App Data - under development
  4. Privacy Policy and License - This provides a template for future integration. Gives Information about Privacy and License policy which user shall be abiding to.

Image Removed

  • Advanced Settings 

Image Removed

...

Image RemovedImage Removed

  • Device Details - Info - Lists down information about device like chipset, location, supported DRM systems, Firmware version etc.

Image Removed

  • Device Details - Time Zone - This page allows the User to change the device TimeZone settings
    Dependent on System plugin feature support. Note: this does not change the device's time. Only the UI displayed time is affected. This configuration will be persisted.

Image Removed Image Removed

  • Device Details - Check for Updates - This page shows the current firmware version and also allows user to trigger a check for new firmware availability (download and install happens without UI involvement).

Image Removed

  • Device Details - Reboot - Rebooting of the device within the UI.
  • Factory Reset Confirmation Screen

Image RemovedImage Removed

Live TV

Dependent on DTV Plugin. This feature enables user to interact with the Tuner configuration and related features such a as Live TV - scan, channel tuning, Guide population, its playback etc.

Image Removed Image Removed

The Scan section exposes various DVB tuner sub-systems; DVB-S, DVB-T and DVB-C based on respective stack integration support.

  •  New Feature: UIv3.7+ - DVB-S/S2 Support
  •  New Feature: UIv3.X - DVB T/T2: Upcoming
  •  New Feature: UIv3.X - DVB-C: Upcoming

DVB-S/S2

This subpage exposes various DVB-S Tuner parameters such as Satellite selection, Frequency, Polarity, Symbol rate etc. Each section allows user to select respective predefined option or enter a custom value(for selected parameters).

Image Removed Image Removed Image Removed Image Removed Image Removed Image Removed Image Removed Image Removed Image Removed Image Removed

Based on the scan response, Guide screen shall get populated with actual live channel listing. User shall b e able to interact with the current available channels to initiate playback. From playback screen, user shall be able to change the channel also by bringing up the channel listing overlay.

Sample snapshots from DVB-S2 supported Device

Settings page tuner scan configurations and status:

Image Removed  Image Removed  Image Removed

Guide population:

Image Removed

Player:

Image Removed

USB Media Support Feature

In this version you will get full access to USB Media device related features if the device has required support integrated. To name a few - viewing images, playing audio and video file, accessing internal folders of the USB Media device.

Note: only the multimedia files are exposed through UI which are supported by UVE Player.

When the USB is plugged in UI will show USB icon on Featured Content row as shown in below content. New design allows the user to disable and enable USB Media support feature from Privacy Setting.

Image Removed

User can view the contents by pressing enter and he will see contents sorted based on Video, Audio, Photo, Folder.

Image Removed Image Removed

You can traverse using Left/Right/Up/Down and to access the content - press Enter. File format supported is limited only by UVE support and USBAccess plugin filter.

  • Video Content shall be accessible using the same UVE player. Seek bar gives timeline of video, Next and Previous icons will allow user to switch to respective content.

Image Removed

  • Audio Content - UI shows a static image to indicate audio file is playing.

Image Removed

  • Image Content - When viewing images Left/Right key presses will change images.

Image Removed

  • Folder Content - The contents of USB will replace when the user traverse a particular directory.

Related RFC: 

Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.USB_AutoMount.Enable

Overlay Screen

Generic Settings Overlay

  •  New Feature: UIv3.8

In this new release settings is added as a overlay through widgets where user shall be able to launch settings though hot keypress on remote. Settings Hot-Key code is F10 equivalent (121).

Image RemovedImage RemovedImage RemovedImage Removed

Overlay Screen for Set Top Box Profile

New widget for overlay - to display notifications such as volume change etc.

Below snapshot shares how the overlay appears on various sections; At Home page, At Apps page and on a Playback screen.

Image Removed Image Removed Image Removed

Overlay Screen for TV Profile

TV profile supported stack has overlay for Volume change. Adding to that; it adds additional overlay screens for changing TV related settings as detailed below.

Input Selection Overlay

This overlay allows the user to switch between available Input options while enjoying an Input option.

Supported Hotkey is F3 (keycode 114).

Image Removed

Picture Settings Overlay

Numeric value settings like brightness backlight, contrast etc can only be changed when picture mode is set to custom and color temperature is set to user defined.

Supported Hotkey is F4 (keycode 115).

Image Removed

PartnerApp Support

This feature allows the app developers to quickly test any app without modifying the Accelerator UI source code by adding details of the custom app in app manager registry file present in device(if not present; can be created one with valid json content inside it). After updating this restart the device or residentapp service to reload the Home page which shall display a new row at home page with the Icon image. A sample app manager registry configuration and resulting UI screen will be as given below.

Code Block
languagejs
root@HP44HRDK:~# cat /opt/appmanagerregistry.conf
{
  "applications":[
    {
      "displayName":"SampleApp",
      "uri":"https://keycode.info/",
      "applicationType":"WebApp",
      "url":"http://127.0.0.1:50050/lxresui/static/images/info.png"
    }
  ]
}

List of supported launch type for apps(applicationType)

...

{ "applications":[ { "displayName":"HTML App", "uri":"https://keycode.info/", "applicationType":"WebApp", "url":"http://127.0.0.1:50050/lxresui/test-tube.png" } ] }

...

{ "applications":[ { "displayName":"Native App", "uri":"http://localhost:50050/lxresui/static/loaderApp/index.html", "applicationType":"Native", "url":"http://127.0.0.1:50050/lxresui/test-tube.png" } ] }

...

{ "applications":[ { "displayName":"Lightning App", "uri":"https://apps.rdkcentral.com/rdk-apps/device-ui/index.html", "applicationType":"Lightning", "url":"http://127.0.0.1:50050/lxresui/test-tube.png" } ] }

install selected app. Installation progress shall be displayed when user interacts with that selected App Icon. After installation competes; that app will be displayed under "My Apps" as well as "Manage Apps" tabs. From "My Apps"; user shall be able to launch the App. To "EXIT" from that app instance; user need to press HOME key which will redirect him to UI HOME page. From "Manage Apps"; user shall be able to uninstall the installed App.

Respective snapshots are listed below for reference.

  •  Note: "App Catalog & Manage Apps" are supporting only the basic LISA API features. In future it will have the extended features of details of apps, view memory usage etc.

Image AddedImage Added Image AddedImage Added

ASMS App Catalog Support

Known supported RDKV machine configurations:

FamilyPlatform/Machine Name
RDKV Generic Reference Devices

raspberrypi3

raspberrypi4

RDKV Reference Devices

Amlogic

  • ah212
  • ap222

Broadcom 

  • brcm972180hbc
  • m393

Realtek

  • mediabox

Navigator UI supports ASMS Cloud based app store out of the box without any manual configuration if proper configuration is embedded within the device firmware at build time. LISA metadata API shall confirm if the platform supports ASMS App Store if it has proper auxMetadata information matching following template.

Code Block
languagejs
curl -X POST http://127.0.0.1:9998/jsonrpc -d '{"jsonrpc": "2.0", "id": 1, "method": "LISA.1.getMetadata", "params": {"id": "lisa.dac.config", "type": "application/LISA", "version": "0"}}'
{"jsonrpc":"2.0","id":1,"result":{"appName":"","category":"","url":"","auxMetadata":[{"key":"dacBundlePlatformNameOverride","value":"<UnequeASMSRegisteredPlatformName>"},{"key":"dacBundleFirmwareCompatibilityKey","value":"<UniqueUnequeASMSRegisteredPlatformFirmwareKey>"},{"key":"asmsUrl","value":"<ASMSAppStoreConfigurationUri>"}]}}

Featured Video Player

The redesigned video player utilizes UVE implementation and has kept the minimal controls such as a progress bar with pause and play buttons. Various player controls are detailed below.

Image Added

  • Navigation
    • The overlay screen has timeout of 5 sec. You can bring up the overlay by pressing Arrow UP key.
    • Enter to pause and play.
    • Back and Home key will take you back to home screen from Featured video player instance.

Settings Screen

Settings screen has several new options which allows user to interact with device capabilities.

Image Added

Native Frame State:

Image Added

Network Configuration

Image Added

This page contains three subsections detailed below:

  • Network Info - This page presents the current network interface status details to user such as Connection type and status, IP address, MAC address, signal strength etc.

Image Added Image Added

  • Network Interface - This page allows the user to change current network configuration - option to choose between Wi-Fi and Ethernet. If Wi-Fi is selected, next page will allow user to join with a wireless network. Join Another Option from Wi-Fi page gives user an option to connect to hidden networks around them - User has to provide Network name, select the proper security and password.
  • Note: Previously connected SSID will not ask for password again and it will get connected if we click on previous connected SSID, and only connect with SSID that is saved. Only last saved one SSID is remembered.

Image Added  Image Added  Image Added

  • Check Internet Access - This allows the user to confirm that the device has internet connectivity

Pair Remote Control

Allows user to connect to Human Interface devices like Remote, Bluetooth keyboard etc.

  1. To add a device navigate to add a device option and press enter.
  2. User will be directed to pairing screen where you will list of devices scanned by the UI. Press enter to setup connection.
  3. Notification message will be shown to confirm the connection.

Below Images shows the flow.

Image Added  Image Added  Image Added  Image Added Image Added

Voice Remote Control

UI now uses Remote Control plugin to display connected remote control unit's details.

On a Remote Control plugin supported platform following section will activate the remote control plugin if not activated previously and pairs the RCU and shall expose the current information of the paired Remote Control Unit.

Image AddedImage Added

Video Settings

Video settings provide users to change resolution of the screen. HDR and HDCP options are read only fields which confirms certain requirements for premium apps.

Note: Transparent(advanced settings) contents are currently work in progress

Image Added

  • Resolution

This screen presents the common resolutions supported by both source(device) and sink(display).

Image Added

Audio

Provides option to change Output mode of the device.

Note: Transparent contents are currently work in progress

Image Added

  • Output Mode

Image Added

Other Settings

Image Added

  • Sleep Timer

Sleep Timer turns off the screen upon selecting a particular time frame from the options provided. Device will be in Light Sleep mode by default. User can change the default sleep(standby) mode from Energy Saver section.

Image Added

  • Screen Saver

Screen saver is activated if user inactivity is detected for selected time frame . The screen saver is cancelled and returns to the previous screen when the remote control is operated.

Note: To reduce the UI size and to comply with repo management rules the screensaver video file is not checked in along with the the UI code. Please install Screensaver.mp4 video file in the locally hosted UI at ${DOCROOT}/lxresui/static/images/Screensaver.mp4 in the device.

Image Added

  • Energy Saver

Energy Saver page allows user to configure the default sleep mode from the supported standby modes.

  1. Deep Sleep - Which releases the resources in the device and suspend the UI. Lowest power consumption mode except power off.
  2. Light Sleep - Turns off the display but the background processes remain active.

Image Added

  • Language

Allows user to change the menu language of the UI. If changed, the UI will reload to refresh the entire settings and in that process user may see display going blank and a spinner appearing for the reload time.

Note: this spinner is being spawned as a separate app instance.

Image Added Image Added

youtube languages changes with respect to device support

Image AddedImage Added

  • Privacy

  1. Local Device Discovery - This feature allows user to control (enables/disable) the DIAL casting support of the device - YouTube app. If enabled; user shall be able to see the device in his mobile App(under casting option in YouTube mobile app) which is in the same local network. Upon selecting it will directly link your mobile to device and open the YouTube app in the UI.
  2. USB Media Device - User shall be able to enable or disable USB external media support. If enabled and media device is connected with the device then the USB icon will appear in Featured Content section as detailed in "USB Feature" section.
  3. Audio Input/Clear Cookies and App Data - User shall be able to clear the ResidentApp's cache and local storage without triggering a system reboot. This section allows user to reset the Alexa authentication details as well on a supported platform.
  4. Privacy Policy and License - This provides a template for future integration. Gives Information about Privacy and License policy which user shall be abiding to.

Image Added

  • Advanced Settings 

Image Added

  1. CEC Control - This plugin allows user to configure HDMI Consumer Electronic Control on a device. This will enable user to control TV and set-top box using one remote provided same is enabled and supported by the display device also.
  2. Device Details -The basic device specific details page which presents details of the platform, manages firmware details and helps user to trigger a system reboot.

Image AddedImage Added

  • Device Details - Info - Lists down information about device like chipset, location, supported DRM systems, Firmware version etc.

Image Added

  • Device Details - Time Zone - This page allows the User to change the device TimeZone settings
    Dependent on System plugin feature support. Note: this does not change the device's time. Only the UI displayed time is affected. This configuration will be persisted.

Image Added Image Added

  • Device Details - Check for Updates - This page shows the current firmware version and also allows user to trigger a check for new firmware availability (download and install happens without UI involvement).

Image Added

  • Device Details - Reboot - Rebooting of the device within the UI.

Image Added

  • Factory Reset - This section allows the User to trigger a complete factory reset on the supported platform. This is followed by a device Reboot. It will reset the Alexa authentication as well on supported platform. Following are the Confirmation Screens

Image Added  Image Added

Live TV

Dependent on DTV Plugin. This feature enables user to interact with the Tuner configuration and related features such a as Live TV - scan, channel tuning, Guide population, its playback etc.

Image Added Image Added

The Scan section exposes various DVB tuner sub-systems; DVB-S, DVB-T and DVB-C based on respective stack integration support.

  •  New Feature: UIv4.X - DVB T/T2: Upcoming
  •  New Feature: UIv4.X - DVB-C: Upcoming

DVB-S/S2

This subpage exposes various DVB-S Tuner parameters such as Satellite selection, Frequency, Polarity, Symbol rate etc. Each section allows user to select respective predefined option or enter a custom value(for selected parameters).

Image Added Image Added Image Added Image Added Image Added Image Added Image Added Image Added Image Added Image Added

Based on the scan response, Guide screen shall get populated with actual live channel listing. User shall b e able to interact with the current available channels to initiate playback. From playback screen, user shall be able to change the channel also by bringing up the channel listing overlay.

Sample snapshots from DVB-S2 supported Device

Settings page tuner scan configurations and status:

Image Added  Image Added  Image Added

Guide population:

Image Added

Player:

Image Added

USB Media Support Feature

In this version you will get full access to USB Media device related features if the device has required support integrated. To name a few - viewing images, playing audio and video file, accessing internal folders of the USB Media device.

Note: only the multimedia files are exposed through UI which are supported by UVE Player.

When the USB is plugged in UI will show USB icon on Featured Content row as shown in below content. New design allows the user to disable and enable USB Media support feature from Privacy Setting.

Image Added

User can view the contents by pressing enter and he will see contents sorted based on Video, Audio, Photo, Folder.

Image Added Image Added

You can traverse using Left/Right/Up/Down and to access the content - press Enter. File format supported is limited only by UVE support and USBAccess plugin filter.

  • Video Content shall be accessible using the same UVE player. Seek bar gives timeline of video, Next and Previous icons will allow user to switch to respective content.

Image Added

  • Audio Content - UI shows a static image to indicate audio file is playing.

Image Added

  • Image Content - When viewing images Left/Right key presses will change images.

Image Added

  • Folder Content - The contents of USB will replace when the user traverse a particular directory.

Related RFC: 

Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.USB_AutoMount.Enable

Overlay Screen

Generic Settings Overlay

In this new release settings are added as a overlay through widgets where user shall be able to launch settings though hot keypress on remote. Settings Hot-Key is Settings_Shortcut (Reference: accelerator-home-ui/src/Config/Keymap.js).

Image AddedImage AddedImage AddedImage Added

Overlay Screen for Set Top Box Profile

New widget for overlay - to display notifications such as volume change etc.

Below snapshot shares how the overlay appears on various sections; At Home page, At Apps page and on a Playback screen.

Image Added Image Added Image Added

Overlay Screen for TV Profile

TV profile supported stack has overlay for Volume change. Adding to that; it adds additional overlay screens for changing TV related settings as detailed below.

Input Selection Overlay

This overlay allows the user to switch between available Input options while enjoying an Input option.

Supported Hotkey is Inputs_Shortcut (Reference: accelerator-home-ui/src/Config/Keymap.js).

Image Added

Picture Settings Overlay

Numeric value settings like brightness backlight, contrast etc can only be changed when picture mode is set to custom and color temperature is set to user defined.

Supported Hotkey is Picture_Setting_Shortcut (Reference: accelerator-home-ui/src/Config/Keymap.js).

Image Added

PartnerApp Support

  •  Note: This feature will not be supported when UI is in Firebolt mode of operation.

This feature allows the app developers to quickly test any app without modifying the Accelerator UI source code by adding details of the custom app in app manager registry file present in device(if not present; can be created one with valid json content inside it). After updating this restart the device or residentapp service to reload the Home page which shall display a new row at home page with the Icon image. A sample app manager registry configuration and resulting UI screen will be as given below.

Code Block
languagejs
root@HP44HRDK:~# cat /opt/appmanagerregistry.conf
{
  "applications":[
    {
      "displayName":"SampleApp",
      "uri":"https://keycode.info/",
      "applicationType":"HtmlApp",
      "url":"http://127.0.0.1:50050/lxresui/static/images/info.png"
    }
  ]
}

List of supported launch type for apps(applicationType)

Application TypeSample appmanagerregistry.confStatus
For HTMLApps (online)
{ "applications":[ { "displayName":"Bluetooth", "uri":"https://keycode.info/", "applicationType":"HtmlApp", "url":"http://127.0.0.1:50050/lxresui/static/images/info.png" } ] }
Functional
For Native/ResidentApps (offline)
{ "applications":[ { "displayName":"Native App", "uri":"http://localhost:50050/lxresui/static/loaderApp/index.html", "applicationType":"applciation/native", "url":"http://127.0.0.1:50050/lxresui/test-tube.png" } ] }
Broken
For LightningApps (online)
{ "applications":[ { "displayName":"Lightning App", "uri":"<hostedURL>", "applicationType":"LightningApp", "url":"http://127.0.0.1:50050/lxresui/static/icon.png" } ] }
Functional

Image Added

...

Key Mapping

The version 3 UI supports a configurable keymap. Below lists the general functionality and keycode of keys. Detailed information of the default keycode mappings can found here in Keymap.js.

KeyFunctionality
Keycode - 37,39,38,40 (Left/Right/Up/Down Key)To Move between the Contents Tiles
To Navigate between settings screen
Keycode - 13 (Enter Key)To launch app from App list
To launch Video Player
To Enable/Disable Features
To Play/Pause Video
Keycode - 36 (Home)To Navigate to home screen
To return back to home screen from other apps
Keycode - 116 (Power Key, F5)To Power off the device
Keycode - 174 (AudioVolumeDown Key)To decrease the volume of the STB
Keycode - 175 (AudioVolumeUp Key)To increase the volume of the STB
Keycode - 173 (AudioVolumeMute Key)To mute the STB
Keycode - 113 (Inputs_Shortcut, F2)To bring up the INPUT list overlay on TV profile device
Keycode - 114 (Picture_Setting_Shortcut, F3)To bring up the Picture Settings overlay on TV profile device
Keycode - 117 (Prime App Hotkey, F6)Dedicated key to launch Prime Video App
Keycode - 118 (Netflix App Hotkey, F7)Dedicated key to launch Netflix App
Keycode - 119 (YouTube App Hotkey, F8)Dedicated key to launch YouTube App
Keycode - 121 (Settings key, F10)To launch the Settings Overlay over other apps
Keycode - 120 (Guide_Shortcut, F9)To go to EPG screen
Keycode - 122 (AppCarousel, F11)To bring up the app carousel overlay on top of a child app

Customization (Theme and Logo)

One among the new feature in this version of UI is it allows to change the focus color, background color and logo if an operator wishes to by making necessary changes in config.js. Default config.js for reference is as below.

Code Block
languagejs
const themeOptions = {
    partnerOne: {
      hex: 0xfff58233,
      logo: 'RDKLogo.png',
      background: '0xff000000'
    },
    partnerTwo: {
      hex: 0xff91c848,
      logo: 'RDKLogo.png',
      background: '0xff000000'
    },
}

User can define an object inside theme options which need three parameters:

hex - Color accents on the UI. Default one is shade of orange.
logo - Logo at the splash and top left side on the home screen.
background - background color of the components.

User has to export a specific theme for it to apply through the UI and rebuild or re-gernerate the app bundle.

Code Block
languagejs
export var CONFIG = {
    theme: themeOptions['partnerOne'],
    language: localStorage.getItem('Language')!=null ? language[localStorage.getItem('Language')] : language['english']
}


...

Clone and Build Instructions

This section details about how to customize the current UI source code and develop further.

Follow the commands to run the application on you laptop.

  • Firstly install Lightning CLI
  • Type lng to confirm the installation. You will see the below output.

    Code Block
    $ npm install -g @lightningjs/cli
    $ lng
    Usage: index lightning-cli <command> [options]
    
    Options:
      -V, --version   output the version number
      -h, --help      display help for command
    
    Commands:
      create - Create a new Lightning App
      build - Build a local development version of the Lightning App
      serve - Start a local webserver and run a built Lightning App in a web browser
      watch - Watch for file changes and automatically rebuild the App
      dev - Build a local Lightning App, start a local webserver, run a built Lightning App in a web browser and watch for changes
      docs - Open the Lightning-SDK documentation
      dist [options] - Create a standalone distributable version of the Lightning App
      upload - Upload the Lightning App to the Metrological Back Office to be published in an App Store
      update - Update the Lightning-CLI to the latest version
      help [command] - display help for command
  • Clone repo

    Code Block
    $ git clone "https://code.rdkcentral.com/r/components/opensource/RDK_apps"
    $ cd RDK_apps
    $ git checkout rdk-next
    $ cd accelerator-home-ui
    Note: if you are not able to launch offline UI, add .env file inside accelerator-home-ui/ and add 'LNG_BUNDLER=esbuild' to force the bundler. Make sure you have esbuild dependency (npm install esbuild)
    $ npm install
  • Build

    Code Block
    $ lng build
  • Install as offline-app

    Code Block
    $ cd RDK_apps/accelerator-home-ui/dist/<es6>/Replace the dummy icons with original and then tar the entire contents to deploy on the offline UI location on device.

    Note: On a RDKV reference device; the lighttpd webserver is configured to load the offline UI from DOCROOT which includes the alias of the above dist file mapped for loading. Usually the dist directory contents are placed in the STB's /home/root/lxresui/

  • Host the app locally to test

    Code Block
    $ lng serve

    It will print the local url as : http://127.0.0.1:8080 which can be loaded as url to the residentApp.sh which is responsible for offline UI url loading on STB.

...

Reference

The UI uses localstorage feature of WebkitBrowser's ResidentApp configuration for storing the user preferences. PLUGIN_RESIDENT_APP_LOCALSTORAGE and PLUGIN_RESIDENT_APP_PERSISTENTPATHPOSTFIX variables need to be configured build-time itself.

Note: the localstorage directory shall be pointed to a persistent ReadWrite section on device.

Steps to make Accelerator Home UI v3 as Device UI

Packages that are needed for Accelerator UI v3 are from meta-rdk-video layer. They will get installed into the final rootfs with necessary startup and configuration scripts if the machine configuration is enabled with below mentioned DISTRO_FEATURES.

Code Block
$ DISTRO_FEATURES_append = " offline_apps build_rne "

API Documentation

This section details the necessary platform integration support required to ensure the smooth functionality of Navigator UI. Below are the details of RDKServices provided methods and notifications used in each UI feature or page implementation which shall aid debugging any functionality and integration or modification of the same. The Featured Video Player - UVE is used for Video-On-Demand sample streams.

  • App Lifecycle Management

FunctionalityPluginMethodEvents
Launching appsorg.rdk.RDKShelllaunch, launchApplication
Hide Apporg.rdk.RDKShellsetVisibility
Hot Plug and Unplug of USBorg.rdk.UsbAccess

OnUSBMountChanged

Dynamic listing of Appsorg.rdk.RDKShell, Controller, LISAgetAvailableTypes, status, getList
Suspening / Terminating Appsorg.rdk.RDKShellsuspend, destroy, kill
  • Network Configuration

FunctionalityPluginMethodEvents
Get Default Network Interfaceorg.rdk.NetworkgetDefaultInterface
Test Internet Connectionorg.rdk.NetworkisConnectedToInternet
Current IP settingsorg.rdk.NetworkgetIpSettings
Get Interfacesorg.rdk.NetworkgetInterfaces
Get Connected SSIDsorg.rdk.WifigetConnectedSSID
Set Default Interfaceorg.rdk.NetworksetDefaultInterface
Discover SSIDorg.rdk.WifistartScan
Stop Scanorg.rdk.WifistopScan
Connect to SSIDorg.rdk.Wificonnect
Disconnect SSIDorg.rdk.Wifidisconnect
Wifi Stateorg.rdk.WifigetCurrentState
Enable/Disable Wifiorg.rdk.WifisetEnabled
Paired SSIDsorg.rdk.WifigetPairedSSID
Save SSIDorg.rdk.WifisaveSSID
Activate Wifi PluginControlleractivate
Wifi state changeorg.rdk.Wifi
onWifiStateChanged
Errororg.rdk.Wifi
onError
Available SSIDorg.rdk.Wifi
onAvailableSSIDs
Wifi state changeorg.rdk.Wifi
onWifiStateChanged
  • Bluetooth

FunctionalityPluginMethodEvents
Activate BluetoothControlleractivate
Disable Bluetoothorg.rdk.Bluetoothdisable
Enable Bluetoothorg.rdk.Bluetoothenable
Start Scanorg.rdk.BluetoothstartScan
Stop Scanorg.rdk.BluetoothstopScan
Discovered Devicesorg.rdk.BluetoothgetDiscoveredDevices
Paired Deviceorg.rdk.BluetoothgetPairedDevice
Connected Deviceorg.rdk.BluetoothgetConnectedDevices
Connect to Bluetooth deviceorg.rdk.Bluetoothconnect
Disconnected to Bluetooth deviceorg.rdk.Bluetoothdisconnect
Unpair a deviceorg.rdk.Bluetoothunpair
Pair a deviceorg.rdk.Bluetoothpair
Discovered Deviceorg.rdk.Bluetooth
onDiscoveredDevice
Pairing Requestorg.rdk.Bluetooth
onPairingRequest
Connection Changeorg.rdk.Bluetooth
onConnectionChange
Discovery Completeorg.rdk.Bluetooth
onDiscoveryCompleted
Discovery Startedorg.rdk.Bluetooth
onDiscoveryStarted
Request Failedorg.rdk.Bluetooth
onRequestFailed
Remote Control Auto-Pairing

org.rdk.RemoteControl

startPairing


Remote Control Statusorg.rdk.RemoteControlgetNetStatus
Remote Control Statusorg.rdk.RemoteControl
onStatus
  • Video

FunctionalityPluginMethodEvents
Enable Display Setting pluginControllerorg.rdk.DisplaySettings
Get Resolutionorg.rdk.DisplaySettingsgetCurrentResolution
Get HDCP Statusorg.rdk.HdcpProfilegetHDCPStatusonDisplayConnectionChanged, 
Get HRD SettingsDisplayInfohdrsetting
Supported Resolutionsorg.rdk.DisplaySettingsgetSupportedResolutions
Set Resolutionsorg.rdk.DisplaySettingssetCurrentResolutionresolutionPreChange, resolutionChanged
  • Audio

FunctionalityPluginMethodEvents
Sound modeorg.rdk.DisplaySettingsgetSoundMode
Supported Sound Modesorg.rdk.DisplaySettingsgetSupportedAudioModes
Set Sound Modeorg.rdk.DisplaySettingssetSoundMode
  • Sleep Timer

FunctionalityPluginMethodEvents
Set Power Stateorg.rdk.SystemsetPowerState
Inactivityorg.rdk.RDKShell
onUserInactivity
Inactivity Intervalorg.rdk.RDKShellsetInactivityInterval
Enable/Disable Inactivity Reportingorg.rdk.RDKShellenableInactivityReporting
  •  Screen Saver

Functionality

Plugin

Method

Events

Inactivity

org.rdk.RDKShell

onUserInactivity

onUserInactivity

  • Energy Saver

FunctionalityPluginMethodEvents
Get preferred Standby Modeorg.rdk.SystemgetPreferredStandbyMode
Set preferred Standby Modeorg.rdk.SystemsetPreferredStandbyMode
  • Privacy Settings - USB

FunctionalityPluginMethodEvents
Activate USB PluginController (org.rdk.UsbAccess)activate
Deactivate USB PluginController (org.rdk.UsbAccess)deactivate
  • Privacy Settings - Local Device Discovery

FunctionalityPluginMethodEvents
Activate Xcast PluginController (org.rdk.Xcast)activate
Deactivate Xcast Pluginorg.rdk.XcastsetEnabled
  • CEC Activation

FunctionalityPluginMethodEvents
Activate CEC PluginController (org.rdk.HdmiCec_2)activate
Deactivate CEC PluginController (org.rdk.HdmiCec_2)deactivate
Check Enabled/Disabledorg.rdk.HdmiCec_2getEnabled
Set Enabled/Disabledorg.rdk.HdmiCec_2setEnabled
PerformOtpActionorg.rdk.HdmiCec_2performOTPAction
For Active HDMI port selected by Sinkorg.rdk.HdmiCec_2
onActiveSourceStatusUpdated
  • Device Screen

FunctionalityPluginMethodEvents
Serial Numberorg.rdk.SystemgetSerialNumber
System Versionorg.rdk.SystemgetSystemVersions
Activate OCDM PluginController (OCDM)activate
DRMs infoOCDMdrms
Location infoLocationSynclocation
Device InfoDeviceIdentificationdeviceidentification
Location changeLocationSync
locationchange
Firmware Stateorg.rdk.SystemgetFirmwareUpdateState
Downloaded Firmware Infoorg.rdk.SystemgetDownloadedFirmwareInfo
Get Firmware Download Percentageorg.rdk.SystemgetFirmwareDownloadPercent
Update Firmwareorg.rdk.SystemupdateFirmware
Reboot deviceorg.rdk.Systemreboot
  • Global APIs

FunctionalityPluginMethodEvents
Deactivate apporg.rdk.RDKShelldestroy
Suspend apporg.rdk.RDKShellsuspend
Focus Apporg.rdk.RDKShellsetFocus
Move app to top of zorderorg.rdk.RDKShellmoveToFront
State change of application eventController
statechange
Add key interceptsorg.rdk.RDKShelladdKeyIntercept
Install Downloadable App bundleLISAinstall
operationStatus
To populate & manage the installed Downloaded App bundlesLISA
getStorageDetails, getList

Uninstall Downloadable App bundleLISAuninstall
Launch/resume Downloaded App bundleorg.rdk.RDKShelllaunchApplication, 
resumeApplication

Suspend/Kill Downloaded App bundleorg.rdk.RDKShellkill
User Preferences such as current languageorg.rdk.UserPreferencessetUILanguage
  • Xcast Feature

FunctionalityPluginMethodEvents
Activate Xcast PluginController (org.rdk.Xcast)activate
Deactivate Xcast PluginController (org.rdk.Xcast)deactivate
Enable/Disable Xcast Statusorg.rdk.XcastgetEnabled
Set Enable/Disable Xcast Statusorg.rdk.XcastsetEnabled
Notify Application Stateorg.rdk.XcastonApplicationStateChanged
Launch Request eventorg.rdk.Xcast
onApplicationLaunchRequest
Hide Request eventorg.rdk.Xcast
onApplicationHideRequest
Resume Request eventorg.rdk.Xcast
onApplicationResumeRequest
Stop Request eventorg.rdk.Xcast
onApplicationStopRequest
State Request eventorg.rdk.Xcast
onApplicationStateRequest
  • USB Screen

FunctionalityPluginMethodEvents
Creates a symbolic linkorg.rdk.UsbAccesscreateLink
Clears or removes the symbolic linkorg.rdk.UsbAccessclearLink
Gets a list of files and foldersorg.rdk.UsbAccessgetFileList
Gets a list of files and foldersorg.rdk.UsbAccessgetFileList
Triggered when a USB drive is mounted or unmountedorg.rdk.UsbAccess
onUSBMountChanged
  • App Catalog

FunctionalityPluginMethodEvent
Get App Catalog Details, list of appsLISAgetMetadata, getList
Install/uninstall AppLISAinstall, uninstall
Show the progress of installation / uninstallationLISAgetProgress

operationStatus

  • Live TV

FunctionalityPluginMethodEvent
Get available countriesDTVnumberOfCountries
Get list of countryDTVcountryList
Get list of services(channels with name, uri and other details)DTVserviceList@dvbs
Get list of available satellitesDTVserviceList@dvbs
Initiates a service searchDTVstartServiceSearch
Get available servicesDTVnumberOfServices
Get schedule for given channelDTVscheduleEvents@PARAMS
Get current and next event details for channelDTVnowNextEvents@PARAMS
  • Voice Remote Control

Functionality

Plugin

Method

Events

Details of Voice Remote Control

org.rdk.RemoteControl

getNetStatus



  • HDMI Input

Functionality

Plugin

Method

Events

Returns an array of available HDMI Input ports

org.rdk.HdmiInput

getHDMIInputDevices


Provides access to the current configured video output port resolution.

PlayerInfo.1.resolution (read only )



Activates the specified HDMI Input port as the primary video source.

org.rdk.HdmiInput

startHdmiInput


Deactivates the HDMI Input port currently selected as the primary video source.

org.rdk.HdmiInput

stopHdmiInput


Triggered whenever the status changes for an HDMI Input.

org.rdk.HdmiInput


onInputStatusChanged

Triggered whenever a new HDMI device is connected to an HDMI Input.

org.rdk.HdmiInput


onDevicesChanged

Triggered whenever the signal status changes for an HDMI Input.

org.rdk.HdmiInput


onSignalChanged

  • Picture Settings

Functionality

Plugin

Method

Events

Get/Set Supported Picture Modes

org.rdk.tv.ControlSettings

setSupportedPictureModes / getSupportedPictureModes


Get/Set Picture Modes

org.rdk.tv.ControlSettings

setPictureMode / getPictureMode


Get/Set Brightness

org.rdk.tv.ControlSettings

setBrightness / getBrightness


Get/Set Contrast

org.rdk.tv.ControlSettings

setContrast / getContrast


Get/Set Sharpness

org.rdk.tv.ControlSettings

setSharpness /getSharpness


Get/Set Color Temperature

org.rdk.tv.ControlSettings

setColorTemperature /getColorTemperature


Get/Set Saturation

org.rdk.tv.ControlSettings

setSaturation /getSaturation


Get/Set Backlight

org.rdk.tv.ControlSettings

setBacklight /getBacklight


Reset Values

org.rdk.tv.ControlSettings

resetBrightness / resetContrast / resetSharpness / resetColorTemperature / resetSaturation / resetBacklight


  • TimeZone

Functionality

Plugin

Method

Events

Gets the available timezones from the system’s time zone database

org.rdk.System

getTimeZones


Get the configured time zone from the file

org.rdk.System

getTimeZoneDST


Sets the system time zone

org.rdk.System

setTimeZoneDST


  • Volume

Functionality

Plugin

Method

Events

Returns connected audio output ports

org.rdk.DisplaySettings

getConnectedAudioPorts


Returns the current volume level

org.rdk.DisplaySettings

getVolumeLevel


Returns whether audio is muted on a given port

org.rdk.DisplaySettings

getMuted


Adjusts the Volume Level on a specific port

org.rdk.DisplaySettings

setVolumeLevel


Mutes or unmutes audio on a specific port

org.rdk.DisplaySettings

setMuted


  • Voice

Functionality

Plugin

Method

Events

To manage VoiceSDK status and responseorg.rdk.VoiceControl

onServerMessage
To provide visual feedback matching audio capture stateorg.rdk.VoiceControl
onSessionBegin
To provide visual feedback matching audio capture stateorg.rdk.VoiceControl
onStreamBegin
To provide visual feedback matching audio capture stateorg.rdk.VoiceControl
onStreamEnd




...

How To...

The following section details about few debug steps to confirm some generic issues and doubts when working with an RDK-V stack and this UI.

How to confirm platform key press events are reaching UI

Platform keymap could be differing from the UI keymap which could result in unexpected behaviors or UI not responding to key press events.

In general; UI receives the key press events through webkit browser when user interacts with STB using RCU or connected keyboard.

How to check the browser is able to receive the key events and which keyCode its being received from platform:

  1. Using Controller UI(a.k.a. ThunderUI); activate HtmlApp and load https://keycode.info/ as url. Controller UI is only available on a development build RDK-V image and it can be accessed from a local network connected computer where RDK-V device is connected. Note down the RDK-V deviceIP (Eg: let it be 192.168.1.30). Then from the same network connected computer; open any web-browser and type in deviceIP:9998 in the address bar.
  2. Press any keys and confirm the keyCode being reported by https://keycode.info/.

How to check UI is able to receive the key events and which keyCode its being received at UI:

  1. Using Controller UI(a.k.a. ThunderUI) from any local network connected computer; open ResidentApp's webinspector and go to console tab.
  2. While pressing any key; corresponding keyCode will be printed at ResidentApp's webinspector console

How to debug UI not responding to key press events

  1. Verify that UI is able to receive the key events
  2. Verify the received key event is matching with UI specific keymap detailed at section "Key Mapping".

If the above two are not working or matching; please verify the platform integration.

If UI is not responding for the received key event and is matching with UI defined "Key Mapping"; please create a UI bug ticket or reach out to us. We'll be happy to help and resolve it for you.

Image Removed

Key Mapping

The version 3 UI supports a configurable keymap. Below lists the general functionality and keycode of keys. Detailed information of the default keycode mappings can found here.

...

Customization (Theme and Logo)

One among the new feature in this version of UI is it allows to change the focus color, background color and logo if an operator wishes to by making necessary changes in config.js. Default config.js for reference is as below.

Code Block
languagejs
const themeOptions = {
    partnerOne: {
      hex: 0xfff58233,
      logo: 'RDKLogo.png',
      background: '0xff000000'
    },
    partnerTwo: {
      hex: 0xff91c848,
      logo: 'RDKLogo.png',
      background: '0xff000000'
    },
}

User can define an object inside theme options which need three parameters:

hex - Color accents on the UI. Default one is shade of orange.
logo - Logo at the splash and top left side on the home screen.
background - background color of the components.

User has to export a specific theme for it to apply through the UI.

Code Block
languagejs
export var CONFIG = {
    theme: themeOptions['partnerOne'],
    language: localStorage.getItem('Language')!=null ? language[localStorage.getItem('Language')] : language['english']
}

Clone and Build Instructions

This section details about how to customize the current UI source code and develop further.

Follow the commands to run the application on you laptop.

  • Firstly install Lightning CLI
  • Type lng to confirm the installation. You will see the below output.

    Code Block
    $ npm install -g @lightningjs/cli
    $ lng
    Usage: index lightning-cli <command> [options]
    
    Options:
      -V, --version   output the version number
      -h, --help      display help for command
    
    Commands:
      create - Create a new Lightning App
      build - Build a local development version of the Lightning App
      serve - Start a local webserver and run a built Lightning App in a web browser
      watch - Watch for file changes and automatically rebuild the App
      dev - Build a local Lightning App, start a local webserver, run a built Lightning App in a web browser and watch for changes
      docs - Open the Lightning-SDK documentation
      dist [options] - Create a standalone distributable version of the Lightning App
      upload - Upload the Lightning App to the Metrological Back Office to be published in an App Store
      update - Update the Lightning-CLI to the latest version
      help [command] - display help for command
  • Clone repo

    Code Block
    $ git clone "https://code.rdkcentral.com/r/components/opensource/RDK_apps"
    $ cd RDK_apps
    $ git checkout rdk-next
    $ cd accelerator-home-ui
    Note: if you are not able to launch offline UI, add .env file inside accelerator-home-ui/ and add 'LNG_BUNDLER=esbuild' to force the bundler. Make sure you have esbuild dependency (npm install esbuild)
    $ npm install
  • Build

    Code Block
    $ lng build
  • Install as offline-app

    Code Block
    $ cd RDK_apps/accelerator-home-ui/dist/<es6>/Replace the dummy icons with original and then tar the entire contents to deploy on the offline UI location on device.

    Note: On a RDKV reference device; the lighttpd webserver is configured to load the offline UI from DOCROOT which includes the alias of the above dist file mapped for loading. Usually the dist directory contents are placed in the STB's /home/root/lxresui/

  • Host the app locally to test

    Code Block
    $ lng serve

    It will print the local url as : http://127.0.0.1:8080 which can be loaded as url to the residentApp.sh which is responsible for offline UI url loading on STB.

Reference

The UI uses localstorage feature of WebkitBrowser's ResidentApp configuration for storing the user preferences. PLUGIN_RESIDENT_APP_LOCALSTORAGE and PLUGIN_RESIDENT_APP_PERSISTENTPATHPOSTFIX variables need to be configured build-time itself.

Note: the localstorage directory shall be pointed to a persistent ReadWrite section on device.

Steps to make Accelerator Home UI v3 as Device UI

Packages that are needed for Accelerator UI v3 are from meta-rdk-video layer. They will get installed into the final rootfs with necessary startup and configuration scripts if the machine configuration is enabled with below mentioned DISTRO_FEATURES.

Code Block
$ DISTRO_FEATURES_append = " offline_apps build_rne "

Performance Matrix

This section details the average loading time, CPU and memory utilization for this version of the UI alone. It has been measured by loading the offline version of the UI on a pre-activated webkitbrowser instance.

TBD

...

Web Version

To experience UIv3.X on a firebolt compliant RDK stack, below url can be used.

Current Stable Version(3.7): https://apps.rdkcentral.com/rdk-apps/accelerator-home-ui/index.html#splash

Previous Stable Version(3.6): https://apps.rdkcentral.com/rdk-apps/device-ui/index.html#splash 

API Documentation

This section details the necessary platform integration support required to ensure the smooth functionality of UI version 3. Below are the details of RDKServices provided methods and notifications used in each UI feature or page implementation which shall aid debugging any functionality and integration or modification of the same. The Featured Video Player - UVE is used for Video-On-Demand sample streams.

  • Home Screen

...

OnUSBMountChanged

  • Network Configuration

...

  • Bluetooth

...

org.rdk.RemoteControl

...

startPairing

  • Video

...

  • Audio

...

  • Sleep Timer

...

  • Energy Saver

...

  • Privacy Settings - USB

...

  • Privacy Settings - Local Device Discovery

...

  • CEC Activation

...

  • Device Screen

...

  • Global APIs

...

  • Xcast Feature

...

  • USB Screen

...

  • Live TV

...

  • HDMI Input

...

Functionality

...

Plugin

...

Method

...

Events

...

Returns an array of available HDMI Input ports

...

org.rdk.HdmiInput

...

getHDMIInputDevices

...

Provides access to the current configured video output port resolution.

...

PlayerInfo.1.resolution (read only )

...

Activates the specified HDMI Input port as the primary video source.

...

org.rdk.HdmiInput

...

startHdmiInput

...

Deactivates the HDMI Input port currently selected as the primary video source.

...

org.rdk.HdmiInput

...

stopHdmiInput

...

Triggered whenever the status changes for an HDMI Input.

...

org.rdk.HdmiInput

...

onInputStatusChanged

...

Triggered whenever a new HDMI device is connected to an HDMI Input.

...

org.rdk.HdmiInput

...

onDevicesChanged

...

Triggered whenever the signal status changes for an HDMI Input.

...

org.rdk.HdmiInput

...

onSignalChanged

  • Picture Settings

...

Functionality

...

Plugin

...

Method

...

Events

...

Get/Set Supported Picture Modes

...

org.rdk.tv.ControlSettings

...

setSupportedPictureModes / getSupportedPictureModes

...

Get/Set Picture Modes

...

org.rdk.tv.ControlSettings

...

setPictureMode / getPictureMode

...

Get/Set Brightness

...

org.rdk.tv.ControlSettings

...

setBrightness / getBrightness

...

Get/Set Contrast

...

org.rdk.tv.ControlSettings

...

setContrast / getContrast

...

Get/Set Sharpness

...

org.rdk.tv.ControlSettings

...

setSharpness /getSharpness

...

Get/Set Color Temperature

...

org.rdk.tv.ControlSettings

...

setColorTemperature /getColorTemperature

...

Get/Set Saturation

...

org.rdk.tv.ControlSettings

...

setSaturation /getSaturation

...

Get/Set Backlight

...

org.rdk.tv.ControlSettings

...

setBacklight /getBacklight

...

Reset Values

...

org.rdk.tv.ControlSettings

...

resetBrightness / resetContrast / resetSharpness / resetColorTemperature / resetSaturation / resetBacklight

  • TimeZone

...

Functionality

...

Plugin

...

Method

...

Events

...

Gets the available timezones from the system’s time zone database

...

org.rdk.System

...

getTimeZones

...

Get the configured time zone from the file

...

org.rdk.System

...

getTimeZoneDST

...

Sets the system time zone

...

org.rdk.System

...

setTimeZoneDST

  • Volume

...

Functionality

...

Plugin

...

Method

...

Events

...

Returns connected audio output ports

...

org.rdk.DisplaySettings

...

getConnectedAudioPorts

...

Returns the current volume level

...

org.rdk.DisplaySettings

...

getVolumeLevel

...

Returns whether audio is muted on a given port

...

org.rdk.DisplaySettings

...

getMuted

...

Adjusts the Volume Level on a specific port

...

org.rdk.DisplaySettings

...

setVolumeLevel

...

Mutes or unmutes audio on a specific port

...

org.rdk.DisplaySettings

...