1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-12-18 06:37:47 +01:00
Commit Graph

10934 Commits

Author SHA1 Message Date
Vitaliy Tomin
4e7b83bebf huawei: Make more tags optional for app managemnet
* solves this crash on Honmor GS Pro:

09:45:29.115 [Read Thread for HONOR Watch GS Pro-BD1] DEBUG n.f.g.s.b.BtBRQueue - Received 26 bytes: 5A0015002A068110820E0301260404000000030503322E302B86
09:45:29.118 [Read Thread for HONOR Watch GS Pro-BD1] DEBUG n.f.g.d.h.HuaweiTLV - Parsed TLV: {tag: 81 - Value: 820E0301260404000000030503322E30}
09:45:29.120 [Read Thread for HONOR Watch GS Pro-BD1] DEBUG n.f.g.s.d.h.ResponseManager - Service: 2a, command: 6, handled by: class nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.requests.GetAppInfoParams
09:45:29.122 [Read Thread for HONOR Watch GS Pro-BD1] DEBUG n.f.g.d.h.HuaweiTLV - Parsed TLV: {tag: 82 - Value: 0301260404000000030503322E30}
09:45:29.124 [Read Thread for HONOR Watch GS Pro-BD1] DEBUG n.f.g.d.h.HuaweiTLV - Parsed TLV: {tag: 3 - Value: 26} - {tag: 4 - Value: 00000003} - {tag: 5 - Value: 322E30}
09:45:29.126 [Read Thread for HONOR Watch GS Pro-BD1] ERROR n.f.g.s.d.h.r.Request - Parse TLV exception
nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiPacket$MissingTagException: Missing tag: 6
	at nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiTLV.getBytes(HuaweiTLV.java:219)
	at nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiTLV.getString(HuaweiTLV.java:239)
	at nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets.App$AppInfoParams$Response.parseTlv(App.java:129)
	at nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.requests.Request.handleResponse(Request.java:243)
	at nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.ResponseManager.handleData(ResponseManager.java:131)
	at nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiSupportProvider.onSocketRead(HuaweiSupportProvider.java:880)
	at nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiBRSupport.onSocketRead(HuaweiBRSupport.java:74)
	at nodomain.freeyourgadget.gadgetbridge.service.btbr.BtBRQueue$1.run(BtBRQueue.java:87)
2024-09-12 22:49:11 +00:00
José Rebelo
183bf8725f Huawei: Re-parse workout details when opening details 2024-09-12 22:47:13 +00:00
José Rebelo
967ae31b7a HuaweiWorkoutGbParser: Use ActivitySummaryData 2024-09-12 22:47:13 +00:00
Vitaliy Tomin
02286d2c2c huawei: Add honor watch gs pro gadget 2024-09-12 12:36:11 +08:00
José Rebelo
9fcd463bfc Fix import of some hashset preference values from xml 2024-09-11 22:28:56 +00:00
José Rebelo
be9cc348d1 Allow full backup/restore from a zip file 2024-09-11 22:28:56 +00:00
Gordon Williams
53144ff220 Bangle.js: ensure we escape char code 16 as it's not 100% foolproof to use 2024-09-11 14:17:39 +01:00
José Rebelo
721b582b87 Fix discovery of connected devices
Devices might be connected at bluetooth-level, but not yet paired in
Gadgetbridge. These devices will not fire discovery events, so
Gadgetbridge would not be able to discover them.
2024-09-10 22:23:57 +01:00
Daniel Dakhno
cde9dfb6a5 BLE Intent API: fixed characteristic read check 2024-09-10 22:59:27 +02:00
José Rebelo
4875b0e1fe Fix charts icon color 2024-09-10 19:51:12 +01:00
Arjan Schrijver
e8c295df51 Colmi R0x: Fix sleep gap at midnight in dashboard today widget 2024-09-09 22:05:02 +02:00
José Rebelo
ea41bbd1a9 Garmin: Fix multiple FitAsyncProcessor running in parallel 2024-09-09 19:37:32 +01:00
José Rebelo
14d76cf59b Huami: Fetch workouts during normal sync 2024-09-09 12:25:05 +01:00
José Rebelo
6843271ac2 Bluetooth Intent API: Add disconnect action (#4090) 2024-09-09 00:33:13 +01:00
José Rebelo
b1c064d9ca BLE Intent API: Fix build after rebase 2024-09-09 00:32:53 +01:00
Daniel Dakhno
aae1d40d54 Core: added first iteration of BLE intent API
Core: added BLE GATT Client

Core: fixed string comparisons

Core: unified intent APIs

Core: fixed notification and publication bugs

Core: extracted BLE Intent API logic

Core: introduced finer BLE API permissions

Core: use device name when adding test device through DiscoveryActivity

Core: avoid reporting same device state multiple times

Core: read firmware version on GATT Client connect connect

Core: use onSendConfiguration instead of direct subscription

Core: I18N for GATT API settings

Core: I18N for GATT API settings

Core: only show BLE API settings for BLE devices

Core: refactored intent handler

Core: extracted ble API to own class

Core: fixed unitialized BLE Api

BLE Intent API: I18N

BLE Intent API: refactoring

BLE Intent API: added back legacy API

BLE Intent API: removed new DEVICE_CHANGED and CONNECT endpoints

BLE Intent API: removed redundant ble api setting
2024-09-08 23:17:07 +00:00
Me7c7
0745a374a5 Huawei: Continuous skin temperature measurement switch 2024-09-08 20:24:15 +00:00
José Rebelo
42def1cefb Update some manufacturers with brand names
Most users will not recognize the actual manufacturers, so let's replace
with the brand names.
2024-09-08 14:17:16 +01:00
Martin.JM
1315931ff8 Huawei: Chain initialize dynamic services requests
Also includes a bit of cleanup.

Thanks to José Rebelo for cleaning my code.
2024-09-08 01:05:16 +02:00
José Rebelo
098ab77cc6 Garmin Forerunner 165: Initial support 2024-09-07 23:26:07 +01:00
José Rebelo
c5c0d2a9d4 Update dependency com.android.tools:desugar_jdk_libs to v2.1.2 2024-09-07 21:41:19 +01:00
José Rebelo
fa9e111b6b Dashboard: Reload preferences on create view
Attempt to mitigate a crash when a device finishes fetching data
while the fragment is still being created.
2024-09-07 21:32:13 +01:00
José Rebelo
2212b244e6 Garmin: Fix NPE on call with privacy mode on 2024-09-07 14:29:55 +00:00
José Rebelo
3a778a9f2a Fix sleep charts for devices without REM sleep 2024-09-07 13:41:30 +01:00
Me7c7
fc450882cb Huawei: Contacts uploading support 2024-09-07 11:31:15 +00:00
dependency-bot
287fdd87d8 Update dependency androidx.fragment:fragment to v1.8.3 2024-09-07 12:29:33 +01:00
dependency-bot
b481860529 Update dependency androidx.activity:activity to v1.9.2 2024-09-07 11:28:55 +00:00
Johannes Krude
0282863573 Casio GW-B5600: bugfix for several watch settings 2024-09-07 08:22:12 +02:00
José Rebelo
42277fceb9 Casio: Truncate notification message to 250 bytes 2024-09-06 21:44:06 +01:00
Me7c7
1f5e9b52b8 Huawei: Quick fix issue with concatenated packets. 2024-09-06 20:12:56 +00:00
Patrick Rudolph
cde10a6dce Huawei: GetHiChainRequest: Add error handling
Parse the error code and throw an exception instead of doing strange
things due to invalid step ID being used.

To investigate issue #4061.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2024-09-06 20:06:34 +00:00
José Rebelo
e51b55a38a Garmin: Infer sleep time for devices that do not send sleep stages
See #4048 for more information
2024-09-05 21:27:29 +01:00
José Rebelo
bd5b54c3b4 Garmin: Fix daily weather missing current day 2024-09-03 23:03:46 +01:00
José Rebelo
c04d3adf7c Casio: Truncate notifications with long messages (#4063) 2024-09-02 23:04:02 +01:00
José Rebelo
168c0e126e Huami: Move device actions to generic preferences section 2024-09-02 22:49:36 +01:00
Arjan Schrijver
b5104dd9ca Dashboard: Fix worn in Today widget when devices measure HR less than every minute 2024-09-02 20:38:49 +02:00
José Rebelo
d4e34c5982 Garmin: Remove music state timer 2024-09-01 15:07:54 +01:00
José Rebelo
4f7fb8117e BtLEQueue: Log MTU changes 2024-09-01 13:41:37 +01:00
José Rebelo
593d6d6b25 Garmin: Map some unknown realtime settings 2024-09-01 12:05:32 +01:00
José Rebelo
834c773dec Fix getLocalDate month off-by-1 2024-08-31 21:33:24 +01:00
José Rebelo
e676f7c6b0 Add safeguard against invalid year of birth values 2024-08-31 21:29:47 +01:00
mormegil
72e8028ad6 Update Nordic DFU library to fix Pinetime firmware upgrade on Android 14
Since we raised `targetSdkVersion` to 34 in fad092b6f8,
attempt to upgrade Pinetime firmware on Android 14+ causes Gadgetbridge
to die with "One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be
specified when a receiver isn't being registered exclusively for system
broadcasts" unhandled java.lang.SecurityException.

This was caused by the Nordic Semi DFU library not supporting A14 until
version 2.3.2 (see https://github.com/NordicSemiconductor/Android-DFU-Library/issues/412
and https://github.com/NordicSemiconductor/Android-DFU-Library/pull/413).

So, upgraded the library to the current release 2.5.0.
2024-08-31 16:52:27 +02:00
José Rebelo
4da02fa851 Add month and day to date of birth 2024-08-31 14:40:39 +01:00
José Rebelo
b59ba76803 Refactor preferences screen 2024-08-31 13:33:25 +00:00
José Rebelo
64887a5adf Prevent dashboard menu from showing on device list 2024-08-31 12:20:40 +01:00
dependency-bot
977ab9d03e Update dependency com.android.tools:desugar_jdk_libs to v2.1.1 2024-08-31 10:50:11 +00:00
Johannes Krude
76fb19a1b9 Reminders without time use UTC and do so also when changing the date 2024-08-30 22:03:34 +00:00
Johannes Krude
8a4aca06e6 DevicePrefs gets the GBDevice since it it device specific 2024-08-30 22:03:34 +00:00
Johannes Krude
80fea5b916 move some device specific preferences from GBPrefs to DevicePrefs
addresses https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/4049#issuecomment-2270266
2024-08-30 22:03:34 +00:00
Johannes Krude
b64841b48e GBReminderListAdapter gets remindersHaveTime through constructor
addresses https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/4049#issuecomment-2270261
2024-08-30 22:03:34 +00:00
Johannes Krude
e0741d4a13 Casio2C2D: Reminders have no hour or minute 2024-08-30 22:03:34 +00:00
Johannes Krude
e92baf69d1 Casio GW-B5600: Reminders 2024-08-30 22:03:34 +00:00
Johannes Krude
ec0a38c7c0 Casio2C2DSupport: refactor DeviceSetting for better reusability 2024-08-30 22:03:34 +00:00
Johannes Krude
e5438a856e fix reserved Reminder slots for non-Huami Devices 2024-08-30 22:03:34 +00:00
José Rebelo
21aff699a7 Limit logcat tags to 80 characters
Avoids them being sometimes not properly recognized in Android Studio
logcat.
2024-08-30 22:38:22 +01:00
Me7c7
1c19283192 Huawei: Improved error handling for bin file parsing. 2024-08-30 19:26:12 +00:00
Me7c7
2aafad46eb Huawei: Check TLVs before access. Not present in some watches 2024-08-30 19:26:12 +00:00
Me7c7
4989334ff4 Huawei: Instalattion of apps fixed. Correct bin files support 2024-08-30 19:26:12 +00:00
Me7c7
74b9298a6b Huawei: added measurement units for altitude #4044 2024-08-30 21:40:31 +03:00
Me7c7
f983060cb2 Huawei: Fixed min and max attitude values in workouts #4044 2024-08-30 18:59:40 +03:00
José Rebelo
95fdee3cbe Use MediaController for media buttons 2024-08-30 11:03:20 +00:00
José Rebelo
c7bb47d6bd Data Management: Fix keyboard focus on search 2024-08-29 22:02:29 +01:00
José Rebelo
d033c5e33e Data Management: Add basic search to file manager 2024-08-29 22:00:18 +01:00
José Rebelo
c9e4379346 Soundcore Liberty: Unify support classes 2024-08-29 20:40:26 +01:00
flipsa
648212bdc1 Initial support for Anker Soundcore Liberty 4 NC earbuds 2024-08-29 19:39:38 +00:00
José Rebelo
227f0a9d80 Mi Composition Scale: Add alternative bluetooth name 2024-08-29 15:17:19 +00:00
José Rebelo
7579ba11b1 Mi Composition Scale: Persist weight samples 2024-08-29 15:17:19 +00:00
José Rebelo
f746ef42f3 Dashboard: Prevent crash on draw after onSaveInstanceState (#4007) 2024-08-29 16:09:13 +01:00
José Rebelo
bfde77fb3a Prevent crash on unknown activity charts tab 2024-08-29 16:09:13 +01:00
José Rebelo
f76180c4bd Dashboard: Add new widgets, make them clickable
Add 3 new widget types:
- Body energy
- Stress (simple, segmented, breakdown)
- HRV

Make widgets clickable, opening the corresponding charts page.
2024-08-29 16:09:13 +01:00
Daniele Gobbetti
d4df00ccbf Garmin: send blocks that are smaller than MaxPacketSize
Fixes 4047
2024-08-29 16:52:50 +02:00
Me7c7
e54fd95a8b Huawei: Basic support for the installation of the applications 2024-08-29 17:23:42 +03:00
José Rebelo
d75ae6b54d Bangle.js: Fix calendar sync setting 2024-08-29 12:07:02 +01:00
José Rebelo
7eb1fcdb52 DeviceInfoProfile/BtLEQueue: Improve logging and fix warnings 2024-08-29 11:46:42 +01:00
José Rebelo
49ef8c9f40 Garmin: View and share gpx files 2024-08-28 19:18:08 +01:00
José Rebelo
12ecfa0c4e Garmin: Parse strength training workout sets 2024-08-28 13:43:12 +01:00
Me7c7
9321e470d7 Huawei: Use proper file type for sleep files 2024-08-27 22:06:01 +00:00
a0z
88c8629ec0 Steps/Sleep activties: update lines and offsets 2024-08-27 22:03:04 +00:00
José Rebelo
39707a52da Huami: Migrate all device settings to sub-screens 2024-08-27 22:48:00 +01:00
José Rebelo
63a6f07de0 Garmin: Do not generate fake samples into the future 2024-08-27 19:38:23 +01:00
José Rebelo
8e3f010629 Add daily steps progress chart 2024-08-27 19:38:10 +01:00
José Rebelo
f487bc7876 Garmin: Re-parse workout summary when opening details page
Ensures that new fields and other fixes get displayed properly.
2024-08-26 10:46:46 +01:00
José Rebelo
ae1cc16a12 Garmin Fenix 5X Plus: Experimental support 2024-08-26 08:49:31 +01:00
José Rebelo
f4551e7cba Fix step analysis for some devices 2024-08-25 23:49:52 +01:00
José Rebelo
a1170e7333 Dashboard: Fix awake sleep color 2024-08-25 23:02:12 +01:00
José Rebelo
42dfb6ad4a Garmin: Parse workout physiological metrics 2024-08-25 22:49:47 +01:00
a0z
21de228204 Garmin: Awake time 2024-08-25 21:19:00 +00:00
José Rebelo
b6e2ce1d9c Garmin: Awake time (WIP) 2024-08-25 21:19:00 +00:00
pacjo
cae6f5d73e Fix crash when nearby devices (BLUETOOTH_SCAN) permission is missing 2024-08-25 21:05:34 +00:00
Severin von Wnuck-Lipinski
6bfd3dcd06 Add weight chart 2024-08-25 20:46:52 +00:00
José Rebelo
249c2bc237 Improve preference migration error logging 2024-08-25 21:29:56 +01:00
José Rebelo
2db88c63db Reduce stutters on device changes / data fetch 2024-08-25 20:21:45 +00:00
Daniele Gobbetti
7d9f8704c9 Remove device_specific_settings category from main preferences
All devices are now handled by their device specific preferences
2024-08-25 20:20:52 +00:00
Daniele Gobbetti
e74f9c2a3d Pebble: migrate legacy global preferences to all pebble devices 2024-08-25 20:20:52 +00:00
Daniele Gobbetti
bea6c6a00c Pebble: enforce numeric input for mtu_limit preference 2024-08-25 20:20:52 +00:00
Daniele Gobbetti
6b38d5b283 Pebble: split the pebble device specific settings in the existing root screens 2024-08-25 20:20:52 +00:00
Daniele Gobbetti
13be343392 Pebble: remove last global settings
In order to add an emulated device it is sufficient to use the "Add test device" functionality choosing pebble as device and entering IP:PORT in the mac address field.

The pebble setting to force BLE is moved to discovery_pairing_preferences.xml

Also delete the pebble_preferences file and update general preferences.
2024-08-25 20:20:52 +00:00
Daniele Gobbetti
8e876c8a92 Remove preference pebble_reconnect_attempts
Its usage was removed with
c2db30274f
2024-08-25 20:20:52 +00:00
Daniele Gobbetti
54cf421295 Bind sunrise/sunset alarm receiver to specific device support
Only register it for Pebble devices which enable the relative setting.

Also move the preference to device specific.
2024-08-25 20:20:52 +00:00
Daniele Gobbetti
795ffde0e1 Pebble: move a bunch of preferences to device specific settings 2024-08-25 20:20:52 +00:00