From: Scott Murray Date: Sun, 29 Dec 2019 22:36:25 +0000 (-0500) Subject: Display Alexa specific chrome when it is used X-Git-Tag: 8.99.5~2 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=apps%2Fhomescreen.git;a=commitdiff_plain;h=b57a3197dad42bdd7a72266aaa160341573b0627 Display Alexa specific chrome when it is used Add logic to key off the voiceagent name and display Alexa specific chrome (the required Alexa icon) when it is used. Bug-AGL: SPEC-3075 Signed-off-by: Scott Murray Change-Id: I4bacad2e3906ee1e8221ed3e6bfe92b340d65aab --- diff --git a/homescreen/qml/SpeechChrome.qml b/homescreen/qml/SpeechChrome.qml index ab46cb6..123928c 100644 --- a/homescreen/qml/SpeechChrome.qml +++ b/homescreen/qml/SpeechChrome.qml @@ -7,6 +7,7 @@ Item { clip: true property bool agentPresent: speechChromeController.agentPresent + property string agentName: speechChromeController.agentName visible: agentPresent @@ -33,7 +34,7 @@ Item { anchors.left: parent.left anchors.leftMargin: parent.width / 128 anchors.verticalCenter: parent.verticalCenter - source: "./images/SpeechChrome/push_to_talk.svg" + source: agentName === "Alexa" ? "./images/SpeechChrome/push_to_talk_alexa.png" : "./images/SpeechChrome/push_to_talk.svg" MouseArea { anchors.fill: parent @@ -54,7 +55,7 @@ Item { anchors.right: parent.right anchors.rightMargin: parent.width / 128 anchors.verticalCenter: parent.verticalCenter - source: "./images/SpeechChrome/push_to_talk.svg" + source: agentName === "Alexa" ? "./images/SpeechChrome/push_to_talk_alexa.png" : "./images/SpeechChrome/push_to_talk.svg" MouseArea { anchors.fill: parent diff --git a/homescreen/qml/images/SpeechChrome/push_to_talk_alexa.png b/homescreen/qml/images/SpeechChrome/push_to_talk_alexa.png new file mode 100644 index 0000000..f45218e Binary files /dev/null and b/homescreen/qml/images/SpeechChrome/push_to_talk_alexa.png differ diff --git a/homescreen/qml/images/SpeechChrome/speechchrome.qrc b/homescreen/qml/images/SpeechChrome/speechchrome.qrc index 42357f1..c5a9690 100644 --- a/homescreen/qml/images/SpeechChrome/speechchrome.qrc +++ b/homescreen/qml/images/SpeechChrome/speechchrome.qrc @@ -2,5 +2,6 @@ bar.png push_to_talk.svg + push_to_talk_alexa.png diff --git a/homescreen/src/chromecontroller.cpp b/homescreen/src/chromecontroller.cpp index b604dae..34895bf 100644 --- a/homescreen/src/chromecontroller.cpp +++ b/homescreen/src/chromecontroller.cpp @@ -64,6 +64,11 @@ ChromeController::ChromeController(const QUrl &bindingUrl, QObject *parent) : continue; if (agentId.compare(agentIt.value().toString()) == 0) { agentFound = true; + auto nameIt = agentObj.find(vshl::NAME_TAG); + if (nameIt != agentObj.constEnd()) { + m_voiceAgentName = nameIt.value().toString(); + emit agentNameChanged(); + } break; } } diff --git a/homescreen/src/chromecontroller.h b/homescreen/src/chromecontroller.h index 2a76002..047ddd9 100644 --- a/homescreen/src/chromecontroller.h +++ b/homescreen/src/chromecontroller.h @@ -9,6 +9,7 @@ class ChromeController : public QObject Q_OBJECT Q_PROPERTY(bool agentPresent READ agentPresent NOTIFY agentPresentChanged) + Q_PROPERTY(QString agentName READ agentName NOTIFY agentNameChanged) Q_PROPERTY(int chromeState READ chromeState NOTIFY chromeStateChanged) public: @@ -24,19 +25,22 @@ public: explicit ChromeController(const QUrl &bindingUrl, QObject *parent = nullptr); bool agentPresent() const { return m_agentPresent; } int chromeState() const { return m_chromeState; } + QString agentName() const { return m_voiceAgentName; } public slots: void pushToTalk(); signals: void agentPresentChanged(); + void agentNameChanged(); void chromeStateChanged(); private: void setChromeState(ChromeState state); AglSocketWrapper *m_aglSocket; - QString m_voiceAgentId; + QString m_voiceAgentId = ""; + QString m_voiceAgentName = ""; bool m_agentPresent = false; ChromeState m_chromeState = Idle; };