1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-07-31 11:03:57 +02:00
Commit Graph

1456 Commits

Author SHA1 Message Date
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
b0d3fe6a51 Xiaomi: Set device language 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
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
José Rebelo
d3eb69fcf7 Mi Band 8: Send gps to watch (wip) 2023-11-25 21:16:53 +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
José Rebelo
aead518e05 Xiaomi: Implement daily activity parsing 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
d953fd5b5b Mi Watch Lite: Refactor to use XiaomiCharacteristic 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
0ed169c153 Xiaomi: Refactor characteristics (wip, chunked is broken) 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
809a809082 Mi Band 8: Replace sleep time with sleep mode schedule (fix crash) 2023-11-25 21:16:51 +00:00
José Rebelo
29fe3bc6ae Mi Band 8: Sleep mode schedule 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
54e31a1521 Mi Band 8: HR, SpO2, Stress settings (untested, wip) 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
241486f7c3 Mi Band 8: Update to use getSupportedDeviceName 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
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
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
José Rebelo
5abd46d7ba Amazfit T-Rex Ultra: Remove experimental 2023-11-09 21:52:14 +00:00
José Rebelo
4c4e18560f Amazfit Bip 5: Remove experimental 2023-11-03 20:53:01 +00:00
Arjan Schrijver
3d543db24f Fossil/Skagen Hybrids: Update navigationApp to version 1.0 2023-11-02 16:33:21 +01:00
José Rebelo
0c47d12c0f Amazfit Active / Active Edge: Experimental support 2023-10-29 19:19:20 +00:00
Arjan Schrijver
a0e6085324 Fossil/Skagen Hybrids: Allow configuring call rejection method 2023-10-20 10:50:25 +02:00
Arjan Schrijver
59dafc54b6 Fossil/Skagen Hybrids: Show device specific settings in more logical order 2023-10-18 22:39:13 +02:00
José Rebelo
f090898aef Zepp OS: Add statistics fetch operation
We do not know what they are or how to parse them, but syncing them
helps free up space from the band.
2023-10-18 16:17:41 +01:00
José Rebelo
5a65bbf8f4 Zepp OS: Add temperature fetch operation (no DB / UI) 2023-10-18 15:46:58 +01:00
Arjan Schrijver
88341c8b86 Fossil/Skagen Hybrids: Add new navigation app 2023-10-18 13:06:16 +00:00
Reiner Herrmann
4abde0766d Zepp OS: display swimming-related activity data 2023-10-16 23:35:10 +02:00
Maxime Reyrolle
ff6d6f5e53 add initial support for Amazfit Balance 2023-10-15 13:41:53 +00:00
ahormann
28e673415f Support for Femometer Vinca 2 and HealthThermometerProfile (#3369)
Co-authored-by: ahormann <ahormann@gmx.net>
Co-committed-by: ahormann <ahormann@gmx.net>
2023-10-15 13:37:41 +00:00
José Rebelo
11de66f8e4 Fossil/Skagen Hybrids: Fix some preference crashes on the nightly 2023-10-14 21:33:24 +01:00
Arjan Schrijver
69fcec059d Replace old-style preference switch with Material 3 switch 2023-10-09 09:53:36 +02:00
José Rebelo
ad42255ea1 Amazfit T-Rex: Fix activity summary parsing 2023-10-08 21:27:05 +01:00
José Rebelo
dcf2629854 Remove scanning intensity preference and legacy discovery activity
The refactored DiscoveryActivityV2 does not freeze anymore, even under
maximum scanning intensity on older phones, and seems to not have
introduced any regressions.
2023-10-06 22:16:58 +01:00
Daniel Dakhno
17a9aa3b20 VESC: added name matching for Coordinator#supports 2023-10-06 13:13:09 +02:00
José Rebelo
0854263233 Fix Bohemic Smart Bracelet recognition 2023-10-05 21:47:00 +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
Noodlez
4919be9f6d Update AsteroidOS support
Fixed a few bugs.
1. Moved from the depreciated Date object for sending over the time
2. Fixed media info sending. (It would crash when info was missing)
3. Fixed notification dismissal (Typo in removal tag from remove->removed)
4. Fixed quite a few warnings that were being brought up.
5. Added more of the supported models for AsteroidOS.

There are still a few problems that exist. Screenshotting still doesn't work. I'm just not sure how it works in GB. The AsteroidOS service is still not being detected, even though the AsteroidOSSync application is detecting it just fine.
2023-10-05 20:26:58 +00:00
José Rebelo
d1dee47186 Fix tests 2023-10-04 21:58:45 +01:00
José Rebelo
5f05a0d88f Sony WF-1000XM5: Experimental support 2023-09-28 23:53:58 +01:00
José Rebelo
25af69733f Add default methods to AbstractDeviceCoordinator 2023-09-28 23:32:57 +01:00
Daniel Dakhno
b97b26ce3a Device manager: moved device icons and name to Coordinator 2023-09-28 00:11:02 +03:00
Davis Mosenkovs
edce45dcc3 Mijia LYWSD02: Battery + setting temperature scale
Implement reading battery percentage.
Implement setting temperature scale used on clock display.

Communication protocol taken from: https://github.com/h4/lywsd02
2023-09-23 17:18:42 +03:00
Davis Mosenkovs
f4af55d622 Mijia LYWSD02: Add support for LYWSD02MMC 2023-09-23 17:11:39 +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
José Rebelo
9fe5bc049f Remove stray character 2023-09-19 20:48:20 +01:00
José Rebelo
e078ceff0a Introduce DiscoveryActivityV2 2023-09-19 20:45:14 +01:00
José Rebelo
a85246c279 Use GBDeviceCandidate#getName on all coordinators 2023-09-19 20:45:13 +01:00
José Rebelo
6f7fb261e7 Move Discovery activities to standalone package 2023-09-19 20:44:42 +01:00
Gabriele Monaco
89f57243cf Added loyalty cards support for the banglejs 2023-08-20 11:14:03 +02: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
e855cfec08 Amazfit GTR Mini: Remove experimental, change AGPS updates to not use file transfer 2023-09-16 14:55:27 +01:00
José Rebelo
763ee10a6c Fix support classes for some Amazfit devices
Affected devices:
- Amazfit Bip Lite
- Amazfit Bip S Lite
- Amazfit GTS 2 Mini
- Amazfit Pop
- Amazfit Pop Pro
2023-09-14 22:05:27 +01:00
Gordon Williams
c647c2647f Bangle.js: Improve file downloads - we can now at least get files downloaded 2023-09-14 12:49:37 +01:00
Arjan Schrijver
557bfea35c Add lint baseline, enable linting on CI, fix some reported errors (#3291)
This PR:
- fixes some errors reported by `gradlew lint` and the Android Studio "Code Inspection" tool
- adds a snapshot file `lint-baseline.xml` of the remaining lint errors and warnings to be used by the linter as baseline
- adds a job for CI to run `gradlew lint` on every build

Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3291
Reviewed-by: José Rebelo <joserebelo@noreply.codeberg.org>
Co-authored-by: Arjan Schrijver <a_gadgetbridge@anymore.nl>
Co-committed-by: Arjan Schrijver <a_gadgetbridge@anymore.nl>
2023-09-11 09:17:04 +00:00
José Rebelo
200cfdf29a Revert "Amazfit Bip 3 Pro: Enable HR stats and sleep respiratory rate"
Per the feedback on #3249, this does not seem to be supported.

This reverts commit 42f35259fc.
2023-08-27 17:45:57 +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
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