diff --git a/.gitea/ISSUE_TEMPLATE.md b/.gitea/ISSUE_TEMPLATE.md
deleted file mode 100644
index f6dedd485..000000000
--- a/.gitea/ISSUE_TEMPLATE.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-name: Bug report
-about: Create a report to help us improve
-
----
-You can use the `Preview` tab ^ above to see final rendering of your report. Use `x` in brackets ([x]) to "check" a checkbox.
-
-If you just have a question, please ask first in the user chatroom in Matrix: [`#gadgetbridge:matrix.org`](https://matrix.to/#/#gadgetbridge:matrix.org)
-
-
-#### Before reporting a bug, please confirm the following:
-- [ ] I have read the [wiki](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki), and I didn't find a solution to my problem / an answer to my question.
-- [ ] I have searched the [issues](https://codeberg.org/Freeyourgadget/Gadgetbridge/issues), and I didn't find a solution to my problem / an answer to my question.
-- [ ] If you upload an image or other content, please make sure you have read and understood the [Codeberg Terms of Use](https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse.md)
-
-### Where did you get Gadgetbridge from:
-* [ ] F-Droid
-* [ ] Gadgetbridge Nightly F-Droid repository
-* [ ] Bangle.js Gadgetbridge from the Play Store
-* [ ] I built it myself from source code (specify tag / commit)
-* [ ] I previously used Gadgetbridge from other sources and then updated to F-Droid version
-
-### Your Gadgetbridge version is:
-
-(This can be found in Gadgetbridge - Menu - About: Version and Commit)
-
-#### Your issue is:
-*If possible, please attach [logs](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Log-Files)! that might help identifying the problem.*
-*Long logs can be also included but make sure to tuck them into the `details` tag:*
-
-
- Click to see my log under this fold
-
-```
-Here go lines of your log.
-```
-
-
-
-#### Your wearable device is:
-
-*Please specify model and firmware version if possible*
-
-#### Your Android version/manufacturer flavor is:
-
-
-*New issues about already solved/documented topics could be closed without further comments. Same for too generic or incomplete reports.*
-
-Please use `Preview` tab above to see final rendering of your report before submitting.
diff --git a/.gitea/ISSUE_TEMPLATE/bug_report.md b/.gitea/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index f6dedd485..000000000
--- a/.gitea/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-name: Bug report
-about: Create a report to help us improve
-
----
-You can use the `Preview` tab ^ above to see final rendering of your report. Use `x` in brackets ([x]) to "check" a checkbox.
-
-If you just have a question, please ask first in the user chatroom in Matrix: [`#gadgetbridge:matrix.org`](https://matrix.to/#/#gadgetbridge:matrix.org)
-
-
-#### Before reporting a bug, please confirm the following:
-- [ ] I have read the [wiki](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki), and I didn't find a solution to my problem / an answer to my question.
-- [ ] I have searched the [issues](https://codeberg.org/Freeyourgadget/Gadgetbridge/issues), and I didn't find a solution to my problem / an answer to my question.
-- [ ] If you upload an image or other content, please make sure you have read and understood the [Codeberg Terms of Use](https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse.md)
-
-### Where did you get Gadgetbridge from:
-* [ ] F-Droid
-* [ ] Gadgetbridge Nightly F-Droid repository
-* [ ] Bangle.js Gadgetbridge from the Play Store
-* [ ] I built it myself from source code (specify tag / commit)
-* [ ] I previously used Gadgetbridge from other sources and then updated to F-Droid version
-
-### Your Gadgetbridge version is:
-
-(This can be found in Gadgetbridge - Menu - About: Version and Commit)
-
-#### Your issue is:
-*If possible, please attach [logs](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Log-Files)! that might help identifying the problem.*
-*Long logs can be also included but make sure to tuck them into the `details` tag:*
-
-
- Click to see my log under this fold
-
-```
-Here go lines of your log.
-```
-
-
-
-#### Your wearable device is:
-
-*Please specify model and firmware version if possible*
-
-#### Your Android version/manufacturer flavor is:
-
-
-*New issues about already solved/documented topics could be closed without further comments. Same for too generic or incomplete reports.*
-
-Please use `Preview` tab above to see final rendering of your report before submitting.
diff --git a/.gitea/ISSUE_TEMPLATE/device_request.md b/.gitea/ISSUE_TEMPLATE/device_request.md
deleted file mode 100644
index 1470500df..000000000
--- a/.gitea/ISSUE_TEMPLATE/device_request.md
+++ /dev/null
@@ -1,51 +0,0 @@
----
-name: Device request
-about: Request for a new device
-labels:
-- device request
----
-
-You are trying to submit a request for a device implementation into Gadgetbridge. We cannot make any promise that the device will be implemented, as adding an implementation for a new device requires either an experienced or a willing to learn developer, ideally with the device at hand. Without that, you may try to submit a device request and see if anyone steps up and implements it and you are basically indicating that you have the device and are willing to help with testing, should anyone try to add this device to Gadgetbridge.
-
-You can use the `Preview` tab ^ above to see final rendering of your report. Use `x` in brackets ([x]) to "check" a checkbox.
-
-#### Before proceeding further, please confirm the following:
-- [ ] I have read the [wiki](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki), and I didn't find this device mentioned there
-- [ ] I have searched the [issues](https://codeberg.org/Freeyourgadget/Gadgetbridge/issues), and I didn't find this device mentioned there
-- [ ] Please make sure you have read and understood the [Codeberg Terms of Use](https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse.md)
-
-#### Device information
-
-- Provide device name, manufacturer and similarity to other devices:
-
-
-- Ideally, use an Android Bluetooth scanner app like nRF Connect or BLExplorer and provide screenshots of the scanned device from that app. This provides a name and some available UUIDs, which are needed for implementation. You may want to blur a MAC address for privacy reasons.
-
-
-- Specify model and firmware version if possible:
-
-
-- Please let us know if you have the device and if you are able to provide logs and testing:
-
-
-- If you want to help getting this device supported (and thus speed up the process), please take a look at:
- - what you can do as a user: [Support for a new Device](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Support-for-a-new-Device)
- - if you are a developer and could maybe even help getting the code ready: [New Device Tutorial](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/New-Device-Tutorial)
-
-- If possible, please attach [logs](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Log-Files)! which might help to implement the device support into Gadgetbridge.
-*Long logs can be also included in the text but make sure to tuck them into the `details` tag below:*
-
-
- Click to see my log under this fold
-
-```
-Here go lines of your log.
-```
-
-
-
-
-
-*New issues about already solved/documented topics could be closed without further comments. Same for too generic or incomplete reports.*
-
-Please use `Preview` tab above to see final rendering of your report before submitting.
diff --git a/.gitea/ISSUE_TEMPLATE/feature_request.md b/.gitea/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index 4e92a04aa..000000000
--- a/.gitea/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-name: Feature request
-about: Suggest a feature or an idea
----
-You can use the `Preview` tab ^ above to see final rendering of your report. Use `x` in brackets ([x]) to "check" a checkbox.
-
-If you just have a question, please ask first in the user chatroom in Matrix: [`#gadgetbridge:matrix.org`](https://matrix.to/#/#gadgetbridge:matrix.org)
-
-#### Before requesting a new feature, please confirm the following:
-- [ ] I have read the [wiki](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki), and I didn't find a solution to my problem / an answer to my question.
-- [ ] I have searched the [issues](https://codeberg.org/Freeyourgadget/Gadgetbridge/issues), and I didn't find a solution to my problem / an answer to my question.
-- [ ] If you upload an image or other content, please make sure you have read and understood the [Codeberg Terms of Use](https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse.md)
-
-#### Log files
-*If applicable, please attach [logs](https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Log-Files)*
-*Long logs can be also included in the text but make sure to tuck them into the `details` tag below:*
-
-
- Click to see my log under this fold
-
-```
-Here go lines of your log.
-```
-
-
-
-#### Your wearable device is:
-
-*Please specify model and firmware version if possible*
-
-#### Your Android version/manufacturer flavor is:
-
-#### Your Gadgetbridge version is:
-
-
-
-*New requests about already solved/documented topics could be closed without further comments. Same for too generic or incomplete reports.*
-
-Please use `Preview` tab above to see final rendering of your report before submitting.
-
diff --git a/.gitea/PULL_REQUEST_TEMPLATE.md b/.gitea/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index 5b92d9460..000000000
--- a/.gitea/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Thank you for your contribution! đ
-
-Please make sure that you:
-
-- Use `git rebase` to bring your branch up to date, do not use a merge commit
- for that
-- Do not add translations by editing the language variants of strings.xml as
- that creates merge conflicts between Codeberg git repo and Weblate git repo,
- use Weblate https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/
-- do not use `e.printStacktrace()`, use slf4j logger or `GB.toast` for logging
- as per https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Developer-Documentation#logging
-- Please erase these hints from this PR :), thank you!
----
-
diff --git a/.gitea/issue_template/bug_report.yml b/.gitea/issue_template/bug_report.yml
new file mode 100644
index 000000000..a4c186ae0
--- /dev/null
+++ b/.gitea/issue_template/bug_report.yml
@@ -0,0 +1,77 @@
+name: Bug report
+about: Create a report to help us improve.
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to make Gadgetbridge better!
+
+ If you just have a question, please ask first in the user chatroom in Matrix at [`#gadgetbridge:matrix.org`](https://matrix.to/#/#gadgetbridge:matrix.org)
+ - type: checkboxes
+ attributes:
+ label: Please confirm that;
+ options:
+ - label: I have checked the [website](https://gadgetbridge.org), and I didn't find a solution to my problem / an answer to my question.
+ required: true
+ - label: I have searched the [issues](https://codeberg.org/Freeyourgadget/Gadgetbridge/issues), and I didn't find a solution to my problem / an answer to my question.
+ required: true
+ - label: I have read and understood the [Codeberg Terms of Use](https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse.md) for images or other type of content that I included here.
+ required: true
+ - type: dropdown
+ id: source
+ attributes:
+ label: Where did you get Gadgetbridge from?
+ options:
+ - F-Droid
+ - Gadgetbridge Nightly F-Droid repository
+ - Bangle.js Gadgetbridge from the Play Store
+ - I built it myself from source code
+ - I previously used Gadgetbridge from other sources and then updated to F-Droid version
+ validations:
+ required: true
+ - type: input
+ id: version
+ attributes:
+ label: What is your Gadgetbridge version?
+ description: |
+ This can be found in "Menu > About > Version" in Gadgetbridge.
+ Also include tag / commit SHA if you built Gadgetbridge from the source.
+ placeholder: e.g. "0.77.0" or "0.77.0-2618adac1" to include commit
+ validations:
+ required: true
+ - type: textarea
+ id: content
+ attributes:
+ label: What happened?
+ description: >
+ Please note that new issues about already solved/documented topics
+ **could be closed without further comments.** Same for too generic or incomplete reports.
+ placeholder: If you want to include logs, don't include it here. Use the next text field for that.
+ validations:
+ required: true
+ - type: textarea
+ id: logs
+ attributes:
+ label: Do you have logs?
+ description: >
+ If possible, please attach [logs](https://gadgetbridge.org/internals/topics/logs/)
+ that might help identifying the problem. This will be automatically formatted into
+ code, so no need for backticks.
+ render: shell
+ - type: input
+ id: gadget
+ attributes:
+ label: What gadget do you use?
+ description: >
+ Please specify model and firmware version if possible. Leave blank if you believe the
+ issue is not specific to the gadget that you currently use with Gadgetbridge.
+ placeholder: e.g. ExampleWatch A1 with 0.1 firmware
+ - type: input
+ id: android
+ attributes:
+ label: What is your Android version/manufacturer flavor?
+ description: >
+ Android phone manufacturers may customise the Android source code as they wish, so
+ if you are using a phone that running a vendor-exclusive system (like MIUI) or if
+ you use a custom ROM, make sure to also include the name of the OS/ROM.
+ placeholder: e.g. LineageOS 20 based on Android 13
\ No newline at end of file
diff --git a/.gitea/issue_template/config.yml b/.gitea/issue_template/config.yml
new file mode 100644
index 000000000..4abd84b80
--- /dev/null
+++ b/.gitea/issue_template/config.yml
@@ -0,0 +1,11 @@
+blank_issues_enabled: false
+contact_links:
+ - name: Ask a question
+ url: https://matrix.to/#/#gadgetbridge:matrix.org
+ about: If you just have a question, please ask in the user chatroom in Matrix.
+ - name: Website
+ url: https://gadgetbridge.org
+ about: Visit Gadgetbridge website for FAQ, getting started and common troubleshooting.
+ - name: See supported gadgets
+ url: https://gadgetbridge.org/gadgets/
+ about: List of all supported gadget vendors and models in Gadgetbridge.
\ No newline at end of file
diff --git a/.gitea/issue_template/device_request.yml b/.gitea/issue_template/device_request.yml
new file mode 100644
index 000000000..724f12054
--- /dev/null
+++ b/.gitea/issue_template/device_request.yml
@@ -0,0 +1,77 @@
+name: Device request
+about: Request for a new device/gadget.
+labels:
+ - device request
+body:
+ - type: markdown
+ attributes:
+ value: >
+ You are trying to submit a request for a device implementation into Gadgetbridge.
+ **We cannot make any promise that the device will be implemented**, as adding an implementation
+ for a new device requires either an experienced or a willing to learn developer,
+ ideally with the device at hand. Without that, you may try to submit a device request
+ and see if anyone steps up and implements it and you are basically indicating that you
+ have the device and are willing to help with testing, should anyone try to add
+ this device to Gadgetbridge.
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to make Gadgetbridge better!
+
+ If you just have a question, please ask first in the user chatroom in Matrix at [`#gadgetbridge:matrix.org`](https://matrix.to/#/#gadgetbridge:matrix.org)
+ - type: checkboxes
+ attributes:
+ label: Please confirm that;
+ options:
+ - label: I have checked the [website](https://gadgetbridge.org) and [gadget list](https://gadgetbridge.org/gadgets/), and I didn't find this device mentioned there.
+ required: true
+ - label: I have searched the [issues](https://codeberg.org/Freeyourgadget/Gadgetbridge/issues), and I didn't find this device mentioned there.
+ required: true
+ - label: I have read and understood the [Codeberg Terms of Use](https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse.md) for images or other type of content that I included here.
+ required: true
+ - type: input
+ id: gadget
+ attributes:
+ label: Which gadget are you requesting support for?
+ description: Please specify name, manufacturer, model and firmware version if possible.
+ placeholder: e.g. ExampleWatch A1 with 0.1 firmware
+ validations:
+ required: true
+ - type: input
+ id: version
+ attributes:
+ label: Does this gadget have similarities to other gadgets?
+ description: >
+ If the gadget you request support for has similarities to other gadgets that we currently support,
+ it is more likely for us (still, not guaranteed) to add support for your gadget too.
+ - type: textarea
+ id: info
+ attributes:
+ label: Device information
+ description: >
+ Include all details about the gadget that will be useful to us when implementing a support for this gadget.
+
+ Ideally, use an Android Bluetooth scanner app like nRF Connect or BLExplorer and provide screenshots
+ of the scanned gadget from that app. This provides a name and some available UUIDs, which are needed
+ for implementation. You may want to blur MAC addresses for privacy reasons.
+ placeholder: If you want to include logs, don't include it here. Use the next text field for that.
+ validations:
+ required: true
+ - type: textarea
+ id: logs
+ attributes:
+ label: Do you have logs?
+ description: >
+ If possible, please attach [logs](https://gadgetbridge.org/internals/topics/logs/)
+ which might help to implement the device support into Gadgetbridge. This will be automatically
+ formatted into code, so no need for backticks.
+ render: shell
+ - type: dropdown
+ id: source
+ attributes:
+ label: Do you have the gadget and are you able to help us for testing?
+ options:
+ - Yes, I have the gadget and I'm willing to provide further feedback and help testing.
+ - No, I don't have the gadget or/and I'm not able to help during the development.
+ validations:
+ required: true
\ No newline at end of file
diff --git a/.gitea/issue_template/feature_request.yml b/.gitea/issue_template/feature_request.yml
new file mode 100644
index 000000000..cdabcef1a
--- /dev/null
+++ b/.gitea/issue_template/feature_request.yml
@@ -0,0 +1,76 @@
+name: Feature request
+about: Suggest a feature or an idea.
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to make Gadgetbridge better!
+
+ If you just have a question, please ask first in the user chatroom in Matrix at [`#gadgetbridge:matrix.org`](https://matrix.to/#/#gadgetbridge:matrix.org)
+ - type: checkboxes
+ attributes:
+ label: Please confirm that;
+ options:
+ - label: I have checked the [website](https://gadgetbridge.org), and I didn't find a solution to my problem / an answer to my question.
+ required: true
+ - label: I have searched the [issues](https://codeberg.org/Freeyourgadget/Gadgetbridge/issues), and I didn't find a solution to my problem / an answer to my question.
+ required: true
+ - label: I have read and understood the [Codeberg Terms of Use](https://codeberg.org/Codeberg/org/src/branch/main/TermsOfUse.md) for images or other type of content that I included here.
+ required: true
+ - type: dropdown
+ id: source
+ attributes:
+ label: Where did you get Gadgetbridge from?
+ options:
+ - F-Droid
+ - Gadgetbridge Nightly F-Droid repository
+ - Bangle.js Gadgetbridge from the Play Store
+ - I built it myself from source code
+ - I previously used Gadgetbridge from other sources and then updated to F-Droid version
+ validations:
+ required: true
+ - type: input
+ id: version
+ attributes:
+ label: What is your Gadgetbridge version?
+ description: |
+ This can be found in "Menu > About > Version" in Gadgetbridge.
+ Also include tag / commit SHA if you built Gadgetbridge from the source.
+ placeholder: e.g. "0.77.0" or "0.77.0-2618adac1" to include commit
+ validations:
+ required: true
+ - type: textarea
+ id: content
+ attributes:
+ label: What is your suggestion/idea?
+ description: >
+ Please note that new requests about already solved/documented topics
+ **could be closed without further comments.** Same for too generic or incomplete reports.
+ placeholder: If you want to include logs, don't include it here. Use the next text field for that.
+ validations:
+ required: true
+ - type: textarea
+ id: logs
+ attributes:
+ label: Do you have logs?
+ description: >
+ If possible, please attach [logs.](https://gadgetbridge.org/internals/topics/logs/)
+ This will be automatically formatted into code, so no need for backticks.
+ render: shell
+ - type: input
+ id: gadget
+ attributes:
+ label: What gadget do you use?
+ description: >
+ Please specify model and firmware version if possible. Leave blank if you believe the
+ issue is not specific to the gadget that you currently use with Gadgetbridge.
+ placeholder: e.g. ExampleWatch A1 with 0.1 firmware
+ - type: input
+ id: android
+ attributes:
+ label: What is your Android version/manufacturer flavor?
+ description: >
+ Android phone manufacturers may customise the Android source code as they wish, so
+ if you are using a phone that running a vendor-exclusive system (like MIUI) or if
+ you use a custom ROM, make sure to also include the name of the OS/ROM.
+ placeholder: e.g. LineageOS 20 based on Android 13
\ No newline at end of file
diff --git a/.gitea/pull_request_template.md b/.gitea/pull_request_template.md
new file mode 100644
index 000000000..021ab4b7b
--- /dev/null
+++ b/.gitea/pull_request_template.md
@@ -0,0 +1,16 @@
+
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
index 19b292ea4..cc9db9855 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,6 @@
-[submodule "fossil-hr-watchface"]
- path = external/fossil-hr-watchface
- url = https://codeberg.org/Freeyourgadget/fossil-hr-watchface
[submodule "jerryscript"]
path = external/jerryscript
url = https://github.com/jerryscript-project/jerryscript
+[submodule "fossil-hr-gbapps"]
+ path = external/fossil-hr-gbapps
+ url = https://codeberg.org/Freeyourgadget/fossil-hr-gbapps
diff --git a/.woodpecker/can_master_build.yml b/.woodpecker/can_master_build.yml
index dde54fb5c..fb239d34c 100644
--- a/.woodpecker/can_master_build.yml
+++ b/.woodpecker/can_master_build.yml
@@ -12,5 +12,8 @@ steps:
#https://github.com/woodpecker-ci/woodpecker/issues/687
when:
- event:
- exclude: ['cron', 'deployment']
+ # Everything except cron (nightly) and deployment
+ - event: push
+ - event: pull_request
+ - event: tag
+ - event: manual
diff --git a/.woodpecker/nightly.yml b/.woodpecker/nightly.yml
index b245e61fc..38894cc10 100644
--- a/.woodpecker/nightly.yml
+++ b/.woodpecker/nightly.yml
@@ -26,8 +26,8 @@ steps:
- if [ -f .do_not_build ]; then return 0; fi
# build the apks
- echo "$${SIGNING_KEY}" | base64 -d > app/keystore.p12
- - ./gradlew assembleMainNightly -Dnightly_store_file="keystore.p12" -Dnightly_store_password="$${KEYSTOREPASS}" -Dnightly_key_alias="gadgetbridge" -Dnightly_key_password="$${KEYPASS}"
- - ./gradlew assembleMainNopebble -Dnightly_store_file="keystore.p12" -Dnightly_store_password="$${KEYSTOREPASS}" -Dnightly_key_alias="gadgetbridge" -Dnightly_key_password="$${KEYPASS}"
+ - ./gradlew assembleMainlineNightly -Dnightly_store_file="keystore.p12" -Dnightly_store_password="$${KEYSTOREPASS}" -Dnightly_key_alias="gadgetbridge" -Dnightly_key_password="$${KEYPASS}"
+ - ./gradlew assembleMainlineNopebble -Dnightly_store_file="keystore.p12" -Dnightly_store_password="$${KEYSTOREPASS}" -Dnightly_key_alias="gadgetbridge" -Dnightly_key_password="$${KEYPASS}"
- ./gradlew assembleBanglejsNightly -Dnightly_store_file="keystore.p12" -Dnightly_store_password="$${KEYSTOREPASS}" -Dnightly_key_alias="gadgetbridge" -Dnightly_key_password="$${KEYPASS}"
secrets: [ signing_key, keystorepass, keypass ]
diff --git a/.woodpecker/run_lint.yml b/.woodpecker/run_lint.yml
index f78bb032c..83a6501eb 100644
--- a/.woodpecker/run_lint.yml
+++ b/.woodpecker/run_lint.yml
@@ -12,5 +12,8 @@ steps:
#https://github.com/woodpecker-ci/woodpecker/issues/687
when:
- event:
- exclude: ['cron', 'deployment']
+ # Everything except cron (nightly) and deployment
+ - event: push
+ - event: pull_request
+ - event: tag
+ - event: manual
diff --git a/.woodpecker/run_tests.yml b/.woodpecker/run_tests.yml
index 2c5a16fdc..cf5717f5a 100644
--- a/.woodpecker/run_tests.yml
+++ b/.woodpecker/run_tests.yml
@@ -12,5 +12,8 @@ steps:
#https://github.com/woodpecker-ci/woodpecker/issues/687
when:
- event:
- exclude: ['cron', 'deployment']
+ # Everything except cron (nightly) and deployment
+ - event: push
+ - event: pull_request
+ - event: tag
+ - event: manual
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8cea7cb0e..602be018f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,35 +1,136 @@
### Changelog
-#### Next release (WIP)
+#### 0.79.0
+* Initial support for Honor Magic Watch 2
+* Initial support for Mijia MHO-C303
+* Initial support for Nothing CMF Watch Pro
+* Initial support for Sony WI-SP600N
+* Experimental support for Redmi Watch 2
+* Experimental support for Xiaomi Smart Band 8 Pro
+* Experimental support for Xiaomi Watch S1 Pro
+* Experimental support for Xiaomi Watch S1
+* Experimental support for Xiaomi Watch S3
+* Galaxy Buds2 Pro: Fix recognition of some versions
+* Huawei Watch GT 2: Fix pairing
+* Redmi Smart Band Pro: Fix password digits
+* Pebble: Fix app configuration page
+* Pebble 2: Fix pairing issue
+* PineTime: Fix weather forecast on InfiniTime's new simple weather
+* Xiaomi: Fix sleep sometimes extending past the wakeup time
+* Xiaomi: Request battery level and charging state periodically
+* Xiaomi: Fix sleep stage parsing for some devices
+* Zepp OS: Improve device discovery
+* Zepp OS: Fix weather not working on some devices
+* Zepp OS: Prevent crash when installing large firmware updates
+* Fix sport activity summary group order
+* Fix reconnection to devices failing occasionally
+
+#### 0.78.0
+* Initial support for Honor Band 3,4,5,6
+* Initial support for Huawei Band 4, 4 Pro, 6, 7, 3e, 4e
+* Initial support for Huawei Talk Band B6
+* Initial support for Huawei Watch GT, GT 2
+* Initial support for Mijia LYWSD03MMC
+* Initial support for Nothing Ear (2)
+* Initial support for Nothing Ear (Stick)
+* Experimental support for Honor Band 7
+* Experimental support for Redmi Watch 2 Lite
+* Experimental support for Redmi Smart Band Pro
+* Casio GBX100: Add support for snooze alarm
+* Fossil/Skagen Hybrids: Update navigationApp to 1.1
+* Huami: Fetch SpO2 on devices that support it
+* Pebble: Attempt to fix app configuration webview
+* PineTime: Add support for InfiniTime's new simple weather
+* PineTime: Fix freeze and reboot when upgrading firmware
+* Pixoo: Enable sending images (non-persistent)
+* Pixoo: Get and send alarms
+* Pixoo: Set custom device name
+* Pixoo: support "clap hands to turn off screen" and "sleep after silence" settings
+* Xiaomi: Improve activity and workout parsing
+* Xiaomi: Improve stability and fix some crashes
+* Xiaomi: Improve weather
+* Xiaomi: Parse sleep stages
+* Add a notifications channel for connection status notifications
+* Improve automatic connection to all or previous devices
+* Fix devices sometimes staying stuck in a "Connecting" state
+* Map some missing Google Maps navigation actions
+
+#### 0.77.0
* Initial support for Amazfit Balance
+* Initial support for Amazfit Active
+* Initial support for ColaCao 2021
+* Initial support for ColaCao 2023
* Initial support for Femometer Vinca II
* Initial support for Mijia LYWSD02MMC variant
* Initial support for Sony Wena 3
+* Experimental support for Divoom Pixoo
* Experimental support for Sony WF-1000XM5
+* Experimental support for Amazfit Active Edge
+* Experimental support for Mi Band 7 Pro (Xiaomi Smart Band 7 Pro)
+* Experimental support for Mi Band 8 (Xiaomi Smart Band 8)
+* Experimental support for Mi Watch Lite
+* Experimental support for Mi Watch Color Sport
+* Experimental support for Redmi Smart Band 2
+* Experimental support for Redmi Watch 3 Active
+* Experimental support for Xiaomi Watch S1 Active
* Amazfit Band 7: Add alexa menu entries
* Amazfit GTR 3 Pro: Fix firmware and watchface upload
* Amazfit T-Rex: Fix activity summary parsing
+* Amazfit T-Rex Pro: Add activate display on lift sensitivity
* AsteroidOS: Add more supported watch models
* AsteroidOS: Fix media info
* AsteroidOS: Fix notification dismissal
* Bangle.js: Add loyalty cards integration with Catima
+* Bangle.js: Ensure SMS messages have src field set to "SMS Message"
+* Bangle.js: Fix GPS speed
+* Bangle.js: Improve handling of chinese characters
* Bangle.js: Lower threshold for low battery warning
+* Bangle.js: Recover from device initialization failure
* Casio GBX100/GBD-200: Fix first connect
+* Casio GB5600/6900/STB-1000: Fix pairing
+* Casio GDB-200: Fix notification timestamp
+* Casio GDB-200: Fixed notification categories and default category
+* Casio GDB-200: Allow preview of notification message alongside title
+* Casio GDB-200: Fixed find my phone feature
+* Intent API: Add debug action for test new function
+* Fossil/Skagen Hybrids: Add new navigation app
+* Fossil/Skagen Hybrids: Allow configuring call rejection method
* Fossil/Skagen Hybrids: Fix some preference crashes on the nightly
* Fossil/Skagen Hybrids: Reduce toasts on release builds
+* Fossil/Skagen Hybrids: Show device specific settings in more logical order
+* Huami: Toggle phone silent mode from band
* Message privacy: Add mode Hide only body
* Mijia LYWSD02: Add battery
+* Mijia LYWSD02: Add low battery notification
* Mijia LYWSD02: Set temperature unit
+* Mijia LYWSD02: Fix battery drain while connected
* PineTime: Display app name for VoIP app calls
+* PineTime: Honor Sync time setting on connect
+* PineTime: Improve notification handling
* PineTime: Reduce weather memory usage
* Withings Steel HR: Fix crash when calibrating hands on the nightly
+* Zepp OS: Add blood oxygen graph
* Zepp OS: Add workout codes for hiking and outdoor swimming
+* Zepp OS: Allow disabling app notifications per device
+* Zepp OS: Attempt to fix activity fetch operation getting stuck
+* Zepp OS: Display swimming activity data
* Zepp OS: Fix health settings on older Zepp OS versions
* Zepp OS: Fix setting of unknown button press apps
+* Zepp OS: Fix sunrise and moon dates being off by local time + UTC offset
* Zepp OS: Map hiking, outdoor swimming, climbing and table tennis activity types
-* Add transliteration for Latvian and Common Symbols
+* Zepp OS: Toggle phone silent mode from band
+* Add transliteration for Latvian, Hungarian, Common Symbols
+* Allow multiple device actions to be triggered for the same event
+* Allow toggling DND through device actions
+* Autodetect OsmAnd package name and make it configurable
+* Improve ASCII transliterator
+* Make GMaps navigation handler follow the "navigation forwarding" setting
+* Support selecting enabled navigation apps
* Allow ignore notifications from work profile apps
+* Display alias in low battery notification
+* Fix crash when pairing current device as companion
* Fix emoji when a transliterator is enabled
+* Fix UV Index and rain probability for some weather apps
* Improve device discovery stability and fix freezes
* Improve Telegram and COL Reminder notifications
* Replace old-style preference switch with Material 3 switch
diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst
index 732608c8c..62a05ff0a 100644
--- a/CONTRIBUTORS.rst
+++ b/CONTRIBUTORS.rst
@@ -24,89 +24,143 @@
* Andreas Shimokawa
* Carsten Pfeiffer
+* JosÊ Rebelo
* Daniele Gobbetti
-* Daniel Dakhno
* Petr VanÄk
* Yaron Shahrabani
-* Allan Nordhøy
-* Taavi Eomäe
+* Daniel Dakhno
* éå°ä¸ž
-* Rafael Fontenelle
-* JoaĖo Paulo Barraca
-* Sebastian Kranz
+* Arjan Schrijver
+* Vincèn PUJOL
+* OÄuz Ersen
+* Allan Nordhøy
+* Ihor Hordiichuk
* nautilusx
+* Taavi Eomäe
+* Gordon Williams
+* Rafael Fontenelle
+* Michal L
+* Sebastian Kranz
+* JoaĖo Paulo Barraca
+* Linerly
+* Rex_sa
* mamucho
* postsorino
-* OÄuz Ersen
-* FransM
+* Manuel-Senpai
* Andreas BÃļhler
+* FransM
* Jonas
+* HenRy
* Yukai Li
* Roi Greenberg
-* HenRy
+* gallegonovato
+* Nikita Epifanov
+* kirill blaze
+* Ãscar FernÃĄndez DÃaz
+* Jeannette L
* Vadim Kaushan
* protomors
* Cre3per
-* Michal L
-* JosÊ Rebelo
-* Vincèn PUJOL
-* Nikita Epifanov
+* Davis Mosenkovs
+* ssantos
* Michael
+* glemco
* 115ek
+* 0que <0que@users.noreply.hosted.weblate.org>
+* ĐĄĐ°ŅĐ° ĐĐĩŅŅОвиŅ
* naofum
-* Gordon Williams
+* My Random Thoughts
+* Damien 'Psolyca' Gaignon
+* 0eoc <0eoc@users.noreply.hosted.weblate.org>
* mesnevi
-* Jeannette L
+* Kintu
* youzhiran <2668760098@qq.com>
* mueller-ma
* ivanovlev
* Tijl Schepens
-* ssantos
* Sophanimus
* Pavel Elagin
+* NekoBox
+* MPeter <>
+* MrYoranimo
* mondstern
* HadriÃĄn Candela
+* Ãcs ZoltÃĄn
* Zhong Jianxin
-* Kintu
+* Milo Ivir
+* Gabriele Monaco
+* foxstidious
+* Andy Yang
* Abdullah Manaz
+* Richard de Boer
* mkusnierz <>
* Julien Pivotto
+* tomechio
* Steffen Liebergeld
+* Skrripy
+* Petr Kadlec
+* Pavel
* Lem Dulfo
+* Dmitriy Bogdanov
+* Olexandr Nesterenko
* Nevena Mircheva
+* musover
* Matthieu Baerts
-* J. Lavoie
* Felix Konstantin Maurer
-* Andy Yang
+* Axus Wizix
+* Xtremo3
* Utsob Roy
* taras3333
* Sergey Trofimov
+* Sebastian Krey
+* Noodlez
* M. Hadi
+* Martin Boonk
+* Lukas
+* Ganblejs
+* Deixondit
+* akasaka / Genjitsu Labs
* Szylu
* Robert Barat
-* Pavel
+* Reza Almanda
* Mario
* ksiwczynski
* JohnnySun
* Gilles Ãmilien MOREL
-* Deixondit
+* firekonstantin
+* bruh
* Uwe Hermann
+* Patric Gruber
* opavlov
-* Olexandr Nesterenko
+* Michalis
+* Mario Rossi
+* ifurther
* Edoardo Rosa
-* Dmitriy Bogdanov
+* d
* BoÅŧydar
* Alberto
+* AiLab
* zsolt3991
+* winver
* Vladislav Serkov
* Vebryn
+* uli
* Ted Stein
+* sinore
+* Shimon
+* Reiner Herrmann
* NicoBuntu
+* Nee Sorry
+* Marc Nause
* Louis-Marie Croisez
+* KryÅĄtof ÄernÃŊ
+* Johannes Krude
* Jean-François Greffier
+* Hasan Ammar
* Giuseppe Caliendo
* Gergely Peidl
* Fabio Parri
+* Evo
* Emre
* Elwood
* Dmitry Markin
@@ -118,153 +172,236 @@
* 0nse <0nse@users.noreply.github.com>
* ĐĐ°ĐēŅиĐŧ Đ¯ĐēиĐŧŅŅĐē
* Ye Wint Htut Kyaw
+* xaos
+* Thomas
+* TheScientistPT
* SnowCat
+* Sergio Varela
* Sebastian Obrusiewicz
+* Sebastian Espinosa
+* Robbert Gurdeep Singh
* Rimas RaguliÅĢnas
+* mvn23
* Minori Hiraoka (미ë
¸ëĻŦ)
+* MASVA
* masakoodaa
* Marius Cornescu
-* Mario Rossi
+* mantas-p
* Lukas Veneziano
* LL
+* LizardWithHat
+* Lesur Frederic
* leela <53352@protonmail.com>
+* kukuruzka
* Kompact
+* Kalle
* K0L0B0G
* Johann C. Rode
+* jimman2003
* jfgreffier
* Jasper
+* ITCactus
+* illis
* Francesco Marinucci
+* FintasticMan
+* Doma GergÅ
* Dikay900
* Denis
* Christian Fischer
+* Benjamin Swartley
* Asbesbopispa
-* AiLab
* Adolfo Jayme Barrientos
* 6arms1leg
+* Your Name
* XqweX
* walkjivefly
* WaldiS
* Vytenis
* Vladislav Glinsky
* vishnu
-* Thomas
-* Sebastian Espinosa
+* Vianney le ClÊment de Saint-Marcq
+* Toby Murray
+* thyttan <6uuxstm66@mozmail.com>
+* Thorsten
+* Stephan Lachnit
+* Sebastian Reichel
* Saul Nunez
* Rui Mendes
+* roolx
+* rarder44
+* rany
* Ranved Sticon
* Rajesh Kumbhakar
+* Ptilopsis Leucotis
* petronovak
-* Petr Kadlec
* Pascal
* odavo32nof
+* octospacc
* NotAFIle
* Normano64
+* Nikolay Korotkiy
* Nick Spacek
-* Nee Sorry
+* Nekromanser
* Nathan
+* narektor
* MyTimeKill <26295589+MyTimeKill@users.noreply.github.com>
* MolnÃĄr BarnabÃĄs
* Moarc
* Michal Novotny
+* maxvel
+* Maxime Reyrolle
* Mattias MÃŧnster
* Mattherix
* Martin
* marco.altomonte
-* LizardWithHat
* Le Poisson Libre
+* Krzysztof Marcinek
* krzys_h
* Konrad Iturbe
+* Kamalei Zestri <38802353+KamaleiZestri@users.noreply.github.com>
+* Joel Beckmeyer
* JesÃēs
* JesÃēs F