1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-07-09 15:11:34 +02:00
Commit Graph

1543 Commits

Author SHA1 Message Date
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
Patric Gruber
b7e6a39ec1 use proper Optional 2023-08-26 19:39:05 +00:00
Patric Gruber
d0c602d243 overwrite supportsManualHeartRateMeasurement 2023-08-26 19:39:05 +00:00
Patric Gruber
67eac90f69 merge new activity samples with samples from database on overlap 2023-08-26 19:39:05 +00:00
Patric Gruber
70a8ca5067 add heart rate measurment support for infinitime 2023-08-26 19:39:05 +00:00
José Rebelo
42f35259fc Amazfit Bip 3 Pro: Enable HR stats and sleep respiratory rate 2023-08-26 17:52:10 +01:00
Daniel Dakhno
e36bd2eae7 Core: replaced device initialization logic with class based decision
Core: cleaned up imports

Device management: try single-argument-constructor first

Device management: fixed wrong device support class

Device management: added missing initial flags for Mi band 2 HRX

Device management: removed unused import

Device management: removed unused import

Device management: improved exception handling

Device management: prevent constructors from being optimized out

Device management: added UnknownDeviceSupport
2023-08-26 08:14:06 +00:00
Daniel Dakhno
73d67d4093 Fossil/Skagen Hybrids: Embed menu_structure in watchface apps (#3245)
This PR aims to optimize the method of synchronizing the menu_structure for the openSourceWatchface by making the menu_structure request from the watch obsolete.

Instead, when a new menu_structure is sent to GB via the Intent `nodomain.freeyourgadget.gadgetbridge.Q_SET_MENU_STRUCTURE`, GB remembers that JSON.

Next time a watchface is built, the JSON is embedded into that app package so the watch doesn't forget the structure.

This requires a full GB rebuild to work properky.

Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3245
Co-authored-by: Daniel Dakhno <dakhnod@gmail.com>
Co-committed-by: Daniel Dakhno <dakhnod@gmail.com>
2023-08-19 20:48:53 +00:00
José Rebelo
454d766e88 Zepp OS: Add all remaining devices as experimental 2023-08-18 12:16:36 +01:00
José Rebelo
e5faf518ea Add support for experimental devices 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
Ascense
14df63854f Withings Steel HR: Support setting device language 2023-08-16 12:43:57 +00:00
José Rebelo
b297e767ad Amazfit Bip 3 Pro: Initial support 2023-08-16 12:27:00 +01:00
José Rebelo
0e06bde741 Zepp OS: Enable AGPS updates for all devices 2023-08-12 13:25:19 +01:00
José Rebelo
a95820d09e Bangle.js: Fetch activity data 2023-08-08 22:11:14 +01:00
José Rebelo
f97250d46b Upgrade ZeTime settings to androidx 2023-08-08 20:14:27 +01:00
José Rebelo
f0067ebeae Upgrade Mi Band preferences to androidx 2023-08-08 20:10:05 +01:00
José Rebelo
61a78c0ad8 Move user name to about user preferences
- Remove from Mi Band prefs
- Remove fitness goal from mi band prefs - it's also un the about user
  section
- During pairing, direct user to the about user if there is invalid data
2023-08-08 20:10:05 +01:00
Arjan Schrijver
b6e252c4c1 Switch UI to Material 3 and support dynamic colors 2023-08-08 08:47:26 +00:00
Arjan Schrijver
e305a9133f Fossil/Skagen Hybrids: Add input types to watchface/widget settings 2023-07-31 21:31:42 +02:00
José Rebelo
f9ef3f47ab Extract Pebble and HPlus settings to standalone activities 2023-07-28 20:21:53 +00:00
José Rebelo
f4b059f173 Introduce AbstractSettingsActivityV2
This class introduces some of the common logic across preference
screens, handling nested PreferenceScreens, as well as the back button
and action bar title setting.
2023-07-28 20:21:53 +00:00
José Rebelo
48ee259d89 Bangle.js: Reorganize device settings 2023-07-27 18:38:15 +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
José Rebelo
606e20a065 Amazfit GTR/S 3: Enable AGPS Updates 2023-07-25 21:47:12 +01:00
José Rebelo
69ae0817cf Upgrade Q-Hybrid watchface settings to androidx 2023-07-25 20:52:39 +01:00
Daniele Gobbetti
540a4499f6 Miband 6: enable PAI and Stress support 2023-07-25 18:23:15 +02:00
José Rebelo
702651c119 Sony WH-1000XM3/WF-SP800N: Add volume setting 2023-07-23 19:40:11 +01: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
Johannes Krude
91415e2500 Casio: Refactoring 2023-07-22 09:39:56 +00:00
mormegil
cc8a1dbdaa Added copyright header to all new Garmin Vivomove files 2023-07-20 20:30:14 +00:00
mormegil
a4ec3a62aa PR-related improvements
- rename service identifiers for clarity
- define BLE scan filter in the coordinator (even though GB does not use those currently)
- rename `DownloadedFitFile` to `GarminFitFile`
- bump DB schema version to 49
2023-07-20 20:30:14 +00:00
mormegil
dccb8ed1c4 Changes suggested in PR
- use `BLETypeConversions`, added the missing functions there (+ unit tests for all)
- change Java package of Protobuf definitions so that they are not discarded by Proguard
-- +add subpackages to the Proguard rules so we can subdivide the classes

+ disable device-specific settings for Vivomove (no settings yet)
2023-07-20 20:30:14 +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
vanous
849337b447 Amazfit Neo: Enable PAI 2023-07-16 22:57:18 +02:00
José Rebelo
4c7920133b Amazfit GTS 2e: Add activate display on lift sensitivity 2023-07-11 18:19:43 +01:00
José Rebelo
3da539be23 Bohemic Smart Bracelet: Initial support 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
fea3bf50a4 Zepp OS: Add loyalty cards integration with Catima 2023-07-03 23:19:19 +01: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
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
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
daec12e13b Amazfit GTR 3/GTS 3/GTR 3 Pro/T-Rex 2: Revert AGPS updates
Users reported that this is not actually working - further information
on the protocol is needed.

- Reverts 1898962e79 and 55cef71d3a
2023-06-15 13:09:29 +01:00
José Rebelo
b3db9b7768 Zepp OS: Add screenshot support 2023-06-14 21:02:27 +01:00
Damien 'Psolyca' Gaignon
a3c0e10330
Add GBDevice argument to getAlarmSlotCount 2023-06-13 23:10:55 +02:00
José Rebelo
1898962e79 Amazfit GTR/S 3: Enable AGPS Updates 2023-06-12 20:56:55 +01:00
José Rebelo
5b2ebeb4c4 Zepp OS: Fix AGPS and gpx route upload compatibility detection 2023-06-12 19:50:57 +01:00
José Rebelo
55cef71d3a Amazfit T-Rex 2: Enable AGPS updates and gpx route upload 2023-06-12 09:32:08 +01:00
José Rebelo
c3c4c2ce74 Zepp OS: Add watch app logs developer option 2023-06-11 18:23:54 +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
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
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
Aidan Crane
29bf03dceb
Re-added ability to make Mi Band 6 visible in third party apps 2023-05-31 02:42:45 +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
b091521155 Mi Band 7: Add preference to display call contact information 2023-05-24 23:47:20 +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
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
Gordon Williams
788cb15500 Based on Play Store crash reports and stack traces, add a null check to try and avoid crashes 2023-05-22 13:38:04 +01:00
Gordon Williams
82778c46a5 Bangle.js: ensure we can return to appsmanagementactivity after having opened another window
Attempting to handle file open and close dialogs from the WebView
2023-05-22 13:13:50 +01:00
Andreas Shimokawa
55e7f6595b fix build after rebase 2023-05-21 22:50:52 +02:00
Andreas Shimokawa
9ccd898d42 add supportNavigation() to cooridinator 2023-05-21 22:50:52 +02:00
Andreas Shimokawa
4cad3b3837 InfiniTime: support navigation app 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
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
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
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
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
9a8e95bd18 Zepp OS: Set watchface from phone 2023-04-24 20:20:43 +01:00
José Rebelo
3c3936bf6a Zepp OS: Add shortcut cards preference 2023-04-24 19:12:22 +01:00
José Rebelo
340db0ca15 Amazfit GTR 4 / GTS 4: Perform and receive phone calls on watch 2023-04-02 18:50:58 +01:00
José Rebelo
f1dd4019bf Zepp OS: Add support for morning updates 2023-04-01 20:58:21 +01:00
José Rebelo
f2a7f6ab45 Sony WH-1000XM4: Add speak-to-chat settings 2023-03-24 00:03:54 +00:00
José Rebelo
d7ecfcb16b Sony WH-1000XM4: Add speak-to-chat 2023-03-23 21:50:40 +00:00
José Rebelo
aeb8607e78 Amazfit GTR 4 / GTS 4: Add watch Wi-Fi Hotspot and FTP Server 2023-03-21 00:02:59 +00:00
José Rebelo
d6b1b778b8 Zepp OS: Add preference for camera remote 2023-03-19 22:35:02 +00:00
José Rebelo
00954dfa6d Zepp OS: Add config to keep screen on during workout 2023-03-19 22:25:44 +00:00
José Rebelo
ac002f8db9 Zepp OS: Fix activate display upon lift wrist smart mode 2023-03-19 22:11:39 +00:00
Joel Beckmeyer
a8da4cf6d1 Amazfit Bip U: disable alarm snooze enable/disable 2023-03-17 15:46:46 -04:00
Andreas Shimokawa
74517f12a3 SoFlow SO6: First working lock&unlock
needs key
2023-02-21 16:09:23 +01:00
Andreas Shimokawa
5db9d36d1a SoFlow SO6: fix settings 2023-02-21 16:09: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
Arjan Schrijver
810cc91e8e Fossil/Skagen Hybrids: Implement inactivity warnings 2023-02-06 14:26:26 +01:00
Arjan Schrijver
9b4f909ace Fossil/Skagen Hybrids: Update known watch app versions 2023-01-27 21:19:25 +01:00
Gordon Williams
521edc4332 Bangle.js: Increase default realtime HRM/step interval to 10 seconds
Disable manual heart rate measurement - the current implementation in Gadgetbridge seems not really compatible with Bangle.js. There's no way to turn the HRM off when the window is closed, and HRM samples from *any* device would appear to be shown - not just the one that HRM info was requested on
2023-01-26 10:31:13 +00:00
José Rebelo
134376cbd0 Amazfit T-Rex 2: Initial support 2023-01-23 23:36:57 +00:00
Noodlez
ead7ada987 Code clean-up and documentation 2023-01-12 17:12:03 +00:00
Noodlez
3e9a185b88 AsteroidOS: Fix weather forecast
The forecast was off by 1 day
2023-01-12 17:11:50 +00:00
Noodlez
616ec53086 AsteroidOS: Add simple device discovery
This is done by just comparing the names with already existing devices.
This is only a temporary solution until the discovery of the service
UUID works properly
2023-01-12 17:11:45 +00:00
Noodlez
d3d4baedea AsteroidOS: Small code improvements
Removed logging in the DeviceCoordinator, fixed the time setting (day
was off by 1), consolodated many characteristic transactions to one
buidler and queue, and added Find My Device, by just initiating a call.
2023-01-12 17:11:40 +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
Arjan Schrijver
b1d03e9f7a Clean up duplicated unimplemented methods from device support classes
Moved to AbstractDeviceSupport so each device support class can override them if required. This change helps to keep the code base clean by not requiring every (Device)Support class to implement these methods even when they don't need them.
2023-01-05 22:11:32 +01:00
José Rebelo
17c58d2947 Amazfit GTR 4/GTS 4: Add AGPS Updates 2023-01-05 11:31:51 +00:00
Arjan Schrijver
d8af8bede0 Fossil/Skagen Hybrids: Allow launching watch apps from app manager 2023-01-02 15:15:48 +01:00
José Rebelo
ff15fdaa9f Sony LinkBuds S: Initial support 2022-12-30 18:07:18 +00:00
Arjan Schrijver
4470795196 Fossil/Skagen Hybrids: Update known watch app versions 2022-12-18 16:17:22 +01:00
uli
3986d8c4bc PineTime: Added World Clocks 2022-12-12 15:05:53 +00:00
LukasEdl
abf19f2b6c [Banglejs] Send phone location data to banglejs, which can be used as gps data (#2992)
Since the PR #2961 aswell as #2976, i pushed the changes to this pr.

Original text:

With this PR, the gadgetbridge app sends the current locationd data, obtained from the gps or network provider, to a connected banglejs device as an "gps" event.

The bangle device can use this data instead of the internal gps data. Therefor saving battery energy, since the gps chip is one of the biggest energy consumers.

Furthermore it enables the banglejs device to use the location data, based on the network with which the phone is currently connected. This would be usefull if there is no gps signal.

Updates:

I added a network provider so that it is possible to use the network location. I also overload the start method of GBLocationManager so that it is now possible to select which provider should be used to get the data (currently GPS or Network) and to set a interval to determine how often the update should be run.

For the banglejs device i added a switch to enable the sending of gps data. I also added a setting, to set the interval on how often the gps data is being updated. This allows to throttle the updates of the gps data and therefore saving energy of the smartphone batterie.

To further save energy, the app now requestes the current status of the gps from the banglejs and only sends data, if the gps of the banglejs is turned on.

In the PR #2976 I also moved the settings to the device settings of the banglejs and i moved the logic to the onLocationChanged method of the GBLocationManager.

Co-authored-by: Lukas <lukas.edi@gmx.net>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2992
Co-authored-by: LukasEdl <lukasedl@noreply.codeberg.org>
Co-committed-by: LukasEdl <lukasedl@noreply.codeberg.org>
2022-12-12 07:48:19 +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
José Rebelo
1c93ffc3e5 Amazfit GTR 4: Fix and whitelist firmware 3.17.0.2 2022-11-22 07:00:41 +00:00
gsbhat
5e6480ad19 GTR2 Activate display upon lift only working when scheduled #2252 2022-11-12 22:22:17 +05:30
José Rebelo
8f3ed69ea7 Amazfit GTS 4: Initial support 2022-11-09 17:29:46 +01:00
José Rebelo
2a47dc863a Huami: Allow activity fetch timestamps to be sent in seconds 2022-11-07 19:37:28 +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
MPeter
a0782d318b fix bug where reading files of ZIP archive out of order would not make them available 2022-11-04 19:17:54 +01:00
MPeter
ffcb67636e remove unused variable
forgot to include in previous commit
2022-11-04 19:17:53 +01:00
MPeter
db37222171 temporarily fix version identification 2022-11-04 19:17:52 +01:00
MPeter
96f87cf913 persist metadata in class, move validity check to isValid() function 2022-11-04 19:17:52 +01:00
MPeter
c7841b4947 use ZipFile utility for reading the ZIP file instead of custom logic
merge conflict fix
2022-11-04 19:17:32 +01:00
José Rebelo
01b457895a Amazfit Band 7: Initial support 2022-10-31 12:04:18 +00:00
José Rebelo
cd59511aad Zepp OS: Refactor config, fix health on GTR 3 and GTS 3
The config refactor in addf7ff6a broke health settings on GTR3 and GTS3

- GTS 3 and GTR 3 health configs use protocol v1. The only difference
  seems to be that the steps goal is a SHORT instead of an INT.
- It needs a refactoring from the ground up to better handle different
  versions, but this is enough to get the GTR 3 and GTS 3 working.
2022-10-29 14:17:40 +01:00
José Rebelo
6cc3579e9c Zepp OS: Refactor file upload, fix notification icons > 56x56px
- File uploads are split in chunks, with the size dictated by the
  watches. There seem to be 2 protocol versions, without any noticeable
  differences
- Extract the file upload logic to a standalone class. This makes it
  easier to keep track of concurrent requests, each of which have their
  own session id
- Icons larger than 8KB will end up split in multiple chunks - we now
  handle that correctly
- Notification icons are also requested in 2 different formats, but
  the actual encoding seems to be the same, with only a different id
2022-10-28 23:37:22 +01:00
José Rebelo
bc2d5aa16d Zepp OS: Change default fetch operation time unit resolution to minutes
Reverts the default behavior introduced by 1335f0bd8 since it was
causing issues on the GTR 3, but keeps it optional as a developer
option.
2022-10-27 23:51:02 +01: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
d4ba532b11 Sony Headphones: Refactor V1 protocol to simplify V2 implementation 2022-10-22 11:14:23 +01:00
José Rebelo
1dca054853 Sony WH-1000XM2: Initial support 2022-10-20 23:48:02 +01:00
José Rebelo
2c182418fe Sony Headphones: Fix setting surround mode 2022-10-20 23:47:17 +01:00
Arjan Schrijver
c547a33724 Fossil/Skagen Hybrids: Update known watch app versions 2022-10-17 21:42:42 +02:00
Arjan Schrijver
50aee4c235 Skagen Hybrids: Allow firmware installation 2022-10-17 21:42:16 +02:00
José Rebelo
962efd51b4 Zepp OS: Decode workout elevation and altitude 2022-10-15 10:17:57 +01:00
Arjan Schrijver
89251d27e1 Fossil Hybrid HR: Request menu config upon app connection
Thank you Morten Hannemose for debugging and fixing this!
2022-10-14 21:14:52 +02:00
José Rebelo
d655f434f8 Zepp OS: Display HR zones and Training Effect in Activity Details 2022-10-06 00:03:24 +02:00
vanous
244b758743 SuperCars: fix periodicDataSender, add tricks 2022-10-04 00:04:53 +02:00
vanous
b957c76d71 SuperCars: add blinking function and live battery status, fine-tune driving, race! 2022-10-02 18:01:22 +02:00
José Rebelo
d1ae6cf225 Zepp OS: Implement workout fetching 2022-10-02 16:07:21 +02:00
José Rebelo
7f4bd16914 Zepp OS: Implement activity and sleep 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
28a26710d9 Fix calls to unsupported API functions 2022-10-02 16:04:14 +02:00
vanous
51b7f28a8b SuperCars: switch from data replay to generated data
- use encryption to create data rather then replay captured BLE traffic
- use periodical data sender, as is required by the BLE module
- extract string resources
2022-10-02 08:56:35 +02:00
vanous
5f7674fe39 SuperCars: add battery support 2022-09-30 00:09:42 +02:00
vanous
a5767cbb5f SuperCars: add joystick and driving modes 2022-09-28 22:38:58 +02:00
Arjan Schrijver
ce456d6dcc Fossil Hybrid HR: Allow flick_away as custom event and add move_hands event 2022-09-26 14:49:39 +02:00
José Rebelo
785b6797a3 Amazfit GTR: Enable button actions 2022-09-26 12:10:59 +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
NekoBox
d1e0df0832 Amazfit Neo: remove activity tracks (unsupported) 2022-09-25 11:50:24 +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
NekoBox
4675c7a344 Fix world clock packet format.
Fix short city name in packet (used by Neo).
Enable world clocks for Amazfit Neo.
2022-09-19 21:53:20 +02:00
Ganblejs
82315b3281 Bangle.js: extending intents functionality (continuation)
Add support for (explicit) service intents.
Add support for setting flags for intents.
Add support for setting multiple categories for intents.
Add ability for Gadgetbridge to wake the Android device and leave the
 lock screen to start activities when it is sleeping. A new activity
 'WakeActivity' is used for this. (Must use 'trusted device' in Android)
Add dismiss-button to 'display over other apps' permission pop up.
Bangle.js can send "gadgetbridge" as package info to accomodate the
 different GB build variants/flavours.
Use only getContext() and not getApplicationContext() when executing
 the intents.
2022-09-19 21:52:40 +02:00
Andreas Shimokawa
259a422de6 Revert "Revert "PineTime Weather support""
This reverts commit 50ff6a8a6f.
2022-09-19 21:45:01 +02:00
José Rebelo
c36857f063 Huami: Set OpenTracks track category and icon 2022-09-19 11:50:44 +02:00
José Rebelo
462aec6f71 Mi Band 7: Fix Weather 2022-09-18 00:48:36 +01:00
José Rebelo
8c69a8a007 Huami: Fix crash when selecting automatic Always On Display
Fixes #2889
2022-09-12 18:35:24 +01:00
Arjan Schrijver
7ae2ec1dcf Fossil Hybrid HR: Set OpenTracks track category and icon to workout type selected on watch 2022-09-12 11:22:04 +02:00
José Rebelo
2efc564d21 Huami: Add preference to overwrite band settings on connection 2022-09-10 23:24:27 +02:00
Andreas Shimokawa
969164ba5d Remove KitKat support 2022-09-10 12:04:16 +02:00
Arjan Schrijver
2e6be6bea3 Fossil Hybrid HR: Correctly initialize watchface after reset or crash 2022-09-10 11:55:05 +02:00
Andreas Shimokawa
63ea8d30c7 no vibration patterns on Bip S 2022-09-08 19:32:58 +02:00
Andreas Shimokawa
50ff6a8a6f Revert "PineTime Weather support"
This reverts commit 230cbe964b.
2022-09-08 18:42:47 +02:00
José Rebelo
f915ab5ebd Mi Band 7: Enable app support 2022-09-08 18:20:28 +02:00
TaaviE
230cbe964b PineTime Weather support 2022-09-08 18:02:29 +02:00
TaaviE
2928a0e13b Fixed a bug where less than the requested length was read before EOF in PineTime DFU 2022-09-08 18:01:46 +02:00
Morten Rieger Hannemose
e476b8a701 Hybrid HR: Enabled configuring middle long press on FW 3.0 and newer 2022-09-06 19:59:39 +02:00
José Rebelo
9b2775458c Huami: Improve large firmware zip file handling 2022-09-06 00:54:57 +02:00
José Rebelo
3c882467cc Huami: Enable vibration patterns for all compatible devices 2022-09-06 00:53:09 +02:00
José Rebelo
1d9872b15a Huami: Fix default vibration patterns 2022-09-06 00:53:09 +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
José Rebelo
37554e8f8a Mi Band 7: Fix and enable firmware upgrades 2022-09-05 22:14:09 +01:00
NekoBox
f1ecebc983 Amazfit Neo: remove 1 hour heartrate interval because unsupported. 2022-09-04 23:18:55 +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
643f8ef931 Fossil Hybrid HR: Fix watchface redraw after powersave and after wrist flick 2022-08-28 22:25:19 +02:00
José Rebelo
b21ffaa528 Make heart rate measurement intervals configurable per-device 2022-08-28 13:15:33 +02:00
Daniel Dakhno
1a472493c7 Fossil HR: cleaned up firmware version handling 2022-08-27 02:54:56 +02:00
dakhnod
fe485d80ec Fossil Gen6. Hybrid: added basic support for Hybrid Gen 6 (#2775)
This PR aims to add support for the newer Fossil Gen. 6 Hybrid models, which are pretty similar to the older HR's.

Here's my checklist

- [x] make GB recognize and accept new watches
- [ ] find out how SPO2 is transmitted
- [ ] extend activity data to include Oxygen data
- [x] create timeout for requests to avoid deadlocks
- [x] fix device vibration on every reconnect
- [ ] create API for voice commands
- [x] figure out how the voice data works

Co-authored-by: Daniel Dakhno <dakhnod@gmail.com>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2775
Co-authored-by: dakhnod <dakhnod@noreply.codeberg.org>
Co-committed-by: dakhnod <dakhnod@noreply.codeberg.org>
2022-08-24 21:56:09 +02:00
Andreas Shimokawa
035d0037dd Amazfit Bip U: Enable sending GPS coordinates to band during workout and start fitness tracking on phone when workout starts on band setting 2022-08-21 18:43:55 +02:00
NekoBox
3eed7c69f5 Amazfit Neo: remove unsupported settings 2022-08-20 23:54:35 +03:00
José Rebelo
ba565df088 Xiaomi Smart Band 7: Initial support 2022-08-19 23:13:27 +02:00
NekoBox
279af27248 Amazfit Neo: enable heartrate activity monitoring 2022-08-19 23:11:18 +02:00
Arjan Schrijver
319a11e99d Fossil Q Hybrid: Fix config activity after multi-device merge 2022-08-19 16:21:59 +02:00
Arjan Schrijver
6e678a8123 Fossil Hybrid HR: Update musicApp version 2022-08-17 21:38:20 +02:00
José Rebelo
70e60fb6e0 Mi Band 4: Add activate display on lift sensitivity 2022-08-16 11:20:03 +01:00
NekoBox
ad38a32cc8 Implement Hourly chime which was added in firmware 1.1.2.46 2022-08-12 09:05:13 +02:00
Daniel Dakhno
b29a8cefd2 Binary sensor: initial support for devices using Binary Sensor Service 2022-08-09 18:58:18 +02:00
Adam Büchner
dbe7628eea Mi Band 4: Add activity monitoring option 2022-08-09 17:44:49 +02:00
Hasan Ammar
c2054c4a8b Hybrid HR: Add support for Hybrid HR 38mm watches 2022-08-07 20:32:54 +02:00
José Rebelo
f7ecb5a867 Allow DeviceService to target a specific device 2022-08-05 21:34:15 +02:00
Arjan Schrijver
5f4d3f441f Fossil Hybrid HR: Add toggling of backlight with physical button event 2022-08-01 17:21:55 +02:00
Arjan Schrijver
44c087b666 Fossil Hybrid HR: Fix watchface background fuzziness due to resizing 2022-07-31 22:53:32 +02:00
Arjan Schrijver
305078f253 Fossil Hybrid HR: Use embedded background image from .wapp file for editor 2022-07-31 22:51:24 +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
vanous
4dc4a4f988 Remove duplicated Auth key from the settings for Huami. Add Override where missing 2022-07-29 09:47:26 +02:00
Arjan Schrijver
e2f38704ea Fossil Hybrid HR: Bump watchface version 2022-07-28 22:11:58 +02:00
Arjan Schrijver
0b6c2db606 Fossil Hybrid HR: Add toggling of widgets with physical button event 2022-07-28 22:08:13 +02:00
Andreas Shimokawa
b138c54b52 Mi Band 4: Enable sending GPS coordinates to band during workout and start fitness tracking on phone when workout starts on band setting 2022-07-27 16:22:13 +02:00
Gordon Williams
2e4fa6d699 Tweak for potential null pointer exception seen after play store release 2022-07-25 14:52:30 +01:00
Arjan Schrijver
7d5fe20b55 Fossil Hybrid HR: Add optional circle backgrounds to widgets 2022-07-25 14:34:41 +02:00
Arjan Schrijver
c946a045ef Fossil Hybrid HR: Use preferencescreen for widget configuration 2022-07-25 14:34:41 +02:00
Andreas Shimokawa
04236a3f86 Mi Band 6: Enable start fitness tracking on phone when workout starts on band setting 2022-07-22 16:33:40 +02:00
Andreas Shimokawa
5271fb6a84 Mi Band 6: Enable sending GPS coordinates to band during workout 2022-07-22 16:26:59 +02:00
Andreas Shimokawa
35db14af84 Mi Band 6: Enable password support
Fixes #2603
2022-07-22 16:18:12 +02:00
Gabriele Monaco
d9daa16bf8 Added calendar blacklist setting to banglejs 2022-07-21 10:58:15 +02:00
glemco
f4e6d953ff Enabling calendar sync for bangle 2022-07-21 10:58:15 +02:00
Arjan Schrijver
7e844367e6 Fossil Hybrid HR: Show in appmanager which watch apps are outdated 2022-07-16 23:03:06 +02:00
Arjan Schrijver
93e9d407ec Fossil Hybrid HR: Show in appmanager which watchfaces are outdated 2022-07-14 13:02:04 +02:00
Arjan Schrijver
6d16625112 Fossil Hybrid HR: Fix 2nd TZ widget offset
The 2nd TimeZone watchface widget was configured with an offset that
didn't take DST into account. This change makes it use the correct
offset.

Fixes #2761
2022-07-14 09:48:12 +02:00
vanous
c77521f975 Add device menu item to get to the FW/App Installer via an explanation activity 2022-07-12 10:50:41 +02:00
vanous
d051a6ed50 Adjust device coordinators to provide correct per device reconnection settings 2022-07-11 18:46:43 +02:00
Arjan Schrijver
6649f1941a Fossil Hybrid HR: Make 2nd TZ widget clock duration configurable 2022-07-07 22:16:52 +02:00
Arjan Schrijver
d03ec5518b Fossil Hybrid HR: Make widget settings code more flexible 2022-07-07 21:53:28 +02:00
vanous
0709b20043 Fossil: move device specific icon setting to application specific settings menu 2022-07-05 23:06:16 +02:00
vanous
fe73e9fec1 Allow Settings splitting into device, app and auth screens
- open app preferences screen from device card menu
- open auth preferences screen from DiscoveryActivity
- add explanation about Auth key, make it open wiki link, fix #2240
- add New protocol checkbox and explanation when first pairing Miband 6
2022-07-05 21:40:27 +02:00
vanous
49dcb04b62 FitPro: add MTU based chunking, add more device names, fix #2688 2022-07-05 20:46:38 +02:00
José Rebelo
9cb6403c04 Mi Band 4: Add password support 2022-07-05 19:29:16 +01:00
José Rebelo
152f19575f Make calendar blacklist configurable per device 2022-07-05 19:58:21 +02:00
Arjan Schrijver
951772626c Fossil Hybrid HR: Show app versions 2022-07-04 17:12:41 +02:00
Daniel Dakhno
62f77ef8d0 ControlCenter: added folders to ControlCenter 2022-06-28 14:01:51 +02:00
Andreas Shimokawa
2182097f0c Fossil Hybrid HR: Relax version check for watch apps
Allows to install latest watchapps

It seems that every time the firmware gets a major update, the new watchapps
have a different minor version, we dont need to check for that because watchapps
seem to be compatible accross firmware versions
2022-06-24 09:44:05 +02:00
Arjan Schrijver
0349b2530f Fossil Hybrid HR: Invert widgets color when the background image is inverted 2022-06-17 22:42:58 +02:00
Arjan Schrijver
48212d4185 Fossil Hybrid HR: Add watchface preview images in the app manager 2022-06-17 14:45:10 +02:00
José Rebelo
ec5e51b9a9 Roidmi 3: Recognize "Roidmi C BLE" as Roidmi 3 2022-06-15 21:21:29 +01:00
Arjan Schrijver
7f026edbd0 Fossil Hybrid HR: Generate watchface preview image 2022-06-15 12:59:23 +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
Gordon Williams
e40bd79fbf Bangle.js: Adding built-in app-loader view (available via app management icon). Only available on internet-enabled builds (it's a webview) 2022-06-13 08:35:32 +01:00
Gordon Williams
bdcaeae177 Merge remote-tracking branch 'freeyourgadget/master' into freeyourgadget_master 2022-06-13 08:26:53 +01:00
José Rebelo
b914bec573 Mi Band 5: Fix missing portuguese language 2022-06-11 23:09:21 +02:00
Gordon Williams
607441b6b0 Support for color dithered bitmaps, and converting emoji->bitmaps
# Conflicts:
#	app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/banglejs/BangleJSDeviceSupport.java
2022-06-10 12:01:12 +01:00
vanous
5e5d8d4dd9 Add missing commit from PR2695 2022-06-09 16:48:31 +02:00
José Rebelo
2101b5840a Mi Band 5: Start fitness tracking on phone when workout starts on band 2022-06-09 10:32:26 +02:00
José Rebelo
b07cd54468 Mi Band 5: Send GPS location to band during workout 2022-06-09 10:32:26 +02:00
José Rebelo
d6658b41b5 Huami: Fix heart rate measurement interval on connection 2022-06-07 23:01:59 +02:00
Arjan Schrijver
4d0bfb452b Fossil Hybrid HR: Allow installation of newer watch apps 2022-06-03 15:48:48 +02:00
Andreas Shimokawa
fa3bdd36d5 Amazfit Bip U/Pro: enable hr alert and stress tracking setting 2022-05-22 00:27:35 +02:00
vanous
30b4c1b868 AmazfitBand5: Enable extended HR monitoring 2022-05-20 22:10:16 +02:00
Gordon Williams
b324f40a78 Bangle.js: add support for rendering to a text that can't be displayed into a bitmap and sending the bitmap over
# Conflicts:
#	app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/banglejs/BangleJSDeviceSupport.java
2022-05-18 16:35:07 +01:00
Gordon Williams
ec3b54ef47 Bangle.js: Add option for enabling/disabling internet access, and add ability to send Intents direct from Bangle.js
# Conflicts:
#	app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/banglejs/BangleJSDeviceSupport.java
2022-05-18 16:31:22 +01:00
Andreas Shimokawa
79d5c246a2 Mi Band 6: enable new settings 2022-05-18 10:41:30 +02:00
José Rebelo
91e9451a87 Mi Band 5: Add HR activity monitoring, HR alerts, stress monitoring 2022-05-17 21:49:43 +01:00