From bb7e6c3d3b0f21296578ec1e2503b04dcff0b8df Mon Sep 17 00:00:00 2001 From: j1nx Date: Sat, 9 Jan 2021 14:58:33 +0100 Subject: [PATCH] Fix resting screen issue. --- buildroot-external/Config.in | 2 +- .../configs/rpi4_64-gui_defconfig | 3 +- .../package/firstboot-service/gitstash | 2 +- .../rootfs-overlay/etc/mycroft/mycroft.conf | 4 +- ....mycroftai => mycroft-date-time.mycroftai} | 0 .../skill-balena-wifi-setup/__init__.py | 75 +++++++++------ .../ui/NetworkLoader.qml | 24 +++++ .../skill-balena-wifi-setup/ui/NotReady.qml | 65 +++++++++++++ .../skill-balena-wifi-setup/ui/Prompt.qml | 82 ++++++++++++++++ .../ui/{status.qml => Status.qml} | 30 +++--- .../ui/animations/installing.json | 1 + .../skill-balena-wifi-setup/ui/prompt.qml | 94 ------------------- .../opt/mycroft/skills/skill-ovos-pairing | 2 +- 13 files changed, 238 insertions(+), 146 deletions(-) rename buildroot-external/rootfs-overlay/opt/mycroft/skills/{skill-date-time.mycroftai => mycroft-date-time.mycroftai} (100%) create mode 100644 buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/NetworkLoader.qml create mode 100644 buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/NotReady.qml create mode 100644 buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/Prompt.qml rename buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/{status.qml => Status.qml} (52%) create mode 100644 buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/animations/installing.json delete mode 100644 buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/prompt.qml diff --git a/buildroot-external/Config.in b/buildroot-external/Config.in index ceaac787..d0ac975a 100644 --- a/buildroot-external/Config.in +++ b/buildroot-external/Config.in @@ -158,7 +158,7 @@ menu "Additional external python modules" endmenu menu "Mycroft A.I. Personal Assistant" source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-mycroft/Config.in" -# source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/mycroft-embedded-shell/Config.in" + source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/mycroft-embedded-shell/Config.in" source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/mycroft-gui/Config.in" source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/mycroft-service/Config.in" source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/mycroft-splash/Config.in" diff --git a/buildroot-external/configs/rpi4_64-gui_defconfig b/buildroot-external/configs/rpi4_64-gui_defconfig index 5a07be85..d186efa2 100644 --- a/buildroot-external/configs/rpi4_64-gui_defconfig +++ b/buildroot-external/configs/rpi4_64-gui_defconfig @@ -296,7 +296,7 @@ BR2_PACKAGE_NODEJS=y BR2_PACKAGE_NODEJS_NPM=y BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL="node-red node-red-dashboard node-red-contrib-string" BR2_PACKAGE_PYTHON3=y -BR2_PACKAGE_PYTHON3_PY_PYC=y +BR2_PACKAGE_PYTHON3_PY_ONLY=y BR2_PACKAGE_PYTHON3_BZIP2=y BR2_PACKAGE_PYTHON3_CODECSCJK=y BR2_PACKAGE_PYTHON3_CURSES=y @@ -557,5 +557,6 @@ BR2_PACKAGE_PYTHON_TZLOCAL=y BR2_PACKAGE_PYTHON_VLC=y BR2_PACKAGE_PYTHON_XMLRUNNER=y BR2_PACKAGE_PYTHON_MYCROFT=y +BR2_PACKAGE_MYCROFT_EMBEDDED_SHELL=y BR2_PACKAGE_MYCROFT_GUI=y BR2_PACKAGE_MYCROFT_SERVICE=y diff --git a/buildroot-external/package/firstboot-service/gitstash b/buildroot-external/package/firstboot-service/gitstash index c9eef08c..67875c14 100755 --- a/buildroot-external/package/firstboot-service/gitstash +++ b/buildroot-external/package/firstboot-service/gitstash @@ -8,7 +8,7 @@ cd /opt/mycroft/skills/skill-ovos-enclosure && git stash cd /opt/mycroft/skills/skill-ovos-mycroftgui && git stash cd /opt/mycroft/skills/skill-ovos-pairing && git stash cd /opt/mycroft/skills/skill-ovos-homescreen && git stash -cd /opt/mycroft/skills/skill-date-time.mycroftai && git stash +cd /opt/mycroft/skills/mycroft-date-time.mycroftai && git stash chown -R mycroft.mycroft /opt/mycroft echo "[OK]" diff --git a/buildroot-external/rootfs-overlay/etc/mycroft/mycroft.conf b/buildroot-external/rootfs-overlay/etc/mycroft/mycroft.conf index 07cd7746..687298c6 100644 --- a/buildroot-external/rootfs-overlay/etc/mycroft/mycroft.conf +++ b/buildroot-external/rootfs-overlay/etc/mycroft/mycroft.conf @@ -20,8 +20,8 @@ "pulse_duck": true }, "skills": { - "blacklisted_skills": ["mycroft-pairing.mycroftai", "mycroft-mark-2.mycroftai"], - "priority_skills": ["skill-ovos-enclosure", "skill-ovos-mycroftgui", "skill-balena-wifi-setup", "skill-ovos-pairing", "skill-date-time", "skill-ovos-homescreen"] + "blacklisted_skills": ["mycroft-pairing.mycroftai"], + "priority_skills": ["skill-ovos-enclosure", "skill-ovos-mycroftgui", "skill-balena-wifi-setup", "skill-ovos-pairing"] }, "log_level": "INFO" } diff --git a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-date-time.mycroftai b/buildroot-external/rootfs-overlay/opt/mycroft/skills/mycroft-date-time.mycroftai similarity index 100% rename from buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-date-time.mycroftai rename to buildroot-external/rootfs-overlay/opt/mycroft/skills/mycroft-date-time.mycroftai diff --git a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/__init__.py b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/__init__.py index 963e80a0..57f369d5 100755 --- a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/__init__.py +++ b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/__init__.py @@ -21,6 +21,7 @@ class WifiConnect(MycroftSkill): self.pswd = None self.grace_period = 45 self.time_between_checks = 30 # seconds + self.mycroft_ready = False self.wifi_command = "sudo /usr/local/sbin/wifi-connect --portal-ssid {ssid}" if self.pswd: self.wifi_command += " --portal-passphrase {pswd}" @@ -35,8 +36,13 @@ class WifiConnect(MycroftSkill): self.make_priority() self.add_event("mycroft.internet.connected", self.handle_internet_connected) + self.add_event("mycroft.ready", + self.handle_mycroft_ready) self.start_internet_check() + def handle_mycroft_ready(self): + self.mycroft_ready = True + def make_priority(self): if not self.skill_id: # might not be set yet.... @@ -221,24 +227,13 @@ class WifiConnect(MycroftSkill): # GUI events def prompt_to_join_ap(self, message=None): """Provide instructions for setting up wifi.""" - self.gui.remove_page("status.qml") - self.gui["phone_image"] = "1_phone_connect-to-ap.png" - self.gui["prompt"] = "Connect to the Wi-Fi network" - self.gui["highlight"] = self.ssid - self.gui["color"] = self.settings["color"] - self.gui.show_page("prompt.qml", override_idle=True, override_animations=True) + self.manage_setup_display("join-ap", "prompt") # allow GUI to linger around for a bit, will block the wifi setup loop sleep(2) def prompt_to_select_network(self, message=None): """Prompt user to select network and login.""" - self.gui.remove_page("status.qml") - self.gui.clear() - self.gui["phone_image"] = "3_phone_choose-wifi.png" - self.gui["prompt"] = "Select local Wi-Fi network to connect" - self.gui["highlight"] = "OVOS Device" - self.gui["color"] = self.settings["color"] - self.gui.show_page("prompt.qml", override_idle=True, override_animations=True) + self.manage_setup_display("select-network", "prompt") # allow GUI to linger around for a bit, will block the wifi setup loop sleep(2) @@ -250,33 +245,55 @@ class WifiConnect(MycroftSkill): # stop watchdog on internet connection if self.settings["stop_on_internet"]: self.monitoring = False - self.gui.remove_page("prompt.qml") - self.gui.clear() - self.gui["icon"] = "check-circle.svg" - self.gui["label"] = "Connected" - self.gui["bgColor"] = "#40DBB0" - self.gui.remove_page("prompt.qml") - self.gui.show_page("status.qml", override_idle=True, override_animations=True) + self.manage_setup_display("setup-completed", "status") # allow GUI to linger around for a bit, will block the wifi setup loop sleep(3) if not is_paired(): self.bus.emit(Message("mycroft.not.paired")) - else: - self.bus.emit(Message("show.not.ready")) self.gui.release() + else: + self.manage_setup_display("not-ready", "status") def report_setup_failed(self, message=None): """Wifi setup failed""" self.speak_dialog("wifi_error") - self.gui.remove_page("prompt.qml") - self.gui.clear() - self.gui["icon"] = "times-circle.svg" - self.gui["label"] = "Connection Failed" - self.gui["bgColor"] = "#FF0000" - self.gui.show_page("status.qml", override_idle=True, override_animations=True) + self.manage_setup_display("setup-failed", "status") # allow GUI to linger around for a bit, will block the wifi setup loop sleep(2) + def manage_setup_display(self, state, page_type): + self.gui.clear() + if state == "join-ap" and page_type == "prompt": + self.gui["image"] = "1_phone_connect-to-ap.png" + self.gui["label"] = "Connect to the Wi-Fi network" + self.gui["highlight"] = self.ssid + self.gui["color"] = self.settings["color"] + self.gui["page_type"] = "Prompt" + self.gui.show_page("NetworkLoader.qml", override_animations=True) + elif state == "select-network" and page_type == "prompt": + self.gui["image"] = "3_phone_choose-wifi.png" + self.gui["label"] = "Select local Wi-Fi network to connect" + self.gui["highlight"] = "OVOS Device" + self.gui["color"] = self.settings["color"] + self.gui["page_type"] = "Prompt" + self.gui.show_page("NetworkLoader.qml", override_animations=True) + elif state == "setup-completed" and page_type == "status": + self.gui["image"] = "icons/check-circle.svg" + self.gui["label"] = "Connected" + self.gui["highlight"] = "" + self.gui["color"] = "#40DBB0" + self.gui["page_type"] = "Status" + self.gui.show_page("NetworkLoader.qml", override_animations=True) + elif state == "setup-failed" and page_type == "status": + self.gui["image"] = "icons/times-circle.svg" + self.gui["label"] = "Connection Failed" + self.gui["highlight"] = "" + self.gui["color"] = "#FF0000" + self.gui["page_type"] = "Status" + self.gui.show_page("NetworkLoader.qml", override_animations=True) + elif state == "not-ready" and page_type == "status": + self.gui.show_page("NotReady.qml", override_animations=True) + # cleanup def stop_setup(self): if self.wifi_process is not None: @@ -309,5 +326,3 @@ class WifiConnect(MycroftSkill): def create_skill(): return WifiConnect() - - diff --git a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/NetworkLoader.qml b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/NetworkLoader.qml new file mode 100644 index 00000000..0590aa39 --- /dev/null +++ b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/NetworkLoader.qml @@ -0,0 +1,24 @@ +import QtQuick.Layouts 1.4 +import QtQuick 2.4 +import QtQuick.Controls 2.0 +import org.kde.kirigami 2.5 as Kirigami +import Mycroft 1.0 as Mycroft + +Mycroft.Delegate { + id: mainLoaderView + + property var pageType: sessionData.page_type + leftPadding: 0 + rightPadding: 0 + bottomPadding: 0 + topPadding: 0 + + contentItem: Loader { + id: rootLoader + } + + onPageTypeChanged: { + console.log(sessionData.page_type) + rootLoader.setSource(sessionData.page_type + ".qml") + } +} diff --git a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/NotReady.qml b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/NotReady.qml new file mode 100644 index 00000000..0ded55a4 --- /dev/null +++ b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/NotReady.qml @@ -0,0 +1,65 @@ +import QtQuick.Layouts 1.4 +import QtQuick 2.4 +import QtQuick.Controls 2.0 +import org.kde.kirigami 2.4 as Kirigami + +import Mycroft 1.0 as Mycroft +import org.kde.lottie 1.0 + +Mycroft.Delegate { + id: mainLoaderView + + property var pageType: sessionData.page_type + leftPadding: 0 + rightPadding: 0 + bottomPadding: 0 + topPadding: 0 + + Rectangle { + anchors.fill: parent + color: "#000000" + + ColumnLayout { + id: grid + anchors.fill: parent + anchors.margins: Kirigami.Units.largeSpacing + + Label { + id: statusLabel + Layout.alignment: Qt.AlignHCenter + font.pixelSize: parent.height * 0.075 + wrapMode: Text.WordWrap + renderType: Text.NativeRendering + font.family: "Noto Sans Display" + font.styleName: "Black" + text: "Starting Up" + color: "white" + } + + Label { + id: statusLabel2 + Layout.alignment: Qt.AlignHCenter + font.pixelSize: parent.height * 0.075 + wrapMode: Text.WordWrap + renderType: Text.NativeRendering + font.family: "Noto Sans Display" + font.styleName: "Black" + text: "Loading..." + color: "#ff0000" + } + + LottieAnimation { + id: statusIcon + visible: true + enabled: true + Layout.fillWidth: true + Layout.fillHeight: true + Layout.alignment: Qt.AlignHCenter + loops: Animation.Infinite + fillMode: Image.PreserveAspectFit + running: true + source: Qt.resolvedUrl("animations/installing.json") + } + } + } +} diff --git a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/Prompt.qml b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/Prompt.qml new file mode 100644 index 00000000..7f91306e --- /dev/null +++ b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/Prompt.qml @@ -0,0 +1,82 @@ +/* + * Copyright 2018 by Aditya Mehra + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +import QtQuick.Layouts 1.4 +import QtQuick 2.4 +import QtQuick.Controls 2.0 +import org.kde.kirigami 2.4 as Kirigami +import Mycroft 1.0 as Mycroft + +Rectangle { + id: root + property var spacingUnit: 30 + property bool horizontalMode: root.width > root.height ? 1 : 0 + anchors.fill: parent + color: "#000000" + + GridLayout { + anchors.fill: parent + anchors.margins: Kirigami.Units.largeSpacing + columns: horizontalMode ? 2 : 1 + + ColumnLayout { + Layout.fillWidth: true + Layout.fillHeight: true + + Kirigami.Heading { + id: sentence + Layout.fillWidth: true + Layout.alignment: horizontalMode ? Qt.AlignLeft : Qt.AlignHCenter | Qt.AlignVCenter + Layout.leftMargin: horizontalMode ? spacingUnit : 0 + horizontalAlignment: horizontalMode ? Text.AlignLeft : Text.AlignHCenter + verticalAlignment: horizontalMode ? Text.AlignVCenter : Text.AlignTop + wrapMode: Text.WordWrap + elide: Text.ElideRight + font.family: "Noto Sans" + font.bold: true + font.weight: Font.Bold + font.pixelSize: horizontalMode ? root.width * 0.065 : root.height * 0.075 + text: sessionData.label + } + Kirigami.Heading { + id: url + Layout.fillWidth: true + Layout.leftMargin: horizontalMode ? spacingUnit : 0 + Layout.alignment: horizontalMode ? Qt.AlignLeft : Qt.AlignHCenter | Qt.AlignTop + horizontalAlignment: horizontalMode ? Text.AlignLeft : Text.AlignHCenter + verticalAlignment: horizontalMode ? Text.AlignVCenter : Text.AlignTop + wrapMode: Text.WordWrap + elide: Text.ElideRight + font.family: "Noto Sans" + font.bold: true + font.weight: Font.Bold + font.pixelSize: horizontalMode ? root.width * 0.065 : root.height * 0.075 + color: sessionData.color + text: sessionData.highlight + } + } + + Image { + id: img + source: sessionData.image + Layout.preferredWidth: horizontalMode ? parent.width / 2 : parent.width + Layout.preferredHeight: horizontalMode ? parent.height * 0.9 : parent.height / 2 + Layout.alignment: Qt.AlignBottom + fillMode: Image.PreserveAspectFit + } + } +} diff --git a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/status.qml b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/Status.qml similarity index 52% rename from buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/status.qml rename to buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/Status.qml index 595a025e..6fbdd3f8 100644 --- a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/status.qml +++ b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/Status.qml @@ -5,33 +5,31 @@ import org.kde.kirigami 2.4 as Kirigami import Mycroft 1.0 as Mycroft -Mycroft.ProportionalDelegate { +Rectangle { id: root - skillBackgroundColorOverlay: sessionData.bgColor + anchors.fill: parent + color: sessionData.color + property bool horizontalMode: root.width > root.height ? 1 : 0 ColumnLayout { id: grid - anchors.centerIn: parent - + anchors.fill: parent + Image { id: statusIcon visible: true enabled: true - anchors.horizontalCenter: grid.horizontalCenter - Layout.preferredWidth: proportionalGridUnit * 50 - Layout.preferredHeight: proportionalGridUnit * 50 - source: Qt.resolvedUrl(`icons/${sessionData.icon}`) - } - - /* Add some spacing between icon and text */ - Item { - height: Kirigami.Units.largeSpacing + Layout.preferredWidth: horizontalMode ? parent.width / 4 : parent.width / 2 + Layout.preferredHeight: width + Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter + source: sessionData.image } Label { id: statusLabel - Layout.alignment: Qt.AlignHCenter - font.pixelSize: 65 + Layout.alignment: Qt.AlignBottom | Qt.AlignHCenter + Layout.bottomMargin: Kirigami.Units.largeSpacing + font.pixelSize: parent.width * 0.075 wrapMode: Text.WordWrap renderType: Text.NativeRendering font.family: "Noto Sans Display" @@ -41,4 +39,4 @@ Mycroft.ProportionalDelegate { color: "white" } } -} \ No newline at end of file +} diff --git a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/animations/installing.json b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/animations/installing.json new file mode 100644 index 00000000..ab84a1be --- /dev/null +++ b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/animations/installing.json @@ -0,0 +1 @@ +{"v":"5.4.3","fr":29.9700012207031,"ip":0,"op":70.0000028511585,"w":307,"h":389,"nm":"refresh-button","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-44,"ix":10},"p":{"a":0,"k":[154.149,195.327,0],"ix":2},"a":{"a":0,"k":[-2.021,-4,0],"ix":1},"s":{"a":0,"k":[71.946,71.946,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[217,217],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.211764705882,0.211764705882,0.211764705882,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"bm":0,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":33,"ix":1}},{"n":"o","nm":"offset","v":{"a":0,"k":0,"ix":7}}],"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-1.5,-4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.625],"y":[0]},"n":["0p667_1_0p625_0"],"t":26,"s":[0],"e":[100]},{"t":65.0000026475043}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[1],"y":[0]},"n":["0p667_1_1_0"],"t":7,"s":[0],"e":[100]},{"t":41.0000016699642}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-179],"e":[181]},{"t":65.0000026475043}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":70.0000028511585,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-44,"ix":10},"p":{"a":0,"k":[154.149,195.327,0],"ix":2},"a":{"a":0,"k":[-2.021,-4,0],"ix":1},"s":{"a":0,"k":[71.946,71.946,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[217,217],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.9098039215686274,0.3137254901960784,0.3137254901960784,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"bm":0,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":33,"ix":1}},{"n":"o","nm":"offset","v":{"a":0,"k":0,"ix":7}}],"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-1.5,-4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.625],"y":[0]},"n":["0p667_1_0p625_0"],"t":26,"s":[0],"e":[100]},{"t":65.0000026475043}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[1],"y":[0]},"n":["0p667_1_1_0"],"t":0,"s":[0],"e":[100]},{"t":41.0000016699642}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-224],"e":[136]},{"t":65.0000026475043}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":70.0000028511585,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-44,"ix":10},"p":{"a":0,"k":[154.149,195.327,0],"ix":2},"a":{"a":0,"k":[-2.021,-4,0],"ix":1},"s":{"a":0,"k":[46.072,46.072,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[217,217],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.9058823529411765,0.2627450980392157,0.2627450980392157,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-1.5,-4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[1],"y":[0]},"n":["0p667_1_1_0"],"t":0,"s":[100],"e":[0]},{"t":38.0000015477717}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.733],"y":[0.015]},"n":["0p667_1_0p733_0p015"],"t":19,"s":[100],"e":[0]},{"t":60.0000024438501}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-319],"e":[-679]},{"t":65.0000026475043}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":70.0000028511585,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-44,"ix":10},"p":{"a":0,"k":[154.149,195.327,0],"ix":2},"a":{"a":0,"k":[-2.021,-4,0],"ix":1},"s":{"a":0,"k":[46.072,46.072,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[217,217],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.105882352941,0.105882352941,0.105882352941,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-1.5,-4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[1],"y":[0]},"n":["0p667_1_1_0"],"t":0,"s":[100],"e":[0]},{"t":38.0000015477717}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.733],"y":[0.015]},"n":["0p667_1_0p733_0p015"],"t":19,"s":[100],"e":[0]},{"t":60.0000024438501}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-224],"e":[-584]},{"t":65.0000026475043}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":70.0000028511585,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[4.436],"e":[-355.564]},{"t":69.0000028104276}],"ix":10},"p":{"a":0,"k":[155,194,0],"ix":2},"a":{"a":0,"k":[-1.5,-4,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[217,217],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.47843137254901963,0.47843137254901963,0.47843137254901963,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-1.5,-4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":85,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":70.0000028511585,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[4.436],"e":[-355.564]},{"t":69.0000028104276}],"ix":10},"p":{"a":0,"k":[155,194,0],"ix":2},"a":{"a":0,"k":[-1.5,-4,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[217,217],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.3607843137254902,0.16470588235294117,0.16470588235294117,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-1.5,-4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":85,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":70.0000028511585,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"refresh-button Outlines","parent":7,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":85.093,"ix":10},"p":{"a":0,"k":[-6.619,-112.041,0],"ix":2},"a":{"a":0,"k":[188.881,115.959,0],"ix":1},"s":{"a":0,"k":[58.516,58.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.875,-1.875],[-1.875,-1.875],[0,0],[-1.274,0],[-0.898,0.903],[0,0],[1.875,1.875],[1.875,-1.875],[0,0]],"o":[[-1.875,-1.875],[-1.875,1.875],[0,0],[0.899,0.903],[1.277,0],[0,0],[1.875,-1.875],[-1.875,-1.875],[0,0],[0,0]],"v":[[-14.662,-12.188],[-21.451,-12.188],[-21.451,-5.398],[-3.393,12.656],[-0.002,14.063],[3.392,12.656],[21.451,-5.398],[21.451,-12.188],[14.662,-12.188],[-0.002,2.473]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[-14.662,-12.188]],"c":false},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.9058823529411765,0.2627450980392157,0.2627450980392157,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[188.943,118.162],"ix":2},"a":{"a":0,"k":[0.062,2.438],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":70.0000028511585,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/prompt.qml b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/prompt.qml deleted file mode 100644 index 95e4b699..00000000 --- a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/prompt.qml +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2018 by Aditya Mehra - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -import QtQuick.Layouts 1.4 -import QtQuick 2.4 -import QtQuick.Controls 2.0 -import org.kde.kirigami 2.4 as Kirigami -import Mycroft 1.0 as Mycroft - -Mycroft.Delegate { - id: root - property var spacingUnit: 30 - property var phone: sessionData.phone_image - property var prompt: sessionData.prompt - property var highlight: sessionData.highlight - property var color: sessionData.color - property bool horizontalMode: root.width > root.height ? 1 : 0 - - leftPadding: 0 - rightPadding: 0 - topPadding: 0 - bottomPadding: 0 - - Rectangle { - anchors.fill: parent - color: "#000000" - - GridLayout { - anchors.fill: parent - anchors.margins: Kirigami.Units.largeSpacing - columns: horizontalMode ? 2 : 1 - - ColumnLayout { - Layout.fillWidth: true - Layout.fillHeight: true - - Kirigami.Heading { - id: sentence - Layout.fillWidth: true - Layout.alignment: horizontalMode ? Qt.AlignLeft : Qt.AlignHCenter | Qt.AlignVCenter - Layout.leftMargin: horizontalMode ? spacingUnit : 0 - horizontalAlignment: horizontalMode ? Text.AlignLeft : Text.AlignHCenter - verticalAlignment: horizontalMode ? Text.AlignVCenter : Text.AlignTop - wrapMode: Text.WordWrap - elide: Text.ElideRight - font.family: "Noto Sans" - font.bold: true - font.weight: Font.Bold - font.pixelSize: horizontalMode ? root.width * 0.065 : root.height * 0.075 - text: prompt - } - Kirigami.Heading { - id: url - Layout.fillWidth: true - Layout.leftMargin: horizontalMode ? spacingUnit : 0 - Layout.alignment: horizontalMode ? Qt.AlignLeft : Qt.AlignHCenter | Qt.AlignTop - horizontalAlignment: horizontalMode ? Text.AlignLeft : Text.AlignHCenter - verticalAlignment: horizontalMode ? Text.AlignVCenter : Text.AlignTop - wrapMode: Text.WordWrap - elide: Text.ElideRight - font.family: "Noto Sans" - font.bold: true - font.weight: Font.Bold - font.pixelSize: horizontalMode ? root.width * 0.065 : root.height * 0.075 - color: root.color - text: highlight - } - } - - Image { - id: img - source: Qt.resolvedUrl(phone) - Layout.preferredWidth: horizontalMode ? parent.width / 2 : parent.width - Layout.preferredHeight: horizontalMode ? parent.height * 0.9 : parent.height / 2 - Layout.alignment: Qt.AlignBottom - fillMode: Image.PreserveAspectFit - } - } - } -} diff --git a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-ovos-pairing b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-ovos-pairing index ee7be958..d8fea7c1 160000 --- a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-ovos-pairing +++ b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-ovos-pairing @@ -1 +1 @@ -Subproject commit ee7be95809963a4557d941f614fbb6bdb9093bd9 +Subproject commit d8fea7c156fc91043d0782de94d5c348c12b71d7