1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-11-28 21:06:50 +01:00
Commit Graph

9410 Commits

Author SHA1 Message Date
Andreas Shimokawa
177fa56bb9 Pixoo: Quick hack to "install" any image on the pixoo 2023-12-26 20:38:13 +01:00
José Rebelo
b77ba8b74c Pebble: Attempt to fix app configuration webview
See #3373 and possibly #3424
2023-12-26 16:48:59 +00:00
Andreas Shimokawa
f4d7a6b490 Pixoo: implement sending bitmaps
Not really used right not - mapped to "test new functionality"
2023-12-26 01:14:16 +01:00
José Rebelo
09fbc2665b Redmi Watch 2 Lite: Experimental support 2023-12-24 16:38:11 +00:00
José Rebelo
1cfd00c924 Pixoo: Add setting to disable notifications 2023-12-23 21:51:54 +00:00
José Rebelo
4a7a201971 Pixoo: Support custom device name 2023-12-23 21:27:57 +00:00
Arjan Schrijver
9c619c6c7c Fossil/Skagen Hybrids: Make navigation options texts translatable 2023-12-23 22:13:36 +01:00
Arjan Schrijver
7aeb0dd2ef Fossil/Skagen Hybrids: Update navigationApp to 1.1
Changes:
- Support locking (keep visible and let hands display time)
- Support merge navigation instruction
- Support wrist flick gesture to move hands
- Support GB-configurable foreground and vibration behaviour
2023-12-23 22:05:51 +01:00
José Rebelo
5ffed2aa62 Xiaomi: Fix crash if device does not provide full stress and spo2 data 2023-12-23 14:08:39 +00:00
José Rebelo
a62ff4eabb Xiaomi: Improve activity details parsing on some devices 2023-12-22 22:44:30 +00:00
José Rebelo
71b55902d0 Mi Band 7 Pro: Disable PAI
Reported not supported on matrix.
2023-12-22 22:42:27 +00:00
José Rebelo
fb803cbdda Xiaomi: Enable REM sleep 2023-12-22 22:21:51 +00:00
José Rebelo
b79f774e3e Xiaomi: Add debug function to parse all activity files from storage 2023-12-22 22:21:51 +00:00
José Rebelo
09c33b3541 Xiaomi: Persist and overlay sleep stages 2023-12-22 22:21:51 +00:00
José Rebelo
82863ff305 Xiaomi: Add sleep stages parser
From Alice
2023-12-22 19:19:56 +00:00
José Rebelo
b535784117 Mijia LYWSD03MMC: Initial support
Same protocol as LYWSD02, but does not support setting the time.
2023-12-22 12:35:35 +00:00
José Rebelo
149b6236a0 Mijia LYWSD: Make support class generic 2023-12-22 12:26:15 +00:00
Arjan Schrijver
4c0750e75a Add missing navigation actions to GMaps handler 2023-12-21 11:16:23 +01:00
LuK1337
0ca35ad935 Xiaomi: Handle find phone messages without system properly
After find phone is stopped, watch sends a `Command` message back
without `system` set, and because of missing hasSystem() check, we'd
wrongly go to condition that sets findPhoneEvent.event to START.
2023-12-20 19:32:17 +00:00
José Rebelo
cb66cd742a Xiaomi: Enable activity sync on debug and nightly builds 2023-12-20 19:09:49 +00:00
Andreas Shimokawa
4f75141d76 pixoo: add missing settings xml file 2023-12-20 15:05:23 +01:00
Andreas Shimokawa
81c9aa5faf Pixoo: support "clap hands to turn off screen" and "sleep after silence" settings
Also fix crc calculation :P
2023-12-19 21:08:25 +01:00
Andreas Shimokawa
198800e087 Pixoo: Decode alarms from device, support sending alarms
This is probably not quite right yet.

Also we need to properly chunk incoming protocol messages before decoding them
2023-12-19 10:58:49 +01:00
Andreas Shimokawa
ea0817f7b6 Use TextUtils.join intead of String.join, to make at least the linter happy
It is not clear to me if this would get desugarized anyway, but linter says needs API 26
2023-12-16 19:37:40 +01:00
Andreas Shimokawa
c58d45423e bump version, update fastlane and xml changelog 2023-12-16 18:28:01 +01:00
José Rebelo
48e1bc1a8a ColaCao 2021 / 2023: Initial support
Reports in #3455 and #2955 mention that everything works, except HR,
which crashes the devices (they do not have an HR sensor), so we just
disable HR support.
2023-12-14 21:53:30 +00:00
Arjan Schrijver
730841e9a1 Convert last remaining Switches to MaterialSwitch
Fixes #3454
2023-12-14 13:24:04 +01:00
José Rebelo
9df3ae9c2e Amazfit T-Rex Pro: Add activate display on lift sensitivity 2023-12-13 20:45:37 +00:00
José Rebelo
1c7289edfa Xiaomi: Fix secondary goal config 2023-12-12 21:27:50 +00:00
José Rebelo
1028d2c0cd Xiaomi: Display widget id when names are repeated 2023-12-12 20:58:42 +00:00
José Rebelo
cb3e10f07a Xiaomi: Update stress ranges to match watch 2023-12-12 20:46:59 +00:00
José Rebelo
372cf563ea Xiaomi: Add Vitality Score (PAI-like metric) 2023-12-12 20:27:15 +00:00
José Rebelo
bddec00de1 Xiaomi: Persist daily summary 2023-12-12 20:26:55 +00:00
José Rebelo
2d89fdf11b Xiaomi: Fix widget set on some devices 2023-12-12 18:45:44 +00:00
José Rebelo
128aed005b Xiaomi: Parse daily summary and workout gps tracks 2023-12-12 14:12:00 +00:00
José Rebelo
820956ccdc Xiaomi: Disable activity fetching outside of Mi Band 8
It has a lot of issues, and should not be enabled to proceed with a
release.
2023-12-11 22:16:04 +00:00
José Rebelo
6de7af62e3 Xiaomi: Manage widgets 2023-12-11 22:00:16 +00:00
José Rebelo
108307c711 Redmi Smart Band 2: Experimental support
Characteristics taken from #3274
2023-12-11 13:58:00 +00:00
José Rebelo
fce33329ea Xiaomi: Add class size warning to xiaomi.proto 2023-12-11 11:07:44 +00:00
José Rebelo
095b9e42d3 Xiaomi: Toggle phone silent mode from band 2023-12-11 10:51:10 +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
José Rebelo
8f2924c873 Xiaomi: Reject call with SMS reply 2023-12-10 22:12:16 +00:00
José Rebelo
e6aa9d276a Xiaomi: Fix workout types on xiaomi.proto 2023-12-10 20:48:30 +00:00
José Rebelo
5ca3298e5b Xiaomi: Update xiaomi.proto widgets and vibration patterns 2023-12-10 20:24:22 +00:00
José Rebelo
4051c7f7d4 Xiaomi: Add wear mode preference 2023-12-10 18:03:17 +00:00
José Rebelo
d28cff478c Delete notifications from connected devices only 2023-12-10 17:28:15 +00:00
José Rebelo
9babbf504e Xiaomi: Fix camera remote get typo 2023-12-10 13:30:14 +00:00
José Rebelo
bf9a5d90d4 Xiaomi: Add camera remote preference 2023-12-10 13:24:35 +00:00
José Rebelo
a3e2997f26 Xiaomi: Fix sleep mode schedule, spo2 and stress support detection 2023-12-10 12:31:19 +00:00
José Rebelo
8d1c243297 Xiaomi: Detect supported preferences 2023-12-10 12:24:59 +00:00
José Rebelo
c38d2044d8 Xiaomi: Add vitality score notification preferences 2023-12-10 11:19:01 +00:00
José Rebelo
dd0c9cf3e0 Xiaomi: Configure fitness goal notification and secondary goal 2023-12-10 11:02:22 +00:00
José Rebelo
4635bf018a Xiaomi: Enable autoremove dismissed notifications preference 2023-12-10 10:42:07 +00:00
José Rebelo
18686e98c5 Xiaomi: Delete notification from watch when dismissed from phone 2023-12-10 10:36:14 +00:00
José Rebelo
ef73ea1bd5 Make LimitedQueue generic 2023-12-10 10:30:27 +00:00
José Rebelo
4d12ac93e7 Allow multiple device actions to be triggered for the same event 2023-12-09 11:40:28 +00:00
José Rebelo
25196a932e Allow toggling DND through device actions 2023-12-09 11:01:55 +00:00
José Rebelo
577ee27c14 Intent API: Add debug action for test new function 2023-12-09 10:59:39 +00:00
MrYoranimo
0378f48798 Xiaomi: fix for invalid birthdate being sent in user info 2023-12-09 00:20:22 +01: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
2ff92c73f8 Xiaomi: Re-enable screen on on notifications preference
- Disabled by accident on 2063bc2df
- Move preference to XiaomiNotificationService
- Get preference value on connection
2023-12-08 20:55:58 +00:00
José Rebelo
2063bc2dfd Xiaomi: Remove not-implemented preferences 2023-12-08 18:53:22 +00:00
José Rebelo
961e9f1bf9 Xiaomi: Fix sleep schedule preference 2023-12-08 18:53:11 +00:00
José Rebelo
6984572d33 Xiaomi: Allow notification open on phone 2023-12-08 12:12:35 +00:00
José Rebelo
2b8d8c2cb0 Xiaomi: Fix dismiss multiple notifications from watch 2023-12-08 11:49:47 +00:00
José Rebelo
6479cc3bb0 Xiaomi: Allow disabling app notifications per device 2023-12-08 11:39:53 +00: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
Andreas Shimokawa
b4aca410b4 Pixoo: implement some protocol for testing 2023-12-07 21:07:52 +01:00
Andreas Shimokawa
b44b0fec7e Divoom Pixoo: Initial experimental support
Works:
- notifications
- call notification
- set time
- setting brightness
- setting 24h/12h format
- sending weather

Note
- this is implemented using using the classic bluetooth serial protocol, the
  device can do BLE, but I don't know how to use it, as I did not have the
  offical app to sniff.
- The information about the protocol comes from here
  https://github.com/jfroehlich/node-p1x3lramen/blob/main/source/devices/pixoo.js

TODO:
- Enable beep? Possible? I heard it beep once at least when switching it on
- Getting out of factory mode? Why does it always play animations even when I
   switch to the clock?
- Implement switching modes (can be done with the button)
- Implement sending own images and animations
- Firmware update?
- ...
2023-12-06 15:56:18 +01:00
José Rebelo
130e2ab85c Xiaomi: Fix heart rate interval and sleep support 2023-12-06 11:51:01 +00:00
José Rebelo
03dbf7533f Xiaomi: Get canned messages from watch 2023-12-06 11:18:13 +00:00
MrYoranimo
b902ee96c3 Xiaomi: improve battery level and charger status processing
Because the reporting of battery state is inconsistent between different
models, the device's battery state was not correctly processed in GB.

For at least the firmware on the Xiaomi Watch S1 Active, the charger
state is broadcast through a separate message from the message
containing the battery level. Even though the battery level was
requested by GB upon receiving this broadcast, the charger state got
discarded as it was expected to also be included in the result of the
subsequent request.

This patch changes the name of the `Charger` message to `DeviceState`
and includes more fields that may be presented by some device models.
Furthemore, the broadcast is cached so that the charger state can be
processed from this cache instead of the battery level response message.
2023-12-06 11:56:13 +01:00
MrYoranimo
405596d960 Xiaomi: check for null values before encoding MusicSpec to proto 2023-12-05 20:27:33 +01:00
MrYoranimo
561dc16b28 DeviceCommunicationService: catch uncaught exceptions from handleActions
Exceptions raised while handling actions in the device's support class
may result in the DeviceCommunicationService crashing as a whole and not
being started again until the user forces GB to make a connection by
pressing the device from the list.

This change is made, because Xiaomi devices make use of proto2 messages,
where optional fields cannot be set to null values as that will make it
throw NPEs.
2023-12-05 20:19:12 +01:00
José Rebelo
7f7834c620 Xiaomi: Fix reconnect if characteristics are null
If a service was found, but characteristics are null, maybe we're just
connecting too early - set the device to reconnect.
2023-12-05 18:30:33 +00:00
José Rebelo
4de7cb3591 Xiaomi: Improve service auto-detection
Some watches have the encrypted service, even though they're plaintext,
but are missing the characteristics.
2023-12-05 18:28:39 +00:00
José Rebelo
1c68252255 Xiaomi: Fix settings display items code 2023-12-05 18:20:02 +00:00
Andreas Shimokawa
776346d311 Xiaomi: guard against null pointer crash 2023-12-05 18:20:02 +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
2dacdcface Xiaomi: Log service 2023-12-05 18:17:50 +00:00
José Rebelo
95d3ff81fd Xiaomi: Fetch alarm and reminder slots from watch 2023-12-05 18:16:45 +00:00
MrYoranimo
5f9fda4f07 BtLEQueue: fix typo in onCharacteristicChange 2023-12-04 23:32:23 +01:00
MrYoranimo
b303da4e62 Xiaomi: wrap parsing of activity data in try block
This will prevent uncaught exceptions that occur during the
parsing of activity data from breaking up the activity fetching
chain and causing the task to never get completed.
2023-12-04 23:32:18 +01:00
MrYoranimo
0f83346d65 Xiaomi: check if binary parser result is null
The activity parser may return null pointers in case the version
of the data structure is not supported. Not checking for null here may
result in the activity fetching task may never complete and cause
further communication with the device to grind to a halt.
2023-12-04 22:03:59 +01:00
José Rebelo
376956bbe9 Xiaomi: Improve activity fetch logging 2023-12-04 09:46:49 +00:00
José Rebelo
e6cb15d9eb Mi Watch Color Sport: Experimental support 2023-12-02 11:56:23 +00:00
José Rebelo
ec050d7a4f Xiaomi: Unify encrypted and plaintext logic 2023-12-02 11:25:32 +00:00
José Rebelo
ba0ca1de75 Delegate auth key validation to coordinator 2023-12-02 10:59:34 +00:00
José Rebelo
216dc93986 Mi Band 8: Overlay sleep on activity data 2023-12-02 10:56:36 +00:00
José Rebelo
84692e5432 Mi Band 8: Persist bedtime and wakeup times to database 2023-12-01 21:35:29 +00:00
Andreas Shimokawa
1b2a9ac140 Xiaomi: When sending contacts, use correct command to replace the ones already on the watch 2023-12-01 20:07:32 +01:00
Andreas Shimokawa
81e24e53ed Xiaomi: WIP implementation for sending contacts
This is not useful yet because contacts just get added when sending them, instaed of replacing.
Should be fixed or disabled before the release
2023-12-01 12:40:53 +01:00
Andreas Shimokawa
6e5bedb365 Xiaomi: Implement Screen On on Notification setting
Works on Redmi Watch 3 Active
Does not work on Mi Watch Lite
2023-12-01 07:52:08 +01:00
MrYoranimo
b9b91db06f Xiaomi: implement phonebook service to respond to contact info requests 2023-11-30 22:54:41 +01:00
Gordon Williams
684d976bfc Bangle.js: Ensure SMS messages have src field set to "SMS Message" (it was previously left out) 2023-11-30 09:33:07 +00:00
José Rebelo
5be3543fa3 Xiaomi Smart Band 7 Pro: Experimental support 2023-11-29 21:18:52 +00:00
José Rebelo
0c4e2df075 Xiaomi: Fix crash when opening app manager
Regression introduced by e53c67e8bf
2023-11-29 21:11:54 +00:00