Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion accelerator-home-ui/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@
"log": true,
"enableAppSuspended": true,
"showVersion": false,
"version": "6.0.21"
"version": "6.0.24"
}
}
88 changes: 50 additions & 38 deletions accelerator-home-ui/src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ export default class App extends Router.App {
static language() {
return {
file: Utils.asset('language/language-file.json'),
language: ("ResidentApp" === GLOBALS.selfClientName ? CONFIG.language : Localization.language()) || 'en'
language: ("com.rdkcentral.refui" === GLOBALS.selfclientAppName ? CONFIG.language : Localization.language()) || 'en'
}
}

Expand Down Expand Up @@ -2124,12 +2124,7 @@ export default class App extends Router.App {
}

_updateLanguageToDefault() {
if ("ResidentApp" === GLOBALS.selfClientName) {
if (availableLanguageCodes[Language.get()].length) {
appApi.setUILanguage(availableLanguageCodes[Language.get()])
localStorage.setItem('Language', Language.get())
}
} else {
if ("FireboltMainApp-refui" === GLOBALS.selfclientAppName) {
FireBoltApi.get().localization.language().then(lang => {
if (lang) {
FireBoltApi.get().localization.language(lang).then(() => {
Expand All @@ -2138,6 +2133,11 @@ export default class App extends Router.App {
localStorage.setItem('Language', lang)
}
})
} else {
if (availableLanguageCodes[Language.get()].length) {
appApi.setUILanguage(availableLanguageCodes[Language.get()])
localStorage.setItem('Language', Language.get())
}
}
}

Expand Down Expand Up @@ -2727,44 +2727,54 @@ export default class App extends Router.App {
for (let i = 0; i < audioport.connectedAudioPorts.length && !audioport.connectedAudioPorts[i].startsWith("SPDIF"); i++) {
if ((GLOBALS.deviceType == "IpTv" && audioport.connectedAudioPorts[i].startsWith("SPEAKER")) || (GLOBALS.deviceType != "IpTv" && audioport.connectedAudioPorts[i].startsWith("HDMI"))) {
appApi.getVolumeLevel(audioport.connectedAudioPorts[i]).then(volres => {
this.LOG("getVolumeLevel[" + JSON.stringify(audioport.connectedAudioPorts[i]) + "] is:" + JSON.stringify(parseInt(volres.volumeLevel)))
if ((parseInt(volres.volumeLevel) >= 0) || (parseInt(volres.volumeLevel) <= 100)) {
VolumePayload.msgPayload.event.payload.volume = parseInt(volres.volumeLevel) + payload.volume
this.LOG("volumepayload" + JSON.stringify(VolumePayload.msgPayload.event.payload.volume))
if (VolumePayload.msgPayload.event.payload.volume < 0) {
VolumePayload.msgPayload.event.payload.volume = 0
} else if (VolumePayload.msgPayload.event.payload.volume > 100) {
VolumePayload.msgPayload.event.payload.volume = 100
}
const currentVolume = Number.parseInt(volres.volumeLevel, 10)
const volumeDelta = Number.parseInt(payload.volume, 10)
this.LOG("getVolumeLevel[" + JSON.stringify(audioport.connectedAudioPorts[i]) + "] is:" + JSON.stringify(currentVolume))
if (Number.isNaN(currentVolume) || Number.isNaN(volumeDelta)) {
this.ERR("AdjustVolume invalid volume value current=" + JSON.stringify(volres.volumeLevel) + " delta=" + JSON.stringify(payload.volume))
return;
}
let targetVolume = currentVolume + volumeDelta
if (targetVolume < 0) {
targetVolume = 0
} else if (targetVolume > 100) {
targetVolume = 100
}
appApi.setVolumeLevel(audioport.connectedAudioPorts[i], VolumePayload.msgPayload.event.payload.volume).then(() => {
let volumeIncremented = parseInt(volres.volumeLevel) < VolumePayload.msgPayload.event.payload.volume ? true : false
VolumePayload.msgPayload.event.payload.volume = targetVolume
this.LOG("volumepayload" + JSON.stringify(targetVolume))
appApi.setVolumeLevel(audioport.connectedAudioPorts[i], targetVolume).then(() => {
let volumeIncremented = currentVolume < targetVolume ? true : false
if (volumeIncremented && VolumePayload.msgPayload.event.payload.muted) {
VolumePayload.msgPayload.event.payload.muted = false
}
if (GLOBALS.topmostApp === GLOBALS.selfClientName) {
this.tag("Volume").onVolumeChanged(volumeIncremented);
} else {
if (Router.getActiveHash() === "applauncher") {
RDKShellApis.moveToFront(GLOBALS.selfClientName)
RDKShellApis.setVisibility(GLOBALS.selfClientName, true)
this.tag("Volume").onVolumeChanged(volumeIncremented);
} else {
RDKShellApis.moveToFront(GLOBALS.selfClientName)
RDKShellApis.setVisibility(GLOBALS.selfClientName, true)
Router.navigate("applauncher");
this.tag("Volume").onVolumeChanged(volumeIncremented);
}
}
}).catch(err => {
this.ERR('AdjustVolume setVolumeLevel error:' + JSON.stringify(err))
});
}).catch(err => {
this.ERR('AdjustVolume getVolumeLevel error:' + JSON.stringify(err))
});
}
}
});
}
if (header.name === "SetVolume") {
VolumePayload.msgPayload.event.header.messageId = header.messageId
VolumePayload.msgPayload.event.payload.volume = payload.volume
const requestedVolume = Number.parseInt(payload.volume, 10)
if (Number.isNaN(requestedVolume)) {
this.ERR("SetVolume invalid payload.volume: " + JSON.stringify(payload.volume))
return;
}
VolumePayload.msgPayload.event.payload.volume = requestedVolume
this.LOG("adjust volume" + JSON.stringify(VolumePayload))
this.LOG("checkvolume" + JSON.stringify(VolumePayload.msgPayload.event.payload.volume))
if (VolumePayload.msgPayload.event.payload.volume > 100) {
Expand All @@ -2776,28 +2786,30 @@ export default class App extends Router.App {
for (let i = 0; i < audioport.connectedAudioPorts.length && !audioport.connectedAudioPorts[i].startsWith("SPDIF"); i++) {
if ((GLOBALS.deviceType == "IpTv" && audioport.connectedAudioPorts[i].startsWith("SPEAKER")) ||
(GLOBALS.deviceType != "IpTv" && audioport.connectedAudioPorts[i].startsWith("HDMI"))) {
let volumeIncremented
appApi.getVolumeLevel(audioport.connectedAudioPorts[i]).then(volres => {
volumeIncremented = parseInt(volres.volumeLevel) < VolumePayload.msgPayload.event.payload.volume ? true : false
const currentVolume = Number.parseInt(volres.volumeLevel, 10)
const volumeIncremented = Number.isNaN(currentVolume) ? false : (currentVolume < VolumePayload.msgPayload.event.payload.volume ? true : false)
if (volumeIncremented && VolumePayload.msgPayload.event.payload.muted) {
VolumePayload.msgPayload.event.payload.muted = false
}
})
appApi.setVolumeLevel(audioport.connectedAudioPorts[i], VolumePayload.msgPayload.event.payload.volume).then(() => {
if (GLOBALS.topmostApp === GLOBALS.selfClientName) {
this.tag("Volume").onVolumeChanged(volumeIncremented);
} else {
if (Router.getActiveHash() === "applauncher") {
RDKShellApis.moveToFront(GLOBALS.selfClientName)
RDKShellApis.setVisibility(GLOBALS.selfClientName, true)
return appApi.setVolumeLevel(audioport.connectedAudioPorts[i], VolumePayload.msgPayload.event.payload.volume).then(() => {
if (GLOBALS.topmostApp === GLOBALS.selfClientName) {
this.tag("Volume").onVolumeChanged(volumeIncremented);
} else {
RDKShellApis.moveToFront(GLOBALS.selfClientName)
RDKShellApis.setVisibility(GLOBALS.selfClientName, true)
Router.navigate("applauncher");
this.tag("Volume").onVolumeChanged(volumeIncremented);
if (Router.getActiveHash() === "applauncher") {
RDKShellApis.moveToFront(GLOBALS.selfClientName)
RDKShellApis.setVisibility(GLOBALS.selfClientName, true)
this.tag("Volume").onVolumeChanged(volumeIncremented);
} else {
RDKShellApis.moveToFront(GLOBALS.selfClientName)
RDKShellApis.setVisibility(GLOBALS.selfClientName, true)
Router.navigate("applauncher");
this.tag("Volume").onVolumeChanged(volumeIncremented);
}
}
}
})
}).catch(err => {
this.ERR('SetVolume error:' + JSON.stringify(err))
});
}
}
Expand Down
20 changes: 14 additions & 6 deletions accelerator-home-ui/src/api/AppApi.js
Original file line number Diff line number Diff line change
Expand Up @@ -1088,7 +1088,7 @@ export default class AppApi {

if (appInstanceId) {
this.LOG('Using appInstanceId: ' + appInstanceId + ' for targetAppId: ' + targetAppId);

// Only setFocus when making the app visible
if (visible) {
await RDKWindowManager.get().setFocus(appInstanceId).then(() => {
Expand Down Expand Up @@ -1604,7 +1604,7 @@ export default class AppApi {
})
})
}

getRFCConfig(rfcParamsList) {
return new Promise((resolve, reject) => {
thunder.call('org.rdk.System', 'getRFCConfig',{"rfcList":[rfcParamsList]}).then(result => {
Expand Down Expand Up @@ -1696,10 +1696,18 @@ export default class AppApi {

setVolumeLevel(port, volume) {
return new Promise((resolve) => {
const parsedVolume = Number.parseInt(volume, 10)
if (Number.isNaN(parsedVolume)) {
this.ERR('AppAPI setVolumeLevel invalid volume:', JSON.stringify(volume))
resolve(false)
return
}
const clampedVolume = Math.min(100, Math.max(0, parsedVolume))

thunder
.call('org.rdk.DisplaySettings', 'setVolumeLevel', {
audioPort: port,
volumeLevel: volume,
volumeLevel: clampedVolume,
})
.then(result => {
this.LOG("AppAPI setVolumeLevel :", JSON.stringify(result))
Expand Down Expand Up @@ -1927,13 +1935,13 @@ export default class AppApi {
});
})
}

setUILanguage(updatedLanguage) {
return UserSettingsApi.get().setPresentationLanguage(updatedLanguage)
}

getUILanguage() {
return UserSettingsApi.get().getPresentationLanguage(updatedLanguage)
return UserSettingsApi.get().getPresentationLanguage()
}

deeplinkToApp(app = undefined, payload = undefined, launchLocation = "voice", namespace = undefined) {
Expand Down
6 changes: 6 additions & 0 deletions accelerator-home-ui/src/overlays/UninstallConfirmation.js
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,9 @@ export default class UninstallConfirmation extends Lightning.Component {
_handleRight() {
this._setState("Cancel");
}
_handleLeft() { /* do nothing - already at leftmost button */ }
_handleUp() { /* do nothing - prevent focus escape */ }
_handleDown() { /* do nothing - prevent focus escape */ }
_handleBack() {
this.fireAncestors("$cancelUninstall");
}
Expand Down Expand Up @@ -255,6 +258,9 @@ export default class UninstallConfirmation extends Lightning.Component {
_handleLeft() {
this._setState("Confirm");
}
_handleRight() { /* do nothing - already at rightmost button */ }
_handleUp() { /* do nothing - prevent focus escape */ }
_handleDown() { /* do nothing - prevent focus escape */ }
_handleBack() {
this.fireAncestors("$cancelUninstall");
}
Expand Down
51 changes: 37 additions & 14 deletions accelerator-home-ui/src/tvOverlay/components/Volume.js
Original file line number Diff line number Diff line change
Expand Up @@ -159,14 +159,25 @@ export default class Volume extends Lightning.Component {
this._updateText(this.volume)
}

setVolume = async (val) => {
let audioport = await this.getAudioPorts()
for (let i = 0; i < audioport.length; i++) {
if ((GLOBALS.deviceType == "IpTv" && audioport[i].startsWith("SPEAKER")) ||
(GLOBALS.deviceType != "IpTv" && audioport[i].startsWith("HDMI"))) {
await this.appApi.setVolumeLevel(audioport[i], val)
}
setVolume = (val) => {
const safeVolume = Number.parseInt(val, 10);
if (Number.isNaN(safeVolume)) {
this.WARN('Volume setVolume called with invalid value:' + JSON.stringify(val));
return false;
}

this.getAudioPorts()
.then(audioport => {
for (let i = 0; i < audioport.length; i++) {
if ((GLOBALS.deviceType == "IpTv" && audioport[i].startsWith("SPEAKER")) ||
(GLOBALS.deviceType != "IpTv" && audioport[i].startsWith("HDMI"))) {
this.appApi.setVolumeLevel(audioport[i], safeVolume)
}
}
})
.catch(err => {
this.ERR('Volume setVolume getConnectedAudioPorts error:' + JSON.stringify(err, null, 3))
})
return true;
}

Expand Down Expand Up @@ -230,7 +241,7 @@ export default class Volume extends Lightning.Component {
this.appApi.getConnectedAudioPorts().then(res => {
resolve(res.connectedAudioPorts)
}).catch(err => {
this.ERR('Volume getConnectedAudioPorts error:' + JSON.stringify(err, 3, null))
this.ERR('Volume getConnectedAudioPorts error:' + JSON.stringify(err, null, 3))
reject(false)
})
})
Expand All @@ -243,30 +254,42 @@ export default class Volume extends Lightning.Component {
this._updateIcon(this.mute);
resolve(true)
}).catch(err => {
this.ERR('Volume updateIcon error:' + JSON.stringify(err, 3, null))
this.ERR('Volume updateIcon error:' + JSON.stringify(err, null, 3))
reject(false)
});
})
}

getVolume() {
return new Promise(async (resolve, reject) => {
let audioport = await this.getAudioPorts()
let audioport = []
try {
audioport = await this.getAudioPorts()
} catch (err) {
this.ERR('Volume getAudioPorts error:' + JSON.stringify(err, null, 3))
resolve(0)
return
}
/* Returns an array. */
for (let i = 0; i < audioport.length; i++) {
if ((GLOBALS.deviceType == "IpTv" && audioport[i].startsWith("SPEAKER")) ||
(GLOBALS.deviceType != "IpTv" && audioport[i].startsWith("HDMI"))) {
this.appApi.getVolumeLevel(audioport[i]).then(async res1 => {
await this.updateIcon(audioport[i])
if (res1) {
resolve(parseInt(res1.volumeLevel));
if (res1 && res1.success) {
const level = Number.parseInt(res1.volumeLevel, 10);
resolve(Number.isNaN(level) ? 0 : level);
} else {
resolve(0);
}
}).catch(err => {
this.ERR('Volume getVolumeLevel error:' + JSON.stringify(err, 3, null))
reject(false)
this.ERR('Volume getVolumeLevel error:' + JSON.stringify(err, null, 3))
resolve(0)
})
return;
}
}
resolve(0);
})
}
}
2 changes: 1 addition & 1 deletion accelerator-home-ui/src/views/AppStore.js
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ export default class AppStore extends Lightning.Component {
Router.focusWidget('Menu')
}
_handleBack() {
Router.focusWidget('Menu');
Router.back();
}

pageTransition() {
Expand Down
4 changes: 2 additions & 2 deletions bolt/package-configs/com.rdkcentral.refui.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "com.rdkcentral.refui",
"version": "6.0.21",
"versionName": "6.0.21",
"version": "6.0.24",
"versionName": "6.0.24",
"name": "RDK Ref UI Home Screen",
"packageType": "application",
"entryPoint": "--lightning --dev file:///usr/share/refui/index.html",
Expand Down