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

529 Commits

Author SHA1 Message Date
Davis Mosenkovs
5d15df0751 CallSpec: Add source app for VoIP app calls 2023-10-10 20:03:44 +00:00
José Rebelo
99130eb472 Fix closeable file leak on weather cache 2023-10-06 21:38:35 +01:00
Daniel Dakhno
ef1d38d9d3 Device Manager: replaced getSupportedType with supports method
Huami: introduced getSupportedDeviceName

Huami: implemented getSupportedDeviceName

Huami: fixed typo

Device manager: added error on empty getSupportedDeviceName and empty supports()

Device manager: migrated more devices to getSupportedDeviceName

Device manager: simplified default supports implementation

Device manager: added caching for getSupportedDeviceName pattern

Device manager: added caching DeviceType resolution

Device manager: changed pattern matching find()->matches()

Device manager: use Candidate as caching key

Device manager: more verbose variable initialization

Device manager: fixed typo

Device manager: removed device caching from DeviceHelper

Gradle: removed protoc binary

Device manager: moved more devices to getSupportedDeviceName

Device manager: reduced usages of String.format

Device Vesc: removed multiple device types

Device management: regex improvements

Makibes HR3: fixed device recognition regex
2023-10-05 20:34:53 +00:00
José Rebelo
5f05a0d88f Sony WF-1000XM5: Experimental support 2023-09-28 23:53:58 +01:00
Daniel Dakhno
b97b26ce3a Device manager: moved device icons and name to Coordinator 2023-09-28 00:11:02 +03:00
vladkorotnev
889a1db801 Sony Wena 3: Initial support (#3311)
Co-authored-by: vladkorotnev <vladkorotnev@noreply.codeberg.org>
Co-committed-by: vladkorotnev <vladkorotnev@noreply.codeberg.org>
2023-09-23 10:31:41 +00:00
Daniel Dakhno
8c48a49d3a Mi Band HRX: added DeviceType for Mi Band HRX
Mi Band HRX: changed DeviceType key for MIBAND_HRX

Mi Band HRX: added migration to MIBAND_HRX

Mi Band HRX: added devicetype string for MIBAND_HRX

Huami HRX: removed redundant null check

Huami HRX: removed redundant supports callback
2023-09-18 22:08:09 +00:00
José Rebelo
2051ce2055 WeatherSpec: Fix typo in getLocation 2023-08-29 00:14:35 +01:00
Arjan Schrijver
d10745b0b3 Add getLocation method to WeatherSpec and use it for Zepp OS and Fossil/Skagen 2023-08-27 20:19:15 +00:00
José Rebelo
6d828260d0 WeatherSpec: Add some docs for AirQuality 2023-08-27 19:51:44 +01:00
José Rebelo
564cb1bfcc Introduce WeatherSpec v4
New fields for current weather:

- dewPoint
- pressure
- cloudCover
- visibility
- sunRise
- sunSet
- moonRise
- moonSet
- moonPhase
- airQuality
- latitude
- longitude
- feelsLikeTemp
- isCurrentLocation

New fields for daily forecast:

Deprecate the old "Forecast" class, which was not versioned, but keep it for backwards compatibility with old apps. Old WeatherSpec forecasts are de-serialized into the new Daily class. New fields:

- windSpeed
- windDirection
- uvIndex
- precipProbability
- sunRise
- sunSet
- moonRise
- moonSet
- moonPhase
- airQuality

Add hourly values:
- timestamp
- temp
- conditionCode
- humidity
- windSpeed
- windDirection
- uvIndex
- precipProbability

Air Quality:
- aqi (plume)
- co
- no2
- o3
- pm10
- pm25
- so2
- coAqi
- no2Aqi
- o3Aqi
- pm10Aqi
- pm25Aqi
- so2Aqi
2023-08-27 15:13:57 +00:00
José Rebelo
20d0d61ed8 WeatherSpec: Add a note on forecasts list 2023-08-23 16:16:40 +01:00
José Rebelo
454d766e88 Zepp OS: Add all remaining devices as experimental 2023-08-18 12:16:36 +01:00
José Rebelo
0a19f88a3f Amazfit Bip 3 Pro: Fix device icon for square device 2023-08-18 12:16:36 +01:00
Raghd Hamzeh
c8e19a2466
feat: add initial support for Amazfit Cheetah Pro 2023-08-16 22:19:48 -04:00
José Rebelo
b297e767ad Amazfit Bip 3 Pro: Initial support 2023-08-16 12:27:00 +01:00
hrglpfrmpf
c1fd0b77ad Support for Withings Steel HR (#2831)
Co-authored-by: hrglpfrmpf <hrglpfrmpf@web.de>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2831
Co-authored-by: hrglpfrmpf <hrglpfrmpf@noreply.codeberg.org>
Co-committed-by: hrglpfrmpf <hrglpfrmpf@noreply.codeberg.org>
2023-07-26 17:20:43 +00:00
Johannes Krude
9700fef111 Casio GMW-B5000: separate DeviceType, but still using the CasioGWB5600DeviceSupport 2023-07-22 09:39:56 +00:00
Johannes Krude
7cb060c9fe Casio GW-B5600: initial support 2023-07-22 09:39:56 +00:00
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
Mormegil
114f6fcbf0 First piece of Garmin Vivomove HR support basics
- `DeviceType` definition
- Definition of activity sample table
- Coordinator and sample provider
2023-07-20 20:30:14 +00:00
José Rebelo
3da539be23 Bohemic Smart Bracelet: Initial support 2023-07-09 14:29:39 +00:00
José Rebelo
fea3bf50a4 Zepp OS: Add loyalty cards integration with Catima 2023-07-03 23:19:19 +01: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
a3c59b0e0e Zepp OS: Add experimental sync of SpO2, stress, PAI, HR stats and sleep respiratory rate 2023-06-10 17:19:22 +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
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
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
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
José Rebelo
25038d965f Introduce generic TimeSamples for recorded data 2023-05-22 22:15:35 +00:00
Andreas Shimokawa
93b9ee735c add missing file 2023-05-21 22:50:52 +02:00
Andreas Shimokawa
48dee7486f add onSetNavigationInfo() to device interface 2023-05-21 22:50:52 +02:00
José Rebelo
2b6a79f462 Zepp OS: Manage contacts on watch 2023-05-17 23:43:29 +01:00
José Rebelo
76d99f1c33 Zepp OS: Start new GPX segments on pause/resume 2023-05-14 16:22:32 +01:00
José Rebelo
01ec74602a Refactor and extend GpxParser 2023-05-14 14:19:48 +01:00
José Rebelo
7b3fbeb4af Sony WH-1000XM5: Initial support 2023-05-06 16:03:48 +01:00
José Rebelo
880bf9e1b1 Amazfit GTR 3 Pro: Initial support 2023-05-03 20:49:02 +01:00
José Rebelo
4713c6511e Zepp OS: Manage contacts on watch (protocol only) 2023-04-01 13:51:23 +01:00
Andreas Shimokawa
27406e0881 SoFlow SO6: WIP 2023-02-21 16:09:23 +01:00
narektor
84e452bd6b Galaxy Buds2 Pro support (this time proper) (#3049)
Mostly copied from the Buds Pro as those earbuds have a similar feature set and mostly the same protocol.

Working:
- Pairing
- Earbud and case battery level
- Finding lost device
- Settings:
	- Noise control:
    	- ANC/ambient/off
        - With one earbud
        - Voice detect and timeouts
    	- Ambient sound during calls
    - Touch options:
    	- Touch lock
        - Switch noise control, voice assistant, Spotify and volume actions
    	- Double tap edge
    - Equalizer
    - Sound balance
	- Seamless earbud connection

Can be improved:
- ~~ANC level and ambient sound volume do nothing, and don't seem to be supported on this model as there is no toggle for either in the official app.~~ (fixed: 26a9d274ae)
- Ambient sound customization has more options than on previous models, but I can't implement it properly as I can't really hear any difference between the options (my buds might be the issue though).
- ~~The touch lock toggle is once again inverted, like on the [Buds2](d2c4990c48)~~ (fixed: 21db5390c1).

Untested:
- Settings:
    - In-ear detection for calls
    - Ambient sound customization
    - Game mode

This PR also makes some visual changes to the settings of various Galaxy Buds models.

I'd also like to be added to the wiki's allow list. I want to add the Buds2 and Buds2 Pro to the list of supported devices.

---

And sorry for creating this many pull requests. This is mostly due to Codeberg breaking the reference to the branch.

Co-authored-by: Narek <narek.email@gmail.com>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3049
Reviewed-by: José Rebelo <joserebelo@noreply.codeberg.org>
Reviewed-by: Andreas Shimokawa <ashimokawa@noreply.codeberg.org>
Co-authored-by: narektor <narektor@noreply.codeberg.org>
Co-committed-by: narektor <narektor@noreply.codeberg.org>
2023-02-21 14:50:24 +00:00
José Rebelo
134376cbd0 Amazfit T-Rex 2: Initial support 2023-01-23 23:36:57 +00:00
Noodlez
f7395ec6b2 Initial support for AsteroidOS watches
The watch does not auto-detect through pairing and therefore requires
discovering unsupported devices.
2023-01-12 17:11:36 +00:00
Arjan Schrijver
845887ddeb Fossil/Skagen Hybrids: Add app/watchface downloading from watch to app manager 2023-01-07 23:07:34 +01:00
José Rebelo
ff15fdaa9f Sony LinkBuds S: Initial support 2022-12-30 18:07:18 +00:00
José Rebelo
a32b756972 Revert "Sony LinkBuds S: Initial support"
This reverts commit f2aaf5aecf.

It looks like the protocol changed, as per the comments in !2990
2022-12-09 21:27:49 +00:00
José Rebelo
f2aaf5aecf Sony LinkBuds S: Initial support 2022-12-07 20:14:33 +00:00
José Rebelo
07194cd8fb Amazfit GTS 4 Mini: Initial support 2022-12-03 13:27:48 +00:00
TaaviE
091fd07c7b Fixed PineTime WeatherSpec handling 2022-11-22 07:01:39 +00:00
José Rebelo
8f3ed69ea7 Amazfit GTS 4: Initial support 2022-11-09 17:29:46 +01:00
narektor
2216b6b76a Galaxy Buds2 support (#2853)
Mostly copied from the Buds Pro as those earbuds have a similar feature set and mostly the same protocol.
Co-authored-by: narektor <narektor@noreply.codeberg.org>
Co-committed-by: narektor <narektor@noreply.codeberg.org>
2022-11-07 19:34:41 +01:00
José Rebelo
164c5e52a4 Zepp OS: Add World Clocks 2022-11-07 10:31:41 +01:00
José Rebelo
01b457895a Amazfit Band 7: Initial support 2022-10-31 12:04:18 +00:00
José Rebelo
addf7ff6a6 Amazfit GTR 4: Initial support 2022-10-22 22:03:49 +02:00
José Rebelo
8fdfbfa97c Sony WF-1000XM4: Initial support 2022-10-22 13:14:50 +01:00
José Rebelo
1dca054853 Sony WH-1000XM2: Initial support 2022-10-20 23:48:02 +01:00
José Rebelo
a717fd1db2 Huami: Do not crash when failing to parse activity summary 2022-10-16 21:33:47 +01:00
José Rebelo
962efd51b4 Zepp OS: Decode workout elevation and altitude 2022-10-15 10:17:57 +01:00
José Rebelo
d655f434f8 Zepp OS: Display HR zones and Training Effect in Activity Details 2022-10-06 00:03:24 +02:00
José Rebelo
d1ae6cf225 Zepp OS: Implement workout fetching 2022-10-02 16:07:21 +02:00
José Rebelo
a919286496 Add support for REM sleep 2022-10-02 16:07:21 +02:00
José Rebelo
c488fd6b10 Amazfit GTR Lite: Fix DeviceType name 2022-09-26 12:10:21 +01:00
vanous
e6411b15ab Add initial support for Shell Racing cars
- adds initial device support
- can control driving forward/back/left/right
- probably could be implemented further:
  - battery reading
  - device name?
  - lights on
  - fast/slow speed mode
2022-09-25 21:39:41 +02:00
thermatk
c24ef44055 Amazfit GTR 3: Initial support (#2900)
Co-authored-by: thermatk <thermatk@noreply.codeberg.org>
Co-committed-by: thermatk <thermatk@noreply.codeberg.org>
2022-09-22 00:56:22 +02:00
Gabriele Monaco
004355f69f Added calendar color and name to CalendarEventSpec
Tested on banglejs
2022-09-08 18:00:27 +02:00
vanous
bac41a8b78 Add flipper device icon 2022-09-07 16:56:28 +02:00
sedy89
fc048f8768 Amazfit GTS 3: Initial support (#2871)
Add basic initial support for the Amazfit GTS 3 based on Xiaomi Smart Band 7 support.

What was already tested (other features might work too):

**Implemented features**
    Connection
    Reconnect after Airplane mode
    Set time
    Notifications
        Send to band
        Delete notifications on phone/band when deleted on the other
        Calls
        Custom notification icons
        Handle + ack notification replies from band
    Music (with youtube music)
        Music Info
        Volume
        Music buttons
    Find Phone from band / stop on band when stopped on phone
    Battery Info (request, parse)
    Flash Watchface
    Night mode (mode, schedule)
    Lift wrist (mode, schedule, sensitivity)

(Not) working features might be similar to Miband 7.

Tested on
FW: 7.42.5.1
HW: 0.76.17.4

Co-authored-by: Andreas Sedlmayer <sedlmayer.andreas89@gmail.com>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2871
Co-authored-by: sedy89 <sedy89@noreply.codeberg.org>
Co-committed-by: sedy89 <sedy89@noreply.codeberg.org>
2022-09-05 23:52:01 +02:00
dakhnod
ee207c978f Device FlipperZero: added basic support for the Flipper Zero (#2840)
This PR adds support for the flipper zero device.

It's main purpose currently is to provide an Intent-based API to Tasker and similar apps to play sub-GHz files.

In the future, file management and other features might be useful.

Co-authored-by: Daniel Dakhno <dakhnod@gmail.com>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2840
Co-authored-by: dakhnod <dakhnod@noreply.codeberg.org>
Co-committed-by: dakhnod <dakhnod@noreply.codeberg.org>
2022-09-04 23:05:57 +02:00
Arjan Schrijver
c7a7461757 Fossil Q Hybrid: Fix crash 2022-08-28 21:14:30 +02:00
Gabriele Monaco
43d637bd1f Calendar sync: added allDay field in intent
Events added through DeviceCommunicationService will have the field too
2022-08-22 10:34:22 +02:00
José Rebelo
ba565df088 Xiaomi Smart Band 7: Initial support 2022-08-19 23:13:27 +02:00
Daniel Dakhno
b29a8cefd2 Binary sensor: initial support for devices using Binary Sensor Service 2022-08-09 18:58:18 +02:00
José Rebelo
f7ecb5a867 Allow DeviceService to target a specific device 2022-08-05 21:34:15 +02:00
Arjan Schrijver
75dd5f1863 Fossil Hybrid HR: Use embedded preview image from .wapp file during import 2022-07-31 20:31:16 +02:00
vanous
c6104f5332 Add Steps streaks screen 2022-07-30 10:07:26 +02:00
Gabriele Monaco
ceaf520824 Added picture for banglejs and fixed strings 2022-07-21 10:58:15 +02:00
José Rebelo
152f19575f Make calendar blacklist configurable per device 2022-07-05 19:58:21 +02:00
José Rebelo
7512147c34 Huami: Display native alarm notification 2022-07-05 19:57:13 +02:00
dakhnod
4a8523f790 multi-device-support (#2526)
this PR aims to add device for multiple connected devices at once.

A lot of stuff already works, some things need to be done:

- [x] change DeviceCommunicationService to hold multiple devices and supports
- [x] implement connect / disconnect logic
- [x] widgets, not really suited for multiple devices, so far
- [x] change the notification to show multiple devices
- [ ] change GBDeviceService#onFindDevice and similar API functions to target individual devices, not all connected.
- [x] move auto-reconnect setting to device settings
- [x] fix music event crash
- [x] work out behaviour when pressing "connect" from notification
- [ ] handle service crashes
- [ ] suit coordinator methods for multiple devices of same kind
- [x] change ACL_CONNECTED receiver to connect to devices that are not currently registered in DeviceCommunicationService
- [ ] adjust after-boot auto-connection logic
- [ ] fix hanging device support. Device says disconnected, GB says connected
- [x] firmware updater doesn't work

My attempt to make onFindDevice work was to change the arguments to ```EventHandler#onFindDevice(GBDevice device, boolean start)```.
The Problem is that this forces the device-specific implementations to also accept GBDevice as an argument.

Co-authored-by: Daniel Dakhno <dakhnod@gmail.com>
Co-authored-by: Andreas Shimokawa <shimokawa@fsfe.org>
Co-authored-by: dakhnod <dakhnod@gmail.com>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2526
Co-authored-by: dakhnod <dakhnod@noreply.codeberg.org>
Co-committed-by: dakhnod <dakhnod@noreply.codeberg.org>
2022-06-14 18:05:41 +02:00
José Rebelo
b07cd54468 Mi Band 5: Send GPS location to band during workout 2022-06-09 10:32:26 +02:00
Ludovic Jozeau
b07dc6f2b2 fix calendar blacklist, view and storage
- view: unselect calendar that aren't blacklisted
- use more unique string to identify and store blacklisted calendars
2022-05-30 13:14:46 +02:00
vanous
948db604e5 Add support for Galaxy Buds Pro
- add generic coordinator and settings customizer for Galaxy Buds
- add Prefs to the DeviceSpecificSettingsCustomizer
- edit Changelog
2022-05-17 22:27:40 +02:00
mvn23
9ca3fff101 Add support for native Do Not Disturb call/SMS functionality on Fossil watches 2022-05-16 21:59:02 +02:00
Quang Ngô
b46b1278b3 Add support for Sony WF-1000XM3 2022-05-16 17:50:31 +07:00
José Rebelo
a5a3e57a34 Sony Headphones: Simplify capability definition 2022-05-15 17:22:55 +01:00
vanous
0a28ce92a9 Sony overhead headphones: new device icon 2022-05-15 16:33:48 +02:00
vanous
425dfac3e9 Miband6: new device icon 2022-05-15 15:39:48 +02:00
vanous
49a7871614 Sony WF 800n: new icons 2022-05-15 13:04:21 +02:00
José Rebelo
682b215985 Huami: Send media volume to device 2022-05-11 00:23:18 +01:00
José Rebelo
5c6edea233 Mi Band 5: Add support for World Clocks 2022-05-10 13:59:25 +02:00
Andreas Shimokawa
cf70347636 Fix crash when calender is accessed but permissin is denied
Fixes #2624
2022-03-31 11:25:15 +02:00
Damien Gaignon
66b8fb004e Move mi_ constants 2022-03-30 22:01:08 +02:00
Andreas Shimokawa
3b95e4ea66 Bip U / Bip U Pro: Fix switched device names 2022-01-18 21:20:33 +01:00
Andreas Shimokawa
406f775f76 Amazfit Pop/Pop Pro: Seperate device from Bip U/Bip U Pro
This really seems to be the same device, but it does have a different firmware
and a different bluetooth name.

Do this to prevent cross flashing - which might actually be okay but we do not know.
2022-01-18 21:15:12 +01:00
José Rebelo
d23b0a5b88 Sony WH-1000XM4: Initial Support 2022-01-12 10:36:07 +01:00
vanous
3617fc9115 add icons for VESC devices 2022-01-01 12:45:40 +01:00
Your Name
c62a418961 Add climbing activity & Add seperate res for hiking and climbing 2021-12-28 22:37:35 +01:00