1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-07-16 18:34:03 +02:00
Commit Graph

389 Commits

Author SHA1 Message Date
José Rebelo
ee6340c848 Amazfit Bip 3: Initial support 2024-03-17 13:06:31 +00:00
José Rebelo
9db60f16d1 Allow for device settings sub-screens (#3620)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3620
Co-authored-by: José Rebelo <joserebelo@outlook.com>
Co-committed-by: José Rebelo <joserebelo@outlook.com>
2024-03-16 17:21:42 +00:00
José Rebelo
fe2a760891 Refactor language and Mi Band 6 preferences code 2024-03-09 14:24:50 +00:00
José Rebelo
b8b8b5f681 Huami: Display unknown raw activity kind in the activity summary 2024-03-04 21:07:59 +00:00
José Rebelo
58d4ebf509 Huami: Refactor activity data fetching
Activity data fetching on Huami devices was filled with duplicated code,
and the handleActivityFetchFinish was called from multiple places where
it did not make sense. This made us signal to the band that activity
fetch was finished when it sometimes was not, causing some race
condititions that would make activity fetch fail or get stuck.

This refactor defines a clear "processBufferedData" that is called
upstream, signaling to the fetch operation that we have received all
data and the buffer can be processed. All handling of metadata and ack
messages is also delegated to the upstream class.
2024-02-25 13:10:25 +00:00
José Rebelo
5e068ee4ca Huami: Extract activity fetch data types to enum 2024-02-25 13:10:25 +00:00
Martin.JM
89b6ae9f24 Add more granular smart wakeup support
Specifically:
- Add position to smart wakeup support coordinator function
- Add interface to stop smart alarm checkbox from being changed
2024-02-18 17:24:29 +01:00
José Rebelo
145c2b8c6c Zepp OS: Recognize devices with a dash before mac address suffix 2024-02-02 20:58:00 +00:00
José Rebelo
944e0d92a7 Zepp OS: Fix AGPS uploads
Regression introduced by 34fd18885a - UIHH upload is needed for AGPS
updates on older devices.
2024-02-02 20:51:06 +00:00
José Rebelo
aa4a7912ef Zepp OS: Match devices by exact bluetooth name
This attemts to reduce false positives, especially for devices that
present as two bluetooth devices such as the GTR 4.
2024-02-01 18:47:36 +00:00
José Rebelo
34fd18885a Zepp OS: Refactor firmware uploads
Zepp OS 3 firmware upgrades are big (200MB+). Gadgetbridge was crashing,
since the entire firmware file would be pulled into memory.

This commit unifies all the logic for Zepp OS firmware handling.

However, since the needed refactor was big, this commit duplicates some
of the code from Huami classes, namely:
- ZeppOsFirmwareUpdateOperation clones UpdateFirmwareOperation2020
- ZeppOsFwInstallHandler clones AbstractMiBandFWInstallHandler

This avoids changes to older device logic and introducing regressions.

Lost functionality:
- Repackaging firmwares as UIHH (does not seem to be needed, and was not
  used anyway). Code can be recovered from this commit if needed in the
  future
- Whitelisted firmwares by checksum (we do not have a lot of them at
  this point anyway)

Other misc changes:
- Rename ZipFile to GBZipFile not to clash with the java class

Tested by updating the Amazfit GTR 4 to Zepp OS 3.
2024-02-01 18:47:28 +00:00
José Rebelo
773132c4e1 Make all Zepp OS classes explicit
There are still some actual "Huami 2021" classes that are used in
non-ZeppOS devices, but this refactor improves the distinction.
2024-01-29 23:30:28 +00:00
José Rebelo
5999eb01d0 Nothing CMF Watch Pro: Initial support 2024-01-28 18:46:13 +00:00
FYG_license_bot_ignore_me
4c7476845b Update license headers and CONTRIBUTORS file 2024-01-10 19:01:48 +01:00
José Rebelo
ab894ae433 Extract hardcoded activity summary entries to constants 2024-01-06 13:54:06 +00:00
José Rebelo
4a7a201971 Pixoo: Support custom device name 2023-12-23 21:27:57 +00:00
José Rebelo
9df3ae9c2e Amazfit T-Rex Pro: Add activate display on lift sensitivity 2023-12-13 20:45:37 +00:00
José Rebelo
efc8752a66 Zepp OS: Toggle phone silent mode from band 2023-12-11 10:50:50 +00:00
José Rebelo
4dbf9bb8ac Huami: Toggle phone silent mode from band 2023-12-11 10:50:31 +00:00
MrYoranimo
435d41aca0 Huami/Xiaomi: centralize handling of device state events
Gadgetbridge can be configured to perform an action when a
Huami device is taken off or the user was detected to fall asleep or
wake up. This functionality was specific to Huami devices, but this
changeset moves this upstream to the AbstractDeviceSupport class in
combination with new GBDeviceEvents.

Now that the ADS has centralized support for this functionality, the
same logic can be used for other devices. In this case, an
implementation is added for supported Xiaomi devices.
2023-12-09 00:20:22 +01:00
José Rebelo
f29995b571 Zepp OS: Allow disabling app notifications per device 2023-12-08 11:29:20 +00:00
José Rebelo
77329813b9 Use simple summary provider for vibration pattern counts 2023-12-08 10:45:07 +00:00
José Rebelo
03dbf7533f Xiaomi: Get canned messages from watch 2023-12-06 11:18:13 +00:00
José Rebelo
9ddbcc0c8a Xiaomi: Use display items labels from watch 2023-12-05 18:20:02 +00:00
José Rebelo
3ab1ac26db Refactor known preference values code to be reusable 2023-12-05 18:20:02 +00:00
José Rebelo
ba0ca1de75 Delegate auth key validation to coordinator 2023-12-02 10:59:34 +00:00
José Rebelo
5be3543fa3 Xiaomi Smart Band 7 Pro: Experimental support 2023-11-29 21:18:52 +00:00
José Rebelo
636f4adc8d Zepp OS: Delete device data when deleting device 2023-11-26 21:01:32 +00:00
José Rebelo
8bd7e103d0 Update changelog 2023-11-25 22:30:25 +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
José Rebelo
0c47d12c0f Amazfit Active / Active Edge: Experimental support 2023-10-29 19:19:20 +00: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
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
José Rebelo
ad42255ea1 Amazfit T-Rex: Fix activity summary parsing 2023-10-08 21:27:05 +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
Daniel Dakhno
b97b26ce3a Device manager: moved device icons and name to Coordinator 2023-09-28 00:11:02 +03:00
José Rebelo
9fe5bc049f Remove stray character 2023-09-19 20:48:20 +01:00
José Rebelo
a85246c279 Use GBDeviceCandidate#getName on all coordinators 2023-09-19 20:45:13 +01: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
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
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
José Rebelo
454d766e88 Zepp OS: Add all remaining devices as experimental 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