From 49cc163da11a12fde7092da6a5bb9442225a396a Mon Sep 17 00:00:00 2001 From: Daniel McKnight <34697904+NeonDaniel@users.noreply.github.com> Date: Fri, 27 Dec 2024 16:08:28 -0800 Subject: [PATCH] Refactor into Neon package (#1) * Refactor into Neon package Revert Changes from #48 that added ovos-config>0.X dependency * Undo changes from #48 that added ovos-config>0.X dependency --- .github/workflows/conventional-label.yml | 10 -- .github/workflows/propose_release.yml | 32 ++++++ .github/workflows/publish_release.yml | 12 ++ .github/workflows/publish_stable.yml | 72 ------------ .github/workflows/publish_test_build.yml | 22 ++++ .github/workflows/release_workflow.yml | 108 ------------------ .github/workflows/unit_tests.yml | 8 +- README.md | 38 ++---- .../__init__.py | 43 ++++--- neon_phal_plugin_system/ui/Reboot.qml | 56 +++++++++ neon_phal_plugin_system/ui/Restart.qml | 56 +++++++++ neon_phal_plugin_system/ui/Shutdown.qml | 56 +++++++++ neon_phal_plugin_system/ui/Status.qml | 66 +++++++++++ .../ui/animations/loading.json | 1 + .../ui/animations/status-fail.json | 1 + .../ui/animations/status-success.json | 1 + .../version.py | 0 requirements.txt | 2 +- setup.py | 21 ++-- 19 files changed, 353 insertions(+), 252 deletions(-) delete mode 100644 .github/workflows/conventional-label.yml create mode 100644 .github/workflows/propose_release.yml create mode 100644 .github/workflows/publish_release.yml delete mode 100644 .github/workflows/publish_stable.yml create mode 100644 .github/workflows/publish_test_build.yml delete mode 100644 .github/workflows/release_workflow.yml rename {ovos_PHAL_plugin_system => neon_phal_plugin_system}/__init__.py (91%) create mode 100644 neon_phal_plugin_system/ui/Reboot.qml create mode 100644 neon_phal_plugin_system/ui/Restart.qml create mode 100644 neon_phal_plugin_system/ui/Shutdown.qml create mode 100644 neon_phal_plugin_system/ui/Status.qml create mode 100644 neon_phal_plugin_system/ui/animations/loading.json create mode 100644 neon_phal_plugin_system/ui/animations/status-fail.json create mode 100644 neon_phal_plugin_system/ui/animations/status-success.json rename {ovos_PHAL_plugin_system => neon_phal_plugin_system}/version.py (100%) diff --git a/.github/workflows/conventional-label.yml b/.github/workflows/conventional-label.yml deleted file mode 100644 index 9894c1b..0000000 --- a/.github/workflows/conventional-label.yml +++ /dev/null @@ -1,10 +0,0 @@ -# auto add labels to PRs -on: - pull_request_target: - types: [ opened, edited ] -name: conventional-release-labels -jobs: - label: - runs-on: ubuntu-latest - steps: - - uses: bcoe/conventional-release-labels@v1 diff --git a/.github/workflows/propose_release.yml b/.github/workflows/propose_release.yml new file mode 100644 index 0000000..7e4c96f --- /dev/null +++ b/.github/workflows/propose_release.yml @@ -0,0 +1,32 @@ +name: Propose Stable Release +on: + workflow_dispatch: + inputs: + release_type: + type: choice + description: Release Type + options: + - patch + - minor + - major +jobs: + update_version: + uses: neongeckocom/.github/.github/workflows/propose_semver_release.yml@master + with: + branch: dev + release_type: ${{ inputs.release_type }} + update_changelog: True + version_file: neon_phal_plugin_system/version.py + alpha_var: VERSION_ALPHA + build_var: VERSION_BUILD + minor_var: VERSION_MINOR + major_var: VERSION_MAJOR + pull_changes: + uses: neongeckocom/.github/.github/workflows/pull_master.yml@master + needs: update_version + with: + pr_reviewer: neonreviewers + pr_assignee: ${{ github.actor }} + pr_draft: false + pr_title: ${{ needs.update_version.outputs.version }} + pr_body: ${{ needs.update_version.outputs.changelog }} \ No newline at end of file diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml new file mode 100644 index 0000000..e4b3fa3 --- /dev/null +++ b/.github/workflows/publish_release.yml @@ -0,0 +1,12 @@ +# This workflow will generate a release distribution and upload it to PyPI + +name: Publish Build and GitHub Release +on: + push: + branches: + - master + +jobs: + build_and_publish_pypi_and_release: + uses: neongeckocom/.github/.github/workflows/publish_stable_release.yml@master + secrets: inherit diff --git a/.github/workflows/publish_stable.yml b/.github/workflows/publish_stable.yml deleted file mode 100644 index 0b55ffa..0000000 --- a/.github/workflows/publish_stable.yml +++ /dev/null @@ -1,72 +0,0 @@ -name: Stable Release -on: - push: - branches: [master] - workflow_dispatch: - -jobs: - publish_stable: - uses: TigreGotico/gh-automations/.github/workflows/publish-stable.yml@master - secrets: inherit - with: - branch: 'master' - version_file: 'ovos_PHAL_plugin_system/version.py' - setup_py: 'setup.py' - publish_release: true - - publish_pypi: - needs: publish_stable - if: success() # Ensure this job only runs if the previous job succeeds - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: dev - fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository. - - name: Setup Python - uses: actions/setup-python@v1 - with: - python-version: 3.8 - - name: Install Build Tools - run: | - python -m pip install build wheel - - name: version - run: echo "::set-output name=version::$(python setup.py --version)" - id: version - - name: Create Release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token - with: - tag_name: V${{ steps.version.outputs.version }} - release_name: Release ${{ steps.version.outputs.version }} - body: | - Changes in this Release - ${{ steps.changelog.outputs.changelog }} - draft: false - prerelease: true - commitish: dev - - name: Build Distribution Packages - run: | - python setup.py sdist bdist_wheel - - name: Publish to Test PyPI - uses: pypa/gh-action-pypi-publish@master - with: - password: ${{secrets.PYPI_TOKEN}} - - - sync_dev: - needs: publish_stable - if: success() # Ensure this job only runs if the previous job succeeds - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository. - ref: master - - name: Push master -> dev - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: dev \ No newline at end of file diff --git a/.github/workflows/publish_test_build.yml b/.github/workflows/publish_test_build.yml new file mode 100644 index 0000000..6465c49 --- /dev/null +++ b/.github/workflows/publish_test_build.yml @@ -0,0 +1,22 @@ +# This workflow will generate a distribution and upload it to PyPI + +name: Publish Alpha Build +on: + push: + branches: + - dev + paths-ignore: + - 'neon_phal_plugin_system/version.py' + +jobs: + publish_alpha_release: + uses: neongeckocom/.github/.github/workflows/publish_alpha_release.yml@master + secrets: inherit + with: + version_file: "neon_phal_plugin_system/version.py" + alpha_var: VERSION_ALPHA + build_var: VERSION_BUILD + minor_var: VERSION_MINOR + major_var: VERSION_MAJOR + publish_prerelease: true + update_changelog: true \ No newline at end of file diff --git a/.github/workflows/release_workflow.yml b/.github/workflows/release_workflow.yml deleted file mode 100644 index 7f2cf02..0000000 --- a/.github/workflows/release_workflow.yml +++ /dev/null @@ -1,108 +0,0 @@ -name: Release Alpha and Propose Stable - -on: - pull_request: - types: [closed] - branches: [dev] - -jobs: - publish_alpha: - if: github.event.pull_request.merged == true - uses: TigreGotico/gh-automations/.github/workflows/publish-alpha.yml@master - secrets: inherit - with: - branch: 'dev' - version_file: 'ovos_PHAL_plugin_system/version.py' - setup_py: 'setup.py' - update_changelog: true - publish_prerelease: true - changelog_max_issues: 100 - - notify: - if: github.event.pull_request.merged == true - needs: publish_alpha - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Send message to Matrix bots channel - id: matrix-chat-message - uses: fadenb/matrix-chat-message@v0.0.6 - with: - homeserver: 'matrix.org' - token: ${{ secrets.MATRIX_TOKEN }} - channel: '!WjxEKjjINpyBRPFgxl:krbel.duckdns.org' - message: | - new ${{ github.event.repository.name }} PR merged! https://github.com/${{ github.repository }}/pull/${{ github.event.number }} - - publish_pypi: - needs: publish_alpha - if: success() # Ensure this job only runs if the previous job succeeds - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: dev - fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository. - - name: Setup Python - uses: actions/setup-python@v1 - with: - python-version: 3.8 - - name: Install Build Tools - run: | - python -m pip install build wheel - - name: version - run: echo "::set-output name=version::$(python setup.py --version)" - id: version - - name: Build Distribution Packages - run: | - python setup.py sdist bdist_wheel - - name: Publish to Test PyPI - uses: pypa/gh-action-pypi-publish@master - with: - password: ${{secrets.PYPI_TOKEN}} - - - propose_release: - needs: publish_alpha - if: success() # Ensure this job only runs if the previous job succeeds - runs-on: ubuntu-latest - steps: - - name: Checkout dev branch - uses: actions/checkout@v3 - with: - ref: dev - - - name: Setup Python - uses: actions/setup-python@v2 - with: - python-version: '3.10' - - - name: Get version from setup.py - id: get_version - run: | - VERSION=$(python setup.py --version) - echo "VERSION=$VERSION" >> $GITHUB_ENV - - - name: Create and push new branch - run: | - git checkout -b release-${{ env.VERSION }} - git push origin release-${{ env.VERSION }} - - - name: Open Pull Request from dev to master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - # Variables - BRANCH_NAME="release-${{ env.VERSION }}" - BASE_BRANCH="master" - HEAD_BRANCH="release-${{ env.VERSION }}" - PR_TITLE="Release ${{ env.VERSION }}" - PR_BODY="Human review requested!" - - # Create a PR using GitHub API - curl -X POST \ - -H "Accept: application/vnd.github+json" \ - -H "Authorization: token $GITHUB_TOKEN" \ - -d "{\"title\":\"$PR_TITLE\",\"body\":\"$PR_BODY\",\"head\":\"$HEAD_BRANCH\",\"base\":\"$BASE_BRANCH\"}" \ - https://api.github.com/repos/${{ github.repository }}/pulls - diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 3e380f3..2fa42bf 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -1,8 +1,12 @@ -name: Unit Tests +# This workflow will run unit tests + +name: Run Unit Tests on: push: workflow_dispatch: - + pull_request: + branches: + - master jobs: py_build_tests: uses: neongeckocom/.github/.github/workflows/python_build_tests.yml@master diff --git a/README.md b/README.md index 1c6ca48..ca7c77f 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,19 @@ -# ovos-PHAL-plugin - system +# neon-phal-plugin-system -Provides system specific commands to OVOS. +Provides system specific commands to Neon. The dbus interface for this plugin is not yet established. # Install -`pip install ovos-PHAL-plugin-system` +`pip install neon-phal-plugin-system` # Config -This plugin is a Admin plugin, it needs to run as root and to be explicitly enabled in mycroft.conf +This plugin is an Admin plugin, it needs to run as root and to be explicitly enabled in mycroft.conf -```javascript -{ -"PHAL": { - "admin": { - "ovos-PHAL-plugin-system": {"enabled": true} - } -} -} -``` -if not enabled (omit config above) it will be run as the regular user, you need to ensure [polkit policy](#) is set to allow usage of systemctl without sudo. Not yet implemented - - -handle bus events to interact with the OS - -```python -self.bus.on("system.ntp.sync", self.handle_ntp_sync_request) -self.bus.on("system.ssh.status", self.handle_ssh_status) -self.bus.on("system.ssh.enable", self.handle_ssh_enable_request) -self.bus.on("system.ssh.disable", self.handle_ssh_disable_request) -self.bus.on("system.reboot", self.handle_reboot_request) -self.bus.on("system.shutdown", self.handle_shutdown_request) -self.bus.on("system.factory.reset", self.handle_factory_reset_request) -self.bus.on("system.factory.reset.register", self.handle_reset_register) -self.bus.on("system.configure.language", self.handle_configure_language_request) -self.bus.on("system.mycroft.service.restart", self.handle_mycroft_restart_request) +```yaml +PHAL: + admin: + neon-phal-plugin-system: + enabled: true ``` diff --git a/ovos_PHAL_plugin_system/__init__.py b/neon_phal_plugin_system/__init__.py similarity index 91% rename from ovos_PHAL_plugin_system/__init__.py rename to neon_phal_plugin_system/__init__.py index 9c87845..e49cd71 100644 --- a/ovos_PHAL_plugin_system/__init__.py +++ b/neon_phal_plugin_system/__init__.py @@ -29,11 +29,11 @@ def validate(config=None): This allows a plugin to run platform checks""" # check if admin plugin is not enabled cfg = Configuration().get("PHAL", {}).get("admin", {}) - if cfg.get("ovos-PHAL-plugin-system", {}).get("enabled"): + if cfg.get("neon-phal-plugin-system", {}).get("enabled"): # run this plugin in admin mode (as root) return False - LOG.info("ovos-PHAL-plugin-system running as user") + LOG.info("neon-phal-plugin-system running as user") return True @@ -41,8 +41,9 @@ class SystemEventsPlugin(PHALPlugin): validator = SystemEventsValidator def __init__(self, bus=None, config=None): - super().__init__(bus=bus, name="ovos-PHAL-plugin-system", config=config) + super().__init__(bus=bus, name="neon-phal-plugin-system", config=config) self.gui = GUIInterface(bus=self.bus, skill_id=self.name, + ui_directories={"qt5": join(dirname(__file__), "ui")}, config=self.config_core.get('gui')) self.bus.on("system.ssh.status", self.handle_ssh_status) self.bus.on("system.ssh.enable", self.handle_ssh_enable_request) @@ -60,10 +61,9 @@ def __init__(self, bus=None, config=None): self.bus.on("system.mycroft.service.restart", self.handle_mycroft_restart_request) self.bus.on("system.mycroft.service.restart.start", self.handle_mycroft_restarting) - self.core_service_name = config.get("core_service") or "ovos.service" + self.core_service_name = config.get("core_service") or "neon.service" # In Debian, ssh stays active, but sshd is removed when ssh is disabled self.ssh_service = config.get("ssh_service") or "sshd.service" - self.use_root = config.get("sudo", True) self.factory_reset_plugs = [] @@ -196,7 +196,9 @@ def on_done(message): def handle_clock_sync(self, message: Message): if message.data.get("display", True): - self.gui.show_status_animation("Clock Synchronized", True) + self.gui["status"] = "Enabled" + self.gui["label"] = "Clock Synchronized" + self.gui.show_page("Status") def handle_ssh_enable_request(self, message: Message): subprocess.call(f"systemctl enable {self.ssh_service}", shell=True) @@ -205,7 +207,9 @@ def handle_ssh_enable_request(self, message: Message): def handle_ssh_enabled(self, message: Message): if message.data.get("display", True): - self.gui.show_status_animation("SSH Enabled", True) + self.gui["status"] = "Enabled" + self.gui["label"] = "SSH Enabled" + self.gui.show_page("Status") def handle_ssh_disable_request(self, message: Message): subprocess.call(f"systemctl stop {self.ssh_service}", shell=True) @@ -215,16 +219,17 @@ def handle_ssh_disable_request(self, message: Message): def handle_ssh_disabled(self, message: Message): # ovos-shell does not want to display if message.data.get("display", True): - self.gui.show_status_animation("SSH Disabled", False) + self.gui["status"] = "Disabled" + self.gui["label"] = "SSH Disabled" + self.gui.show_page("Status") def handle_rebooting(self, message: Message): """ reboot has started """ if message.data.get("display", True): - self.gui.show_loading_animation("Rebooting", - override_animations=True, - override_idle=True) + self.gui.show_page("Reboot", override_animations=True, + override_idle=True) def handle_reboot_request(self, message: Message): """ @@ -243,9 +248,8 @@ def handle_shutting_down(self, message: Message): shutdown has started """ if message.data.get("display", True): - self.gui.show_loading_animation("Shutting Down", - override_animations=True, - override_idle=True) + self.gui.show_page("Shutdown", override_animations=True, + override_idle=True) def handle_shutdown_request(self, message: Message): """ @@ -273,16 +277,17 @@ def handle_configure_language_request(self, message: Message): # it is usually part of other groups of actions that may # provide their own UI if message.data.get("display", False): - self.gui.show_status_animation(f"Language changed to {language_code}", True) + self.gui["status"] = "Enabled" + self.gui["label"] = f"Language changed to {language_code}" + self.gui.show_page("Status") self.bus.emit(Message('system.configure.language.complete', {"lang": language_code})) def handle_mycroft_restarting(self, message: Message): if message.data.get("display", True): - self.gui.show_loading_animation("Restarting", - override_animations=True, - override_idle=True) + self.gui.show_page("Restart", override_animations=True, + override_idle=True) def handle_mycroft_restart_request(self, message: Message): service = self.core_service_name @@ -325,7 +330,7 @@ def shutdown(self): class SystemEventsAdminValidator(AdminValidator, SystemEventsValidator): @staticmethod def validate(config=None): - LOG.info("ovos-PHAL-plugin-system running as root") + LOG.info("neon-phal-plugin-system running as root") return True diff --git a/neon_phal_plugin_system/ui/Reboot.qml b/neon_phal_plugin_system/ui/Reboot.qml new file mode 100644 index 0000000..60cfe82 --- /dev/null +++ b/neon_phal_plugin_system/ui/Reboot.qml @@ -0,0 +1,56 @@ +import QtQuick.Layouts 1.4 +import QtQuick 2.12 +import QtQuick.Controls 2.12 +import org.kde.kirigami 2.10 as Kirigami +import Mycroft 1.0 as Mycroft +import org.kde.lottie 1.0 + + +Mycroft.Delegate { + id: root + leftPadding: 0 + rightPadding: 0 + topPadding: 0 + bottomPadding: 0 + background: Rectangle { + color: Kirigami.Theme.backgroundColor + z: -1 + } + + Rectangle { + anchors.fill: parent + anchors.margins: Mycroft.Units.gridUnit * 2 + color: Kirigami.Theme.backgroundColor + + ColumnLayout { + id: grid + anchors.fill: parent + anchors.margins: Kirigami.Units.largeSpacing + + Label { + id: statusLabel + Layout.alignment: Qt.AlignHCenter + font.pixelSize: root.width * 0.035 + wrapMode: Text.WordWrap + renderType: Text.NativeRendering + font.family: "Noto Sans Display" + font.styleName: "Black" + text: qsTr("Rebooting") + color: Kirigami.Theme.textColor + } + + 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/loading.json") + } + } + } +} diff --git a/neon_phal_plugin_system/ui/Restart.qml b/neon_phal_plugin_system/ui/Restart.qml new file mode 100644 index 0000000..542df18 --- /dev/null +++ b/neon_phal_plugin_system/ui/Restart.qml @@ -0,0 +1,56 @@ +import QtQuick.Layouts 1.4 +import QtQuick 2.12 +import QtQuick.Controls 2.12 +import org.kde.kirigami 2.10 as Kirigami +import Mycroft 1.0 as Mycroft +import org.kde.lottie 1.0 + + +Mycroft.Delegate { + id: root + leftPadding: 0 + rightPadding: 0 + topPadding: 0 + bottomPadding: 0 + background: Rectangle { + color: Kirigami.Theme.backgroundColor + z: -1 + } + + Rectangle { + anchors.fill: parent + anchors.margins: Mycroft.Units.gridUnit * 2 + color: Kirigami.Theme.backgroundColor + + ColumnLayout { + id: grid + anchors.fill: parent + anchors.margins: Kirigami.Units.largeSpacing + + Label { + id: statusLabel + Layout.alignment: Qt.AlignHCenter + font.pixelSize: root.width * 0.035 + wrapMode: Text.WordWrap + renderType: Text.NativeRendering + font.family: "Noto Sans Display" + font.styleName: "Black" + text: qsTr("Restarting") + color: Kirigami.Theme.textColor + } + + 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/loading.json") + } + } + } +} diff --git a/neon_phal_plugin_system/ui/Shutdown.qml b/neon_phal_plugin_system/ui/Shutdown.qml new file mode 100644 index 0000000..92d882f --- /dev/null +++ b/neon_phal_plugin_system/ui/Shutdown.qml @@ -0,0 +1,56 @@ +import QtQuick.Layouts 1.4 +import QtQuick 2.12 +import QtQuick.Controls 2.12 +import org.kde.kirigami 2.10 as Kirigami +import Mycroft 1.0 as Mycroft +import org.kde.lottie 1.0 + + +Mycroft.Delegate { + id: root + leftPadding: 0 + rightPadding: 0 + topPadding: 0 + bottomPadding: 0 + background: Rectangle { + color: Kirigami.Theme.backgroundColor + z: -1 + } + + Rectangle { + anchors.fill: parent + anchors.margins: Mycroft.Units.gridUnit * 2 + color: Kirigami.Theme.backgroundColor + + ColumnLayout { + id: grid + anchors.fill: parent + anchors.margins: Kirigami.Units.largeSpacing + + Label { + id: statusLabel + Layout.alignment: Qt.AlignHCenter + font.pixelSize: root.width * 0.035 + wrapMode: Text.WordWrap + renderType: Text.NativeRendering + font.family: "Noto Sans Display" + font.styleName: "Black" + text: qsTr("Shutting Down") + color: Kirigami.Theme.textColor + } + + 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/loading.json") + } + } + } +} diff --git a/neon_phal_plugin_system/ui/Status.qml b/neon_phal_plugin_system/ui/Status.qml new file mode 100644 index 0000000..4769a71 --- /dev/null +++ b/neon_phal_plugin_system/ui/Status.qml @@ -0,0 +1,66 @@ +import QtQuick.Layouts 1.4 +import QtQuick 2.4 +import QtQuick.Controls 2.12 +import org.kde.kirigami 2.10 as Kirigami +import Mycroft 1.0 as Mycroft +import org.kde.lottie 1.0 + + +Mycroft.Delegate { + id: root + leftPadding: 0 + rightPadding: 0 + topPadding: 0 + bottomPadding: 0 + background: Rectangle { + color: Kirigami.Theme.backgroundColor + z: -1 + } + property var success: sessionData.status + anchors.fill: parent + + function checkstatus(status) { + if(status == "Enabled") { + return Qt.resolvedUrl("animations/status-success.json") + } else if (status == "Disabled") { + return Qt.resolvedUrl("animations/status-fail.json") + } + } + + Rectangle { + anchors.fill: parent + anchors.margins: Mycroft.Units.gridUnit * 2 + color: Kirigami.Theme.backgroundColor + + ColumnLayout { + id: grid + anchors.fill: parent + anchors.margins: Kirigami.Units.largeSpacing + + 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: checkstatus(sessionData.status) + } + + Label { + id: statusLabel + Layout.alignment: Qt.AlignHCenter + font.pixelSize: parent.height * 0.095 + wrapMode: Text.WordWrap + renderType: Text.NativeRendering + font.family: "Noto Sans Display" + font.styleName: "Black" + text: sessionData.label + color: Kirigami.Theme.textColor + } + } + } +} diff --git a/neon_phal_plugin_system/ui/animations/loading.json b/neon_phal_plugin_system/ui/animations/loading.json new file mode 100644 index 0000000..ab84a1b --- /dev/null +++ b/neon_phal_plugin_system/ui/animations/loading.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/neon_phal_plugin_system/ui/animations/status-fail.json b/neon_phal_plugin_system/ui/animations/status-fail.json new file mode 100644 index 0000000..8992be8 --- /dev/null +++ b/neon_phal_plugin_system/ui/animations/status-fail.json @@ -0,0 +1 @@ +{"v":"5.4.4","fr":15,"ip":0,"op":45,"w":160,"h":160,"nm":"Failed Checkmark","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"X Mark 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":94,"ix":10},"p":{"a":0,"k":[79,84,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[226.78400000000002,204.352,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-10,-8]],"o":[[0,0],[10,8]],"v":[[-18,-15],[15,14]],"c":false},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Transformar"}],"nm":"Forma 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[],"o":[],"v":[],"c":false},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0],"e":[100]},{"t":34}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Aparar caminhos 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"X Mark","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[82.5,81.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[200,232.858,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-10,-8]],"o":[[0,0],[10,8]],"v":[[-18,-15],[15,14]],"c":false},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Traçado 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Transformar"}],"nm":"Forma 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[],"o":[],"v":[],"c":false},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":34,"s":[0],"e":[100]},{"t":38}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Aparar caminhos 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Circle Flash","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[0],"e":[98]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[98],"e":[0]},{"t":38}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[80,80,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":25,"s":[0,0,100],"e":[200,200,100]},{"t":30}],"ix":6}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":0,"k":[64,64],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.6196078431372549,0.592156862745098,0.592156862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Circle Stroke","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[78.044,78.044,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":16,"s":[200,200,100],"e":[160,160,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":22,"s":[160,160,100],"e":[240,240,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":25,"s":[240,240,100],"e":[200,200,100]},{"t":29}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[60,60],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0],"e":[100]},{"t":16}],"ix":1},"e":{"a":0,"k":0,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.737254917622,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.978,0.978],"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":"Transformar"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Circle Red Fill","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":21,"s":[0],"e":[98]},{"t":28}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[80,80,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":21,"s":[0,0,100],"e":[200,200,100]},{"t":28}],"ix":6}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":0,"k":[64,64],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.800000011921,0.35686275363,0.35686275363,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":40,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/neon_phal_plugin_system/ui/animations/status-success.json b/neon_phal_plugin_system/ui/animations/status-success.json new file mode 100644 index 0000000..6551cc2 --- /dev/null +++ b/neon_phal_plugin_system/ui/animations/status-success.json @@ -0,0 +1 @@ +{"v":"5.3.4","fr":15,"ip":0,"op":40,"w":160,"h":160,"nm":"Success Checkmark","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Check Mark","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[80,80,0],"ix":2},"a":{"a":0,"k":[-1.313,6,0],"ix":1},"s":{"a":0,"k":[200,200,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-15.75,8],[-8,16],[13.125,-4]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":25,"s":[0],"e":[100]},{"t":33}],"ix":1},"e":{"a":0,"k":0,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Circle Flash","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":25,"s":[0],"e":[98]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":30,"s":[98],"e":[0]},{"t":38}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[80,80,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":25,"s":[0,0,100],"e":[200,200,100]},{"t":30}],"ix":6}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":0,"k":[64,64],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5450980392156862,0.5450980392156862,0.5450980392156862,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Circle Stroke","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[78.044,78.044,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":16,"s":[200,200,100],"e":[160,160,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":22,"s":[160,160,100],"e":[240,240,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":25,"s":[240,240,100],"e":[200,200,100]},{"t":29}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[60,60],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":0,"s":[0],"e":[100]},{"t":16}],"ix":1},"e":{"a":0,"k":0,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.427450984716,0.800000011921,0.35686275363,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0.978,0.978],"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,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Circle Green Fill","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":21,"s":[0],"e":[98]},{"t":28}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[80,80,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":21,"s":[0,0,100],"e":[200,200,100]},{"t":28}],"ix":6}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":0,"k":[64,64],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.427450984716,0.800000011921,0.35686275363,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":40,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/ovos_PHAL_plugin_system/version.py b/neon_phal_plugin_system/version.py similarity index 100% rename from ovos_PHAL_plugin_system/version.py rename to neon_phal_plugin_system/version.py diff --git a/requirements.txt b/requirements.txt index 34e2e79..7bc565b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ ovos-plugin-manager>=0.0.26,<1.0.0 ovos-utils>=0.1.0,<1.0.0 ovos_config>=0.0.5,<1.0.0 -ovos-bus-client>=1.1.0,<2.0.0 +ovos-bus-client>=0.0.8,<2.0.0 diff --git a/setup.py b/setup.py index d20cd1f..7d4eb80 100755 --- a/setup.py +++ b/setup.py @@ -7,8 +7,7 @@ def get_version(): """ Find the version of the package""" - version = None - version_file = os.path.join(BASEDIR, 'ovos_PHAL_plugin_system', + version_file = os.path.join(BASEDIR, 'neon_phal_plugin_system', 'version.py') major, minor, build, alpha = (None, None, None, None) with open(version_file) as f: @@ -55,20 +54,20 @@ def get_description(): long_description = f.read() return long_description -PLUGIN_ENTRY_POINT = 'ovos-PHAL-plugin-system=ovos_PHAL_plugin_system:SystemEventsPlugin' -ADMIN_ENTRY_POINT = 'ovos-PHAL-plugin-system=ovos_PHAL_plugin_system:SystemEventsAdminPlugin' +PLUGIN_ENTRY_POINT = 'neon-phal-plugin-system=neon_phal_plugin_system:SystemEventsPlugin' +ADMIN_ENTRY_POINT = 'neon-phal-plugin-system=neon_phal_plugin_system:SystemEventsAdminPlugin' setup( - name='ovos-PHAL-plugin-system', + name='neon-phal-plugin-system', version=get_version(), - description='A plugin for OpenVoiceOS hardware abstraction layer', + description='A plugin for OVOS/Neon hardware abstraction layer', long_description=get_description(), long_description_content_type="text/markdown", - url='https://github.com/OpenVoiceOS/ovos-PHAL-plugin-system', - author='JarbasAi', - author_email='jarbasai@mailfence.com', + url='https://github.com/NeonGeckoCom/neon-phal-plugin-system', + author='NeonGecko', + author_email='developers@neon.ai', license='Apache-2.0', - packages=['ovos_PHAL_plugin_system'], - package_data={'': package_files('ovos_PHAL_plugin_system')}, + packages=['neon_phal_plugin_system'], + package_data={'': package_files('neon_phal_plugin_system')}, install_requires=required("requirements.txt"), zip_safe=True, classifiers=[