1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-07-17 02:44:04 +02:00
Commit Graph

2327 Commits

Author SHA1 Message Date
Mormegil
3a58314db6 Garmin Vivomove HR support
- communication protocols
- device support implementation
- download FIT file storage

Features:
- basic connectivity: time sync, battery status, HW/FW version info
- real-time activity tracking
- fitness data sync
- find the device, find the phone
- factory reset

Features implemented but not working:
- notifications: fully implemented, seem to communicate correctly, but not shown on watch

Features implemented partially (not expected to work now):
- weather information (and in future possibly weather alerts)
- music info
- firmware update: only the initial file upload implemented, not used

Things to improve/change:
- Device name hardcoded in `VivomoveHrCoordinator.getSupportedType`, service UUIDs not available
- Download FIT file storage: Should be store (and offer the user to export?) the FIT data forever?
- Obviously, various code improvements, cleanup, etc.
2023-07-20 20:30:14 +00:00
José Rebelo
258023a05d Zepp OS: Fix reminder creation
Regression introduced by 9d3c480414
2023-07-12 23:27:15 +01:00
José Rebelo
525f1567c1 Huami: Prevent activity data fetch if there is no data to fetch
More information in #3201

Fixes #3196
2023-07-12 23:21:56 +01:00
José Rebelo
ccfc112e2b Huami: Persist workout raw details even if gpx has no points 2023-07-12 23:18:31 +01:00
Richard de Boer
8e270fcbf7
Bangle.js: refactoring
Extract handling of packet types with large code blocks.
Incidentally fixes "intent" packets launching a full calendar sync if
intents are disabled in GB settings.
2023-07-11 20:46:50 +02:00
José Rebelo
298dbbe777 LeFun: Broadcast when HR samples are received 2023-07-09 14:29:39 +00:00
José Rebelo
da5f91f05b Huami/Zepp OS: Improve music info stability 2023-07-09 15:16:37 +01:00
José Rebelo
708cb0c617 Zepp OS: Attempt to parse raw sensor values 2023-07-05 17:47:19 +01:00
José Rebelo
fea3bf50a4 Zepp OS: Add loyalty cards integration with Catima 2023-07-03 23:19:19 +01:00
José Rebelo
e95c8a3775 Add PAI charts 2023-07-02 16:05:10 +01:00
Gordon Williams
88e0b9543d Bangle.js: HTTP request XPath can now return Arrays.
More robost toJSON that deals with unicode and null
Log messages when converting words to images so we can debug when words are being converted that shouldn't be
2023-06-30 11:34:53 +01:00
Gordon Williams
0e0f72410a Bangle.js: fix mixup of navigation left slight&sharp icons 2023-06-29 14:49:22 +01:00
Gordon Williams
d82ba7a04c Bangle.js: Send the timestamp of our last activity sample to the Bangle on connect, so that it can update us on missing activity samples 2023-06-26 11:39:29 +01:00
Gordon Williams
2aac797dec Remove some build warnings in BangleJSDeviceSupport 2023-06-26 11:20:50 +01:00
Gordon Williams
8e010bc6dd Stop BangleJSDeviceSupport repeatedly calling GBLocationManager.stop and spamming the log with "Stop location updates" 2023-06-26 11:15:54 +01:00
Gordon Williams
94cd7523db Ensure we now escape chars in the unicode start range. With Bangle.js ~2v18.20+ we added Unicode support, but if we're sending non-unicode chars in the unicode range it will confuse Espruino 2023-06-26 11:07:38 +01:00
Lukas
6e3ce89ae5 add attribute to set the source of the gps signal 2023-06-22 21:37:55 +00:00
Lukas
6da6baa5e6 Add switch to control if the GPS chip should be used to locate the location 2023-06-22 21:37:55 +00:00
Arjan Schrijver
7c5cd4c032 Fossil/Skagen Hybrids: Increase accuracy of workout distance calculation 2023-06-19 15:57:09 +02:00
Arjan Schrijver
2081463a4f Fossil/Skagen Hybrids: Add UV index and chance of rain widgets
Note: this needs support from weather apps, for example:
https://github.com/TylerWilliamson/QuickWeather/pull/69
2023-06-18 22:11:07 +02:00
Arjan Schrijver
ff563022f5 Fossil/Skagen Hybrids: Fix weather icons day/night status 2023-06-17 22:54:41 +02:00
José Rebelo
88b7cd5756 Add stress charts 2023-06-17 17:28:11 +01:00
José Rebelo
9d3c480414 Zepp OS: Refactor config, display items, reminders and http to standalone services 2023-06-16 20:43:07 +01:00
José Rebelo
8f5bbec881 Zepp OS: Only cache apps and watchfaces 2023-06-15 22:07:08 +01:00
José Rebelo
fad7fa395b Zepp OS: Show watchfaces in app management 2023-06-15 22:04:01 +01:00
José Rebelo
9b7d5eee42 Zepp OS: Cache apps for app management 2023-06-15 21:59:16 +01:00
José Rebelo
853470a2bd Revert "Zepp OS: Unify support class and fw handling"
This reverts commit d59e8c3f62.

We need to refactor the Huami classes too, otherwise this needs a lot of
hacks to work properly.
2023-06-15 21:39:22 +01:00
José Rebelo
d59e8c3f62 Zepp OS: Unify support class and fw handling 2023-06-15 20:50:15 +01:00
José Rebelo
b3db9b7768 Zepp OS: Add screenshot support 2023-06-14 21:02:27 +01:00
José Rebelo
531aef61fd Move screenshot encoding to PebbleProtocol 2023-06-14 21:02:27 +01:00
José Rebelo
55cecceb38 Zepp OS: Add support for compressed file transfer 2023-06-14 21:02:27 +01:00
José Rebelo
d29e092ce7 Zepp OS: Fix file transfer service incoming file size parse 2023-06-14 21:02:27 +01:00
José Rebelo
3217e4a2dd Zepp OS: Add missing ack on file transfer service 2023-06-14 21:02:27 +01:00
José Rebelo
74dac3f5cd Huami 2021: Handle chunked ACKs 2023-06-14 15:45:49 +00:00
Andreas Shimokawa
f80b873866 Prefs: make allow high MTU default to true.
It is 2023, it should work, if not it can be turned off.

For newer devices with big firmwares and apps (like Mi Band 7), people just wonder how slow Gadgetbridge installs stuff...
2023-06-14 16:44:51 +02:00
Damien 'Psolyca' Gaignon
a3c0e10330
Add GBDevice argument to getAlarmSlotCount 2023-06-13 23:10:55 +02:00
Damien Gaignon
be575af314 Add BTBR service 2023-06-13 12:06:13 +00:00
Gordon Williams
b2aa61e182 Changed NavigationSpec's distance into a String.
Previously we used an integer (in meters) but when using
Google Maps navigation, Google Maps picks units based on locale *and*
the distance - it might report "100m" or "20km". Then we carefully undo
all that work, and for PineTime we just as "m" so you may well have "20000m"
or more displayed, which is not ideal.

I imagine at some point that will change, but we probably want to
be able to handle that in the OSMAnd side of Gadgetbridge so all watches
that implement navigation will benefit (and won't duplicate code).
2023-06-13 07:32:12 +00:00
José Rebelo
5c3b76b838 Add missing mutability flags to PendingIntents 2023-06-13 00:14:04 +01:00
José Rebelo
9e09fe15bf Huami: Fix stress sample timestamp increment 2023-06-12 08:58:10 +01:00
José Rebelo
9393d2c28f Zepp OS: Add service to query supported services 2023-06-11 18:34:40 +01:00
José Rebelo
c3c4c2ce74 Zepp OS: Add watch app logs developer option 2023-06-11 18:23:54 +01:00
José Rebelo
d38afe60c2 Zepp OS: Add incoming file support to file transfer service 2023-06-11 15:21:39 +01:00
José Rebelo
8ff3ce0477 Zepp OS: Add experimental app management 2023-06-10 23:31:38 +01:00
José Rebelo
d77a32a430 Zepp OS: Add code to toggle raw sensor data 2023-06-10 19:07:00 +01:00
José Rebelo
a3c59b0e0e Zepp OS: Add experimental sync of SpO2, stress, PAI, HR stats and sleep respiratory rate 2023-06-10 17:19:22 +01:00
José Rebelo
58704a0eec Zepp OS: Make Alexa an experimental feature 2023-06-10 17:15:36 +01:00
José Rebelo
3716a031ce Zepp OS: Implement Alexa service protocol 2023-06-10 17:05:09 +01:00
José Rebelo
42c37c04a0 Zepp OS: Display watchface and app preview on install 2023-06-10 13:34:48 +01:00
José Rebelo
003246ae1c Zepp OS: Fix zpk compatibility detection 2023-06-10 12:41:10 +01:00
Ganblejs
20de001e49 Bangle.js: Add more weather data sent to watch
Specifically UV Index, the day max and min temp, probability of rain.
Inspired by PR #3095

Bangle.js:Send UV Index with one decimal point
2023-06-09 20:55:32 +02:00
José Rebelo
1730064f11 Zepp OS: Match zpk compatibility by deviceSource 2023-06-09 18:35:29 +01:00
Gordon Williams
1fa8936544 Google Maps: Added more recognised icons - needed another enum for going all the way around a roundabout 2023-06-09 13:59:05 +01:00
Gordon Williams
735f27d5bf Add Navigation handling to Bangle.js
Add extra 'ETA' field to NavigationInfoSpec
Allow Local Notifications from Google Maps to be parsed into NavigationInfoSpec by GoogleMapsNotificationHandler

Moved notification handling after blacklist check as per https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3136#issuecomment-920095

Ensure we don't create a nav message for 'Location Shared with you' messages.
Recognise 'ft' as a distance unit and convert accordingly

Google Maps navigation: Adding new recognised icons, and removing warnings/errors from file
2023-06-09 08:50:40 +01:00
kieranc001
9c682da4cc Fix typos for Pinetime weather expiry time
The expiry time should be 6h (60 * 60 * 6), but has been set to 6 minutes (60 * 6) unintentionally in 3 places. 
This change sets the expiry to the correct value throughout the file.

Signed-off-by: kieranc001 <kieranc001@noreply.codeberg.org>
2023-06-08 14:30:10 +00:00
José Rebelo
dd01c77aca Zepp OS: Support flashing zab files 2023-06-08 14:22:15 +01:00
José Rebelo
594a611065 Zepp OS: Fix update operations on Zepp OS 2.1+ 2023-06-08 13:36:53 +01:00
Gordon Williams
b334773856 Bangle.js: fix the rare case where we're converting an emoji/unicode to a bitmap but it doesn't have a width/height - we just create a bitmap of min. 1px 2023-06-08 12:36:12 +01:00
Gordon Williams
e59375242e Bangle.js: Allow an activity sample to have a time specified - first steps in allowing Bangle.js to send 'missed' health data 2023-06-06 20:25:58 +01:00
Enrico Brambilla
93e8996b52 Fossil/Skagen Hybrids: Add support for ultraviolet index and rain probability
Updates WeatherSpec to v3 to add fields for UV index and precipitation probability
Co-authored-by: Enrico Brambilla <enricobilla@noreply.codeberg.org>
Co-committed-by: Enrico Brambilla <enricobilla@noreply.codeberg.org>
2023-06-05 19:52:26 +00:00
Richard de Boer
7e1685f5f9 Bangle.js: fix memory leak from HTTP requests
Every call to Volley.newRequestQueue() creates a new global thread pool,
which isn't automatically cleaned up once the request completes.
With this commit we create a RequestQueue around on first use, and reuse
it for subsequent requests.
2023-06-05 10:09:28 +00:00
José Rebelo
eb7366c7e3 Huami 2021: Prevent duplicated payload logging 2023-06-03 20:25:23 +01:00
José Rebelo
ed3ce6fa9d Huami: Fix stress timestamp off by 1 minute 2023-06-02 23:31:47 +01:00
José Rebelo
7e15462593 Huami: Migrate activity fetching to repeated fetch operation 2023-05-29 20:11:42 +01:00
José Rebelo
e55a35eced Huami: Persist sleep respiratory rate data 2023-05-27 19:03:43 +01:00
José Rebelo
a1e07b5d1b Huami: Persist PAI samples 2023-05-27 19:02:01 +01:00
José Rebelo
24f78655c2 Huami: Persist heart rate max, resting and manual samples 2023-05-27 18:59:12 +01:00
José Rebelo
347048dae5 Mi Band 7: Whitelist firmware 2.0.0.2 2023-05-24 23:33:02 +01:00
José Rebelo
9d966c8179 Huami: Add max HR fetch operation (no db persistence) 2023-05-23 22:35:24 +01:00
José Rebelo
c79a833bbf Huami: Add PAI fetch operation (no db persistence) 2023-05-23 22:25:58 +01:00
José Rebelo
733e5dd290 Huami: Map UTC offset in HR and respiratory rate fetch operations 2023-05-23 00:05:03 +01:00
Martin Boonk
fd9efdcb72 Bangle.js: Match default interval from resource file 2023-05-22 22:17:10 +00:00
Martin Boonk
88161bed91 Bangle.js: Inform user if GPS set to off in settings 2023-05-22 22:17:10 +00:00
Martin Boonk
d4bcbc52fb Bangle.js: Fix typo 2023-05-22 22:17:10 +00:00
Martin Boonk
a57a8cc7ca Bangle.js: Fix location listener not being cleaned up when waiting for reconnect 2023-05-22 22:17:10 +00:00
José Rebelo
3f87bfadd4 Huami: Add queued fetch operations 2023-05-22 22:15:35 +00:00
José Rebelo
23e9a3deb1 Huami: Persist stress and SpO2 data 2023-05-22 22:15:35 +00:00
Ernst
56e1efaa3d Fixed typo in "continue" turn and added roundabout left,right and offroute turns 2023-05-21 22:50:52 +02:00
Andreas Shimokawa
e7c048551f Infinitime: Fix icon mapping 2023-05-21 22:50:52 +02:00
Andreas Shimokawa
4cad3b3837 InfiniTime: support navigation app 2023-05-21 22:50:52 +02:00
José Rebelo
3a5d5dfbb0 Huami: Add sleep respiratory rate fetch operation (no db persistence) 2023-05-21 21:14:29 +01:00
José Rebelo
07357305cb Huami: Unify recorded data fetching in HuamiSupport 2023-05-20 20:44:18 +01:00
Gordon Williams
757e36ebd6 Bangle.js: Add message size limitation to Calendar and Messages - stops huge data streams being sent out esp for calendar events 2023-05-19 10:46:37 +01:00
José Rebelo
36d2fde49b Zepp OS: Improve weather models 2023-05-18 23:39:24 +01:00
José Rebelo
2b6a79f462 Zepp OS: Manage contacts on watch 2023-05-17 23:43:29 +01:00
José Rebelo
f68e4c865b Huami: Add stress, SpO2, heart rate fetch operations (no db persistence)
Introduce a reusable abstract logic for repeated fetch operations.

Add fetch operations for the following:
- Stress (manual and automatic)
- SpO2 (normal and sleep)
- Heart rate (manual and resting)
2023-05-17 21:56:54 +01:00
Arjan Schrijver
0bba156bec Deduplicate icon retrieval code 2023-05-17 14:09:17 +02:00
José Rebelo
76d99f1c33 Zepp OS: Start new GPX segments on pause/resume 2023-05-14 16:22:32 +01:00
José Rebelo
9851493cf1 Zepp OS: Add gpx route file upload 2023-05-14 14:20:39 +01:00
José Rebelo
e1cccd6953 Zepp OS: Refactor code for alarms, notifications, calendar, canned messages 2023-05-10 23:33:23 +01:00
Arjan Schrijver
f727f2fdcb Fossil/Skagen Hybrids: Pair watch to phone, fixes repeating confirmation request 2023-05-08 22:44:43 +02:00
José Rebelo
e0d481bb36 Sony WH-1000XM5: Add power off, fix battery, fix speak-to-chat fetch 2023-05-06 17:41:10 +01:00
José Rebelo
7b3fbeb4af Sony WH-1000XM5: Initial support 2023-05-06 16:03:48 +01:00
José Rebelo
e4933a0b42 Sony Headphones: Improve unit tests 2023-05-06 14:41:28 +01:00
José Rebelo
880bf9e1b1 Amazfit GTR 3 Pro: Initial support 2023-05-03 20:49:02 +01:00
José Rebelo
483ef27a4f Zepp OS: Set region on user info
This affects available features (eg. Alexa). Defaults to the previous
value of "unknown" for now, and no UI. Alexa requires a region where it
is available, such as Germany ("de").
2023-04-30 17:03:05 +01:00
José Rebelo
6c0a276441 Zepp OS: Add code for AQI shortcut card 2023-04-30 11:55:34 +01:00
José Rebelo
1d0b10ed0f Zepp OS: Refactor services config and init logic 2023-04-30 11:42:34 +01:00
José Rebelo
94c7b43ad4 Zepp OS: Map known watchfaces to human-readable names 2023-04-26 09:51:14 +01:00
José Rebelo
9a8e95bd18 Zepp OS: Set watchface from phone 2023-04-24 20:20:43 +01:00