1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-11-02 08:22:59 +01:00
Commit Graph

9323 Commits

Author SHA1 Message Date
Andreas Shimokawa
b4aca410b4 Pixoo: implement some protocol for testing 2023-12-07 21:07:52 +01:00
Andreas Shimokawa
b44b0fec7e Divoom Pixoo: Initial experimental support
Works:
- notifications
- call notification
- set time
- setting brightness
- setting 24h/12h format
- sending weather

Note
- this is implemented using using the classic bluetooth serial protocol, the
  device can do BLE, but I don't know how to use it, as I did not have the
  offical app to sniff.
- The information about the protocol comes from here
  https://github.com/jfroehlich/node-p1x3lramen/blob/main/source/devices/pixoo.js

TODO:
- Enable beep? Possible? I heard it beep once at least when switching it on
- Getting out of factory mode? Why does it always play animations even when I
   switch to the clock?
- Implement switching modes (can be done with the button)
- Implement sending own images and animations
- Firmware update?
- ...
2023-12-06 15:56:18 +01:00
José Rebelo
130e2ab85c Xiaomi: Fix heart rate interval and sleep support 2023-12-06 11:51:01 +00:00
José Rebelo
03dbf7533f Xiaomi: Get canned messages from watch 2023-12-06 11:18:13 +00:00
MrYoranimo
b902ee96c3 Xiaomi: improve battery level and charger status processing
Because the reporting of battery state is inconsistent between different
models, the device's battery state was not correctly processed in GB.

For at least the firmware on the Xiaomi Watch S1 Active, the charger
state is broadcast through a separate message from the message
containing the battery level. Even though the battery level was
requested by GB upon receiving this broadcast, the charger state got
discarded as it was expected to also be included in the result of the
subsequent request.

This patch changes the name of the `Charger` message to `DeviceState`
and includes more fields that may be presented by some device models.
Furthemore, the broadcast is cached so that the charger state can be
processed from this cache instead of the battery level response message.
2023-12-06 11:56:13 +01:00
MrYoranimo
405596d960 Xiaomi: check for null values before encoding MusicSpec to proto 2023-12-05 20:27:33 +01:00
MrYoranimo
561dc16b28 DeviceCommunicationService: catch uncaught exceptions from handleActions
Exceptions raised while handling actions in the device's support class
may result in the DeviceCommunicationService crashing as a whole and not
being started again until the user forces GB to make a connection by
pressing the device from the list.

This change is made, because Xiaomi devices make use of proto2 messages,
where optional fields cannot be set to null values as that will make it
throw NPEs.
2023-12-05 20:19:12 +01:00
José Rebelo
7f7834c620 Xiaomi: Fix reconnect if characteristics are null
If a service was found, but characteristics are null, maybe we're just
connecting too early - set the device to reconnect.
2023-12-05 18:30:33 +00:00
José Rebelo
4de7cb3591 Xiaomi: Improve service auto-detection
Some watches have the encrypted service, even though they're plaintext,
but are missing the characteristics.
2023-12-05 18:28:39 +00:00
José Rebelo
1c68252255 Xiaomi: Fix settings display items code 2023-12-05 18:20:02 +00:00
Andreas Shimokawa
776346d311 Xiaomi: guard against null pointer crash 2023-12-05 18:20:02 +00:00
José Rebelo
9ddbcc0c8a Xiaomi: Use display items labels from watch 2023-12-05 18:20:02 +00:00
José Rebelo
3ab1ac26db Refactor known preference values code to be reusable 2023-12-05 18:20:02 +00:00
José Rebelo
2dacdcface Xiaomi: Log service 2023-12-05 18:17:50 +00:00
José Rebelo
95d3ff81fd Xiaomi: Fetch alarm and reminder slots from watch 2023-12-05 18:16:45 +00:00
MrYoranimo
5f9fda4f07 BtLEQueue: fix typo in onCharacteristicChange 2023-12-04 23:32:23 +01:00
MrYoranimo
b303da4e62 Xiaomi: wrap parsing of activity data in try block
This will prevent uncaught exceptions that occur during the
parsing of activity data from breaking up the activity fetching
chain and causing the task to never get completed.
2023-12-04 23:32:18 +01:00
MrYoranimo
0f83346d65 Xiaomi: check if binary parser result is null
The activity parser may return null pointers in case the version
of the data structure is not supported. Not checking for null here may
result in the activity fetching task may never complete and cause
further communication with the device to grind to a halt.
2023-12-04 22:03:59 +01:00
José Rebelo
376956bbe9 Xiaomi: Improve activity fetch logging 2023-12-04 09:46:49 +00:00
José Rebelo
e6cb15d9eb Mi Watch Color Sport: Experimental support 2023-12-02 11:56:23 +00:00
José Rebelo
ec050d7a4f Xiaomi: Unify encrypted and plaintext logic 2023-12-02 11:25:32 +00:00
José Rebelo
ba0ca1de75 Delegate auth key validation to coordinator 2023-12-02 10:59:34 +00:00
José Rebelo
216dc93986 Mi Band 8: Overlay sleep on activity data 2023-12-02 10:56:36 +00:00
José Rebelo
84692e5432 Mi Band 8: Persist bedtime and wakeup times to database 2023-12-01 21:35:29 +00:00
Andreas Shimokawa
1b2a9ac140 Xiaomi: When sending contacts, use correct command to replace the ones already on the watch 2023-12-01 20:07:32 +01:00
Andreas Shimokawa
81e24e53ed Xiaomi: WIP implementation for sending contacts
This is not useful yet because contacts just get added when sending them, instaed of replacing.
Should be fixed or disabled before the release
2023-12-01 12:40:53 +01:00
Andreas Shimokawa
6e5bedb365 Xiaomi: Implement Screen On on Notification setting
Works on Redmi Watch 3 Active
Does not work on Mi Watch Lite
2023-12-01 07:52:08 +01:00
MrYoranimo
b9b91db06f Xiaomi: implement phonebook service to respond to contact info requests 2023-11-30 22:54:41 +01:00
Gordon Williams
684d976bfc Bangle.js: Ensure SMS messages have src field set to "SMS Message" (it was previously left out) 2023-11-30 09:33:07 +00:00
José Rebelo
5be3543fa3 Xiaomi Smart Band 7 Pro: Experimental support 2023-11-29 21:18:52 +00:00
José Rebelo
0c4e2df075 Xiaomi: Fix crash when opening app manager
Regression introduced by e53c67e8bf
2023-11-29 21:11:54 +00:00
MrYoranimo
dd6d9bd271 Add device icon for Mi Watch, Xiaomi Watch S1 Active 2023-11-29 20:27:44 +01:00
MrYoranimo
20cdef5283 Change some required fields to optional in Xiaomi protobuf specs
The Xiaomi Watch S1 Active does not send some fields that have
been declared as `required`, which results in those messages
not being processed at all.
2023-11-29 20:27:44 +01:00
MrYoranimo
6933b8a793 Add device coordinator for Xiaomi Watch S1 Active 2023-11-29 20:27:36 +01:00
Gordon Williams
8ef80a2565 Bangle.js: ensure GPS speed is reported correctly when the phone is providing it 2023-11-29 10:04:33 +00:00
mormegil
ec73b244ee Improve ASCII transliterator
We should use NFKD instead of NFD since we are flattening to US-ASCII
afterwards anyway. This allows various Unicode characters which would
end up as a question mark to be represented by their compatibility
decomposition. This applies to e.g. ligatures (e.g. U+FB01 LATIN SMALL
LIGATURE FI will now be replaced with plain fi instead of a question
mark), and also the U+00A0 NO-BREAK SPACE [NBSP] to be replaced by
a normal space instead of a question mark.

+Add Czech fancy quotes to the Czech transliterator
+Add a unit test for Multitransliterator
2023-11-28 18:24:42 +00:00
José Rebelo
99b3dc3226 Fix crash when pairing current device as companion 2023-11-28 18:12:12 +00:00
José Rebelo
ae75f82a63 Zepp OS: Improve activity fetch logging 2023-11-26 21:14:46 +00:00
José Rebelo
c5757ea478 Mi Band 8: Improve stress charts 2023-11-26 21:01:32 +00:00
José Rebelo
50cdcec846 Xiaomi: Delete device data when deleting device 2023-11-26 21:01:32 +00:00
José Rebelo
636f4adc8d Zepp OS: Delete device data when deleting device 2023-11-26 21:01:32 +00:00
José Rebelo
e53c67e8bf Xiaomi: Fix SpO2 2023-11-26 21:01:32 +00:00
Andreas Shimokawa
6f2876fa66 Mi Watch 3 Lite: Fix firmware update
(not enabled yet)
2023-11-26 00:22:37 +01:00
José Rebelo
096358c76f Fix unit tests 2023-11-25 23:08:02 +00:00
José Rebelo
34039094c1 Fix hungarian transliterator 2023-11-25 23:04:39 +00:00
Kornél Schmidt
58a8484322 added test, added to defaultLanguagesIfEnabled 2023-11-25 23:03:30 +00:00
ssilverr
ee3b4d4aa1 added HungarianTransliterator 2023-11-25 23:03:30 +00:00
José Rebelo
23b2b4247f Revert companion pairing to false by default 2023-11-25 22:53:55 +00:00
foxstidious
deeaf28de4 Limit characters in heading and subheading to 32 (or else casio won't display the notification) 2023-11-25 22:52:26 +00:00
foxstidious
40af20a176 Removed call to start intent if no companion, defaulted companion preference to true, and reordered casio alert preferences to match watch order. 2023-11-25 22:52:26 +00:00
foxstidious
1f115426fc Added preview message in title preference file 2023-11-25 22:52:26 +00:00
foxstidious
264ab14847 Fixed alert logic 2023-11-25 22:52:26 +00:00
foxstidious
be9b83eebf Fixed SMS copy/paste error 2023-11-25 22:52:26 +00:00
foxstidious
85d0722ffe Updates to address findings on PR 2023-11-25 22:52:26 +00:00
foxstidious
4dc10d1d02 Implemented better message preview, added ability to specify high-level alert by category 2023-11-25 22:52:26 +00:00
foxstidious
11bf0acf32 Changed notification timestamp format to be implemented specifically for GBD-200 2023-11-25 22:52:26 +00:00
foxstidious
6be7f7c9cc Fixed find phone on, added preference to preview messages on Casio GDB-200 2023-11-25 22:52:26 +00:00
foxstidious
a1b59774d4 Fixed notification time stamp on Casio GDB-200 2023-11-25 22:52:26 +00:00
foxstidious
d9d6a8dc29 Categorized Google Voice messages as GENERIC_SMS, cleaned up some Casio support code, added portion of message text to notification title 2023-11-25 22:52:26 +00:00
Andreas Böhler
6ef6c9be43 Fix Bonding for the Casio GB5600/6900/STB-1000 series 2023-11-25 22:46:45 +00:00
José Rebelo
8bd7e103d0 Update changelog 2023-11-25 22:30:25 +00:00
José Rebelo
e91ad80d27 Xiaomi: Cleanup code and comments 2023-11-25 22:18:34 +00:00
José Rebelo
7416159ba2 Xiaomi: Mark new devices as experimental 2023-11-25 22:17:09 +00:00
José Rebelo
543c8b28d0 Rename org.bouncycastle package
Fixes roboelectric in unit tests.
2023-11-25 21:16:53 +00:00
Andreas Shimokawa
84cf8efb59 Redmi Watch 3 Lite: Initial support
This is just using mi band 8 code, some feature work
2023-11-25 21:16:53 +00:00
José Rebelo
0dcb316461 Mi Band 8: Basic workout summary parser (wip) 2023-11-25 21:16:53 +00:00
José Rebelo
fa20bf66c6 Mi Band 8: Fix send gps location during workout 2023-11-25 21:16:53 +00:00
José Rebelo
dad97f9e96 Xiaomi: Update weather AQI and warning proto 2023-11-25 21:16:53 +00:00
José Rebelo
516b3dbf1e Mi Band 8: Fix notification icons for long package names 2023-11-25 21:16:53 +00:00
José Rebelo
8192106fc0 Mi Band 8: Fix notification icons mirroring 2023-11-25 21:16:53 +00:00
José Rebelo
3948f95505 Xiaomi: Dismiss notification from phone when dismiss from watch 2023-11-25 21:16:53 +00:00
José Rebelo
ff2a26756f Mi Band 8: Fix weather (set current location) 2023-11-25 21:16:53 +00:00
Andreas Shimokawa
50f086b03a Xiaomi: Implement daily forecast
Works on Mi Watch Lite
2023-11-25 21:16:53 +00:00
Andreas Shimokawa
e2f60b38c9 Xiaomi: fix NPE when no air quality is available 2023-11-25 21:16:53 +00:00
Andreas Shimokawa
0e3e406320 Xiaomi: Send AQI
Todo: map to strings
2023-11-25 21:16:53 +00:00
José Rebelo
047cc71d28 Mi Band 8: Upload custom notification icons 2023-11-25 21:16:53 +00:00
Andreas Shimokawa
9749716c23 Xiaomi: add two more fields to current weather (seen on Mi Band 8) 2023-11-25 21:16:53 +00:00
Andreas Shimokawa
929ea7ae57 Xiaomi: Implement sending current weather
TODO: Support °F, find out about unknown values

Tested on Mi Watch Lite
2023-11-25 21:16:53 +00:00
José Rebelo
cab63b2c98 Mi Band 8: Fix watchface upload 2023-11-25 21:16:53 +00:00
Andreas Shimokawa
27fba50283 Xiaomi: move emoji conversion to base class
This works on Mi Watch Lite from FW 4.1.12
2023-11-25 21:16:53 +00:00
Andreas Shimokawa
cef4b62458 Mi Watch Lite: enable install handler
Does not work as is because we do not recognize watchfaces and firmware yet
2023-11-25 21:16:53 +00:00
José Rebelo
29c183b88a Xiaomi: Refactor to install firmware (untested) 2023-11-25 21:16:53 +00:00
José Rebelo
c47e830056 Xiaomi: Watchface upload (wip, does not work) 2023-11-25 21:16:53 +00:00
José Rebelo
82a264cd65 Xiaomi: Improve emoji mapping efficiency 2023-11-25 21:16:53 +00:00
José Rebelo
b0d3fe6a51 Xiaomi: Set device language 2023-11-25 21:16:53 +00:00
José Rebelo
48e149aefe Xiaomi: Refactor XiaomiCharacteristic to improve logging and ordering
Fixes a potential race condition on initialization, since the chunked
commands were being scheduled on a separate transaction builder, which
would be scheduled to be written before the initialization.
2023-11-25 21:16:53 +00:00
José Rebelo
1acd3ac5fd Xiaomi: Remove usage of TransactionBuilders 2023-11-25 21:16:53 +00:00
José Rebelo
e2d7798e36 Xiaomi: Refuse delete of active watchface 2023-11-25 21:16:53 +00:00
José Rebelo
1b645f44d7 Xiaomi: Keep only watchface tab in app management 2023-11-25 21:16:53 +00:00
José Rebelo
a895a6aae7 Xiaomi: Set and delete watchfaces 2023-11-25 21:16:53 +00:00
José Rebelo
7fb81b6e0d Xiaomi: Fix edge cases in chunked math 2023-11-25 21:16:53 +00:00
José Rebelo
fa72820e5a Mi Band 8: Map emoji (inefficient) 2023-11-25 21:16:53 +00:00
José Rebelo
81ca617601 Xiaomi: Prevent NPE when not yet connected 2023-11-25 21:16:53 +00:00
José Rebelo
ce1d095074 Xiaomi: Add encrypted and plaintext coordinators 2023-11-25 21:16:53 +00:00
José Rebelo
4e680cfcce Mi Band 8: List watchface in app management 2023-11-25 21:16:53 +00:00
Andreas Shimokawa
9ea7b48e0c Xiaomi: Add outdoor running subtype to enum. 2023-11-25 21:16:53 +00:00
Andreas Shimokawa
7a3139fce0 Xiaomi: remove call notification if call has been taken on the phone or rejected, ended.
For in-call notification if those exist, it would not work.
2023-11-25 21:16:53 +00:00
José Rebelo
acba91d3c5 Xiaomi: Refactor daily parser slightly 2023-11-25 21:16:53 +00:00
José Rebelo
d3eb69fcf7 Mi Band 8: Send gps to watch (wip) 2023-11-25 21:16:53 +00:00
José Rebelo
0c27772bb5 Xiaomi: Map elliptical workout 2023-11-25 21:16:52 +00:00
José Rebelo
453ce5eedb Mi Band 8: Map some notification icon messages 2023-11-25 21:16:52 +00:00
Andreas Shimokawa
fce2dfa0ca Xiaomi: fix incoming calls on Mi Watch lite (shoud not break Mi Band 8) 2023-11-25 21:16:52 +00:00
Andreas Shimokawa
b09879dd31 Mi Watch Lite: disable some features that do not exist on the watch 2023-11-25 21:16:52 +00:00
Andreas Shimokawa
9e1a6ca76a Xiaomi: change order of enabling notifications 2023-11-25 21:16:52 +00:00
José Rebelo
04434f4a55 Mi Watch Lite: Attempt to fix activity parsing 2023-11-25 21:16:52 +00:00
Andreas Shimokawa
cd2d7d144e Xiaomi: Fix unencrypted support again 2023-11-25 21:16:52 +00:00
José Rebelo
8333b8b8d8 Mi Band 8: Sleep details parser (very very wip) 2023-11-25 21:16:52 +00:00
José Rebelo
aead518e05 Xiaomi: Implement daily activity parsing 2023-11-25 21:16:52 +00:00
José Rebelo
5dd746f2d6 Xiaomi: Ack activity before parsing for now 2023-11-25 21:16:52 +00:00
José Rebelo
afaf0baa79 Xiaomi: Cache firmware version 2023-11-25 21:16:52 +00:00
José Rebelo
db57072dd3 Xiaomi: Make activity file ID types readable 2023-11-25 21:16:52 +00:00
José Rebelo
5316a7dcf8 Xiaomi: Send device update intent on activity fetch start and finish 2023-11-25 21:16:52 +00:00
José Rebelo
e40b703678 Xiaomi: Dump activity data to storage 2023-11-25 21:16:52 +00:00
José Rebelo
bcefc39ad8 Mi Band 8: Restore setting of firmware version before initializing 2023-11-25 21:16:52 +00:00
José Rebelo
1b6bb20890 Xiaomi: Move initialization logic to base class 2023-11-25 21:16:52 +00:00
José Rebelo
d35bcef406 Mi Band 8: Fix activity fetching 2023-11-25 21:16:52 +00:00
José Rebelo
d66de2f94f Xiaomi: Fix activity file id encoding 2023-11-25 21:16:52 +00:00
Andreas Shimokawa
01a552e0f7 Mi Watch Lite: Do not set firmware version to ... during connect 2023-11-25 21:16:52 +00:00
Andreas Shimokawa
7de94432d0 Mi Watch Lite: authenticate via use XiaomiAuthService, handle subtype 5 send user id reply
This makes device info and battery status work since AuthService calls phase2Initialize()
2023-11-25 21:16:52 +00:00
José Rebelo
f3d6be2f96 Xiaomi: Handle chunked nack 2023-11-25 21:16:52 +00:00
Andreas Shimokawa
a19318c5bd Mi Watch Lite: more small fixes for non-encrypted path 2023-11-25 21:16:52 +00:00
Andreas Shimokawa
b103b4f3e4 Mi Watch Lite: fix unencrypted support after refactoring common Xiaomi code 2023-11-25 21:16:52 +00:00
José Rebelo
1920968fba Mi Watch Lite: Attempt to fix plaintext support 2023-11-25 21:16:52 +00:00
José Rebelo
d953fd5b5b Mi Watch Lite: Refactor to use XiaomiCharacteristic 2023-11-25 21:16:52 +00:00
Andreas Shimokawa
84dff5b8df fix initialization 2023-11-25 21:16:52 +00:00
Andreas Shimokawa
cdef620700 Mi Watch Lite: use xiaomi protobuf for sending user id 2023-11-25 21:16:52 +00:00
Andreas Shimokawa
d3fa3e2c05 Xiaomi Protocol: Add userId auth command 2023-11-25 21:16:52 +00:00
Andreas Shimokawa
7803581922 Mi Watch Lite test based on miband 8 branch
very much wip
2023-11-25 21:16:52 +00:00
José Rebelo
b5a1846e49 Mi Band 8: Fix chunked encryption 2023-11-25 21:16:52 +00:00
José Rebelo
544909a970 Mi Band 8: Activity fetching basics 2023-11-25 21:16:52 +00:00
José Rebelo
4662da3b82 Mi Band 8: Fix chunked receive decryption 2023-11-25 21:16:52 +00:00
José Rebelo
57c7a083aa Mi Band 8: Set display items (wip, chunked is broken) 2023-11-25 21:16:52 +00:00
José Rebelo
0ed169c153 Xiaomi: Refactor characteristics (wip, chunked is broken) 2023-11-25 21:16:52 +00:00
José Rebelo
ae0a7bb806 Mi Band 8: Activity fetch base (wip) 2023-11-25 21:16:52 +00:00
José Rebelo
6c710d594d Zepp OS: Attempt to fix repeating fetch operation getting stuck 2023-11-25 21:16:52 +00:00
José Rebelo
7124d337e1 Mi Band 8: Implement reminders 2023-11-25 21:16:52 +00:00
José Rebelo
cca34af13b Mi Band 8: Fix alarms flakyness 2023-11-25 21:16:52 +00:00
José Rebelo
f56a4b9f0c Mi Band 8: Add MTU warn on sendCommand 2023-11-25 21:16:52 +00:00
José Rebelo
a9b481d72d Mi Band 8: Sync calendar events 2023-11-25 21:16:52 +00:00
José Rebelo
905dfc3323 Mi Band 8 proto: Start mapping DataUpload 2023-11-25 21:16:52 +00:00
José Rebelo
809a809082 Mi Band 8: Replace sleep time with sleep mode schedule (fix crash) 2023-11-25 21:16:51 +00:00
José Rebelo
76c2a18af5 Mi Band 8: Add realtime stats failsafe 2023-11-25 21:16:33 +00:00
José Rebelo
fcf680f799 Mi Band 8: Add find watch 2023-11-25 21:16:33 +00:00
José Rebelo
18fc29fae7 Mi Band 8: Save number of pending alarm acks (wip) 2023-11-25 21:16:33 +00:00
José Rebelo
29fe3bc6ae Mi Band 8: Sleep mode schedule 2023-11-25 21:16:33 +00:00
José Rebelo
d9c3a8de90 Mi Band 8: Fix music 2023-11-25 21:16:33 +00:00
José Rebelo
becb10e9f8 Mi Band 8: Handle user info ack 2023-11-25 21:16:33 +00:00
José Rebelo
44be081e86 Mi Band 8: Handle incoming chunked packets 2023-11-25 21:16:33 +00:00
José Rebelo
f0188f3499 Mi Band 8: Refactor cipher to auth service 2023-11-25 21:16:33 +00:00
José Rebelo
e21b35981b Mi Band 8: Weather temperature unit 2023-11-25 21:16:33 +00:00
José Rebelo
f978329711 Mi Band 8: Display items (wip, needs chunked) 2023-11-25 21:16:33 +00:00
José Rebelo
5cc40f554e Mi Band 8: Widgets proto 2023-11-25 21:16:33 +00:00
José Rebelo
f286df9ecf Mi Band 8: Notification and calls (working, but wip) 2023-11-25 21:16:33 +00:00
José Rebelo
94cde94fbc Mi Band 8: Display items more section 2023-11-25 21:16:33 +00:00
José Rebelo
8f89acbb25 Mi Band 8: Fix crash due to preference type mismatch 2023-11-25 21:16:33 +00:00
José Rebelo
eb2a2ca742 Mi Band 8: Display items (wip) 2023-11-25 21:16:33 +00:00
José Rebelo
e8695a5792 Mi Band 8: Fix stress relaxation reminder 2023-11-25 21:16:33 +00:00
José Rebelo
54e31a1521 Mi Band 8: HR, SpO2, Stress settings (untested, wip) 2023-11-25 21:16:33 +00:00
José Rebelo
8a7e6649b7 Mi Band 8: Password (untested) 2023-11-25 21:16:33 +00:00
José Rebelo
8531cfb0a1 Mi Band 8: Start handling config changes 2023-11-25 21:16:33 +00:00
José Rebelo
e68d6dd7b7 Mi Band 8: Canned messages (wip) 2023-11-25 21:16:33 +00:00
José Rebelo
fd76c7b13b Mi Band 8: Find phone 2023-11-25 21:16:33 +00:00
José Rebelo
b27c75c09a Mi Band 8: World clocks (wip) 2023-11-25 21:16:33 +00:00
José Rebelo
28bd9eeed6 Mi Band 8: Fix heart rate one-shot measurements 2023-11-25 21:16:33 +00:00
José Rebelo
241486f7c3 Mi Band 8: Update to use getSupportedDeviceName 2023-11-25 21:16:33 +00:00
José Rebelo
08eb22b4cb Mi Band 8: Import Bouncy Castle 1.76 classes 2023-11-25 21:16:33 +00:00
José Rebelo
4ede29d1f1 Mi Band 8: Toggle realtime stats (wip) 2023-11-25 21:16:33 +00:00
José Rebelo
f23347c47d Mi Band 8: Add broken notifications 2023-11-25 21:16:33 +00:00
José Rebelo
290383627e Mi Band 8: Fix system service 2023-11-25 21:16:33 +00:00
José Rebelo
7af155281c Mi Band 8: Remove custom pairing activity
Does not seem to be needed (or work, actually)
2023-11-25 21:16:33 +00:00
José Rebelo
fda3b53657 Mi Band 8: Initial support (WIP) 2023-11-25 21:16:31 +00:00
Arjan Schrijver
fac566c7da Support selecting enabled navigation apps 2023-11-23 22:57:34 +01:00
Arjan Schrijver
70acf47a2e Make GMaps navigation handler follow the "navigation forwarding" setting 2023-11-23 22:37:24 +01:00
Arjan Schrijver
8add6c4da9 Autodetect OsmAnd package name and make it configurable 2023-11-23 22:33:12 +01:00
Davis Mosenkovs
2ef44e766e PineTime: Improve notification handling
* If setting enabled, add source application (or SMS)
* Fallback to using notification subject if body is unavailable
* Trim/cut sender or title at 25+ chars if necessary
* Better support for notifications without body or subject
2023-11-23 21:30:42 +00:00
Davis Mosenkovs
88d553771d PineTime: Honor Sync time setting on connect 2023-11-23 21:30:42 +00:00
Gordon Williams
66b36564ab Bangle.js: Attempt to fix some of the warnings generated by Android Studio - some addec null checks, and appending using StringBuilder 2023-11-20 11:42:41 +00:00
Gordon Williams
140c62ac55 Bangle.js: Fix #2996 - force a reconnect when rx/tx characteristics can't be found 2023-11-20 11:02:16 +00:00
bowornsin
ec843b5447
Translated using Weblate (Thai)
Currently translated at 0.5% (12 of 2323 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/th/
2023-11-17 13:06:17 +01:00
Vincèn PUJOL
5859bda739
Translated using Weblate (French)
Currently translated at 100.0% (2323 of 2323 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/fr/
2023-11-16 22:23:38 +01:00
0que
af724dbbb4
Translated using Weblate (Russian)
Currently translated at 99.4% (2311 of 2323 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/
2023-11-16 22:23:38 +01:00
Xtremo3
6e49bde339
Translated using Weblate (Polish)
Currently translated at 100.0% (2323 of 2323 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pl/
2023-11-16 22:23:38 +01:00
Rex_sa
d37df89572
Translated using Weblate (Arabic)
Currently translated at 100.0% (2323 of 2323 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ar/
2023-11-16 22:23:38 +01:00
Ihor Hordiichuk
3e26390a9c
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (2323 of 2323 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/uk/
2023-11-16 22:23:38 +01:00
arjan-s
ff11f8bf5f
Translated using Weblate (Dutch)
Currently translated at 100.0% (2323 of 2323 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nl/
2023-11-16 22:23:38 +01:00
gallegonovato
2c8af99313
Translated using Weblate (Spanish)
Currently translated at 100.0% (2323 of 2323 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/es/
2023-11-16 22:23:38 +01:00
Manuel-Senpai
b3a5cd6eda
Translated using Weblate (Spanish)
Currently translated at 100.0% (2323 of 2323 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/es/
2023-11-16 22:23:38 +01:00
陈少举
e9e6c7fb50
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (2323 of 2323 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/
2023-11-16 22:23:38 +01:00
Davis Mosenkovs
176e81f1c0 Display alias in low battery notification 2023-11-16 21:23:35 +00:00
Davis Mosenkovs
20850858d2 Mijia LYWSD02: Add low battery notification 2023-11-10 00:03:54 +02:00
José Rebelo
5abd46d7ba Amazfit T-Rex Ultra: Remove experimental 2023-11-09 21:52:14 +00:00
Gordon Williams
cb0962e0f6 Bangle.js: Ensure we split Chinese words every 2 chars when converting them to bitmaps to give us the opportunity to wrap text better
Also make sure we never create a bitmap >255 width/height as this wouldn't work on Espruino
2023-11-09 15:12:59 +00:00
Gordon Williams
f4707c15f4 Bangle.js - mention 'Android Integration' app for Bangle, not 'Gadgetbridge', add extra character conversions 2023-11-08 10:51:00 +00:00
Gordon Williams
1aadc04fd7 Bangle.js: add more non-ascii characters which can be converted to ASCII equivalents.
This helps for Chinese where words would normally break on these chars anyway - based on https://forum.espruino.com/conversations/391391
2023-11-06 14:42:24 +00:00
rany
340171e0bb Zepp OS: Fix sunrise and moon dates being off by local time + UTC offset
Fixes #3400

Signed-off-by: rany <ranygh@riseup.net>
2023-11-03 20:56:16 +00:00
José Rebelo
4c4e18560f Amazfit Bip 5: Remove experimental 2023-11-03 20:53:01 +00:00
Davis Mosenkovs
e6a0350197 Mijia LYWSD02: Fix battery drain on Mijia 2023-11-03 18:37:55 +00:00
Arjan Schrijver
3d543db24f Fossil/Skagen Hybrids: Update navigationApp to version 1.0 2023-11-02 16:33:21 +01:00
Martin.JM
c793453f16 Add blood oxygen graph 2023-10-29 20:43:46 +01:00
José Rebelo
0c47d12c0f Amazfit Active / Active Edge: Experimental support 2023-10-29 19:19:20 +00:00
Daniel Dakhno
eb0747b926 Device Management: centralized DeviceType resolution cache 2023-10-29 13:45:48 +00:00
José Rebelo
3d8ae8596c Fix unit tests 2023-10-28 15:53:47 +01:00
José Rebelo
dc825c87e7 Extract device type migration to standalone function 2023-10-27 20:15:14 +01:00
Daniel Dakhno
c2a9f5d805 Device management: store deviceType name in DB 2023-10-27 19:14:49 +00:00
Daniele Gobbetti
0da552aa33 GenericWeatherReceiver: use forecast source for uvIndex and precipProbability 2023-10-27 19:01:10 +02:00
arjan-s
6fb951db6b
Translated using Weblate (Dutch)
Currently translated at 100.0% (2320 of 2320 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nl/
2023-10-24 22:04:23 +00:00
Rex_sa
36ff4be5c8
Translated using Weblate (Arabic)
Currently translated at 100.0% (2320 of 2320 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ar/
2023-10-23 03:02:33 +00:00
陈少举
179986d4c5
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (2320 of 2320 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/
2023-10-23 03:02:32 +00:00
Yusuf Cihan
331ba709b6
Translated using Weblate (Turkish)
Currently translated at 85.2% (1977 of 2320 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/tr/
2023-10-23 03:02:31 +00:00
0que
4f4834f4d5
Translated using Weblate (Russian)
Currently translated at 99.4% (2308 of 2320 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/
2023-10-23 03:02:30 +00:00
Xtremo3
fa5821f7e3
Translated using Weblate (Polish)
Currently translated at 100.0% (2320 of 2320 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pl/
2023-10-23 03:02:29 +00:00
glemco
d5bd97b51f
Translated using Weblate (Italian)
Currently translated at 94.9% (2203 of 2320 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/it/
2023-10-23 03:02:28 +00:00
Rex_sa
fac6789395
Translated using Weblate (Arabic)
Currently translated at 100.0% (2316 of 2316 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ar/
2023-10-20 08:57:44 +00:00
gallegonovato
71d884f388
Translated using Weblate (Spanish)
Currently translated at 99.5% (2305 of 2316 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/es/
2023-10-20 08:57:43 +00:00
陈少举
b1dc02a616
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (2314 of 2314 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/
2023-10-20 08:57:42 +00:00
0que
86c4129b9d
Translated using Weblate (Russian)
Currently translated at 99.3% (2299 of 2314 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/
2023-10-20 08:57:41 +00:00
Rex_sa
1e838221aa
Translated using Weblate (Arabic)
Currently translated at 100.0% (2312 of 2312 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ar/
2023-10-20 08:57:40 +00:00
陈少举
20a590e307
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (2312 of 2312 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/
2023-10-20 08:57:40 +00:00
Reiner Herrmann
5625e487b1
Translated using Weblate (German)
Currently translated at 98.3% (2275 of 2312 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/
2023-10-20 08:57:39 +00:00
陈少举
03e0637bf3
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (2306 of 2306 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/
2023-10-20 08:57:38 +00:00
0que
520ac00669
Translated using Weblate (Russian)
Currently translated at 99.7% (2300 of 2306 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/
2023-10-20 08:57:37 +00:00
gallegonovato
48f4b46663
Translated using Weblate (Spanish)
Currently translated at 99.9% (2305 of 2306 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/es/
2023-10-20 08:57:36 +00:00
陈少举
5ce6f665fd
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (2291 of 2291 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/
2023-10-20 08:57:35 +00:00
Rafael Fontenelle
361a74d019
Translated using Weblate (Portuguese (Brazil))
Currently translated at 59.7% (1368 of 2291 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pt_BR/
2023-10-20 08:57:34 +00:00
gallegonovato
89aebd4cd1
Translated using Weblate (Spanish)
Currently translated at 99.9% (2290 of 2291 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/es/
2023-10-20 08:57:34 +00:00
Traladarer
47596bc2cc
Translated using Weblate (German)
Currently translated at 98.7% (2257 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/
2023-10-20 08:57:33 +00:00
0que
a0dd1a17e1
Translated using Weblate (Russian)
Currently translated at 100.0% (2285 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/
2023-10-20 08:57:32 +00:00
Ihor Hordiichuk
1412e29d0b
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (2285 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/uk/
2023-10-20 08:57:31 +00:00
0que
bf8cb3d9f4
Translated using Weblate (Russian)
Currently translated at 100.0% (2285 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/
2023-10-20 08:57:30 +00:00
kirill blaze
65a9ce0bdf
Translated using Weblate (Russian)
Currently translated at 100.0% (2285 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/
2023-10-20 08:57:29 +00:00
Ray
1fc13e6452
Translated using Weblate (Russian)
Currently translated at 100.0% (2285 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/
2023-10-20 08:57:29 +00:00
gallegonovato
c9f97011c2
Translated using Weblate (Spanish)
Currently translated at 100.0% (2285 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/es/
2023-10-20 08:57:28 +00:00
Linerly
d11d6cb2e2
Translated using Weblate (Indonesian)
Currently translated at 100.0% (2285 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/id/
2023-10-20 08:57:27 +00:00
陈少举
df9f92c62a
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (2285 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/
2023-10-20 08:57:26 +00:00
arjan-s
52f52fbc22
Translated using Weblate (Dutch)
Currently translated at 100.0% (2285 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nl/
2023-10-20 08:57:25 +00:00
0que
e3c182008f
Translated using Weblate (Russian)
Currently translated at 99.9% (2283 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/
2023-10-20 08:57:25 +00:00
Xtremo3
3cbb4c5461
Translated using Weblate (Polish)
Currently translated at 100.0% (2285 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pl/
2023-10-20 08:57:24 +00:00
Yaron Shahrabani
e71a469180
Translated using Weblate (Hebrew)
Currently translated at 100.0% (2285 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/he/
2023-10-20 08:57:23 +00:00
Vincèn PUJOL
8f6a1edce5
Translated using Weblate (French)
Currently translated at 100.0% (2285 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/fr/
2023-10-20 08:57:22 +00:00
gallegonovato
c318fe5705
Translated using Weblate (Spanish)
Currently translated at 99.9% (2284 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/es/
2023-10-20 08:57:22 +00:00
Rex_sa
691b2e87c1
Translated using Weblate (Arabic)
Currently translated at 100.0% (2285 of 2285 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ar/
2023-10-20 08:57:21 +00:00
0que
e1cea39390
Translated using Weblate (Russian)
Currently translated at 100.0% (2283 of 2283 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/
2023-10-20 08:57:20 +00:00
Rex_sa
95bf18c63d
Translated using Weblate (Arabic)
Currently translated at 100.0% (2283 of 2283 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ar/
2023-10-20 08:57:19 +00:00
Linerly
2207715f90
Translated using Weblate (Indonesian)
Currently translated at 100.0% (2283 of 2283 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/id/
2023-10-20 08:57:18 +00:00
陈少举
fcfd947f17
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (2283 of 2283 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/
2023-10-20 08:57:18 +00:00
Ihor Hordiichuk
c94bca877d
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (2283 of 2283 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/uk/
2023-10-20 08:57:17 +00:00
Yaron Shahrabani
73b7c96eca
Translated using Weblate (Hebrew)
Currently translated at 100.0% (2283 of 2283 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/he/
2023-10-20 08:57:16 +00:00
Vincèn PUJOL
65da9c1890
Translated using Weblate (French)
Currently translated at 100.0% (2283 of 2283 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/fr/
2023-10-20 08:57:15 +00:00
Manuel-Senpai
8e884afb95
Translated using Weblate (Spanish)
Currently translated at 100.0% (2283 of 2283 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/es/
2023-10-20 08:57:14 +00:00
0que
6a5a9b2cfc
Translated using Weblate (Russian)
Currently translated at 100.0% (2282 of 2282 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/
2023-10-20 08:57:14 +00:00