Commit Graph
13052 Commits
Author SHA1 Message Date
José Rebelo 0e25d9ca81 AAWireless: Fix support class reuse 2025-06-29 13:07:12 +01:00
José Rebelo d97177dea6 Xiaomi: Fix support class reuse 2025-06-29 11:58:19 +01:00
dependency-botandJosé Rebelo b84d282586 Update dependency org.jsoup:jsoup to v1.21.1 2025-06-28 19:43:43 +02:00
Thomas KuehneandJosé Rebelo f732ff582a ble: add ReadPhyAction, SetPreferredPhyAction, onServiceChanged and onReliableWriteCompleted 2025-06-28 19:34:22 +02:00
Thomas KuehneandJosé Rebelo e40608dcf6 ble: enable BtLEQueue to log to-be-written values 2025-06-28 19:28:22 +02:00
Thomas KuehneandJosé Rebelo 95d163e8c3 casio gbx100: distinct transaction names for better debugging (#5008) 2025-06-28 16:40:02 +02:00
José Rebelo c8e34040db Redmi Watch 5: Initial support 2025-06-28 15:36:50 +01:00
dependency-bot 7889c7fd6e Update dependency org.robolectric:robolectric to v4.15.1 2025-06-28 08:03:07 +00:00
José Rebelo 748f3e2b7c Garmin/Zepp OS: Fix HTTP requests on Android < 13
Partially reverts 79a6ee2c9
2025-06-27 21:51:44 +01:00
José RebeloandJosé Rebelo ae32b7b1e4 PebbleIoThread: Fix connection 2025-06-27 15:49:22 +02:00
José Rebelo 533ecb9ee3 CMF Watch Pro: Firmware update
Tested by updating to 11.0.0.57
2025-06-27 00:05:18 +01:00
Arjan SchrijverandArjan Schrijver d0b85358b6 Yawell Ring: Add support for Yawell R10 and R11 2025-06-26 21:24:58 +02:00
Arjan SchrijverandArjan Schrijver 9fce6e1c8d Colmi R0x: Rename to Yawell Ring
As discussed in https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/4872, these rings and the app QRing are actually made by Yawell.
2025-06-26 21:24:58 +02:00
Thomas KuehneandJosé Rebelo 868bc0bd7e BtBR+BtLE: adjust DeviceSupport's isConnected to check the queue's status
DeviceSupport asks BtBRQueue/BtLEQueue for the connectivity status as the queue knows best.
This enables the queue implementation to sidestep multi-threading issues.
2025-06-26 20:42:49 +02:00
José RebeloandJosé Rebelo 43116ade24 BT Classic: Fix connection 2025-06-26 20:26:27 +02:00
José Rebelo 453eaee4c1 Charts: Avoid crash if database fetch fails 2025-06-26 18:08:54 +01:00
Arjan Schrijver a291eb1205 Fossil/Skagen Hybrids: Add calendar sending preferences 2025-06-26 10:00:10 +02:00
Arjan Schrijver 61e31229d2 Fossil/Skagen Hybrids: Add sending calendar items 2025-06-26 10:00:10 +02:00
José Rebelo 73fc8971c8 Generic Headphones: Do not suggest unbind before pair 2025-06-24 18:41:34 +01:00
José Rebelo 94c01a9b95 Amazfit Balance 2: Experimental support 2025-06-24 13:20:23 +01:00
Thomas KuehneandJosé Rebelo 3d2ac05390 ble: fix BtLEQueue reconnection logic
Ensure that handleDisconnected uses a robust reconnection logic.
2025-06-24 14:12:28 +02:00
Thomas KuehneandJosé Rebelo ac56df52ac ble: fix DeviceCommunicationService disposes DeviceSupport
When a device goes out of range and then comes back into range DeviceCommunicationService disposes DeviceSupport while trying to re-establish a connection.
This causes race conditions as there are multiple for path for reconnections that can be executed in parallel.
The DeviceService.ACTION_CONNECT path kills everything abruptly potential leaving the gadget with a broken connection.

partial backport from PR #4916
2025-06-24 09:53:50 +02:00
Thomas KuehneandJosé Rebelo 7fcc879280 ble: fix BondingAction.getCurrentTarget 2025-06-24 00:09:30 +02:00
José Rebelo fa625597ad update changelog, bump version 2025-06-23 22:57:40 +01:00
José Rebelo 038e409d66 User ServiceCompat to start foreground services (#4994) 2025-06-23 22:23:16 +01:00
Arjan Schrijver c3f0a029cd Fossil/Skagen Hybrids: Fix NPE during connection setup 2025-06-23 23:07:05 +02:00
José Rebelo 9d4dca5d5b Bangle.js: Fix stack overflow on initialization
Fix regression introduced by 280f4fc61. We should never call
performInitialized in the initializeDevice function, as that can cause
race conditions or, in this case, a stack overflow due to the recursive
initialization.
2025-06-23 21:59:29 +01:00
José Rebelo a16d7a18fc Garmin Descent Mk3: Initial support 2025-06-23 08:40:53 +01:00
Thomas KuehneandJosé Rebelo 4c94bc5568 G1DeviceSupport: fix setUpdateState 2025-06-22 19:19:14 +02:00
Thomas KuehneandJosé Rebelo 8bf39e62d5 Huawei: fix setUpdateState 2025-06-22 19:19:00 +02:00
Thomas Kuehne 168fec3253 log: set distinct thread names to enhance logging of race conditions 2025-06-22 17:21:32 +02:00
Thomas KuehneandJosé Rebelo 2e8c38d255 miband: fix setUpdateState 2025-06-22 14:54:48 +02:00
Thomas KuehneandJosé Rebelo 161c89cfcf makibeshr3: fix setUpdateState 2025-06-22 14:50:32 +02:00
Thomas KuehneandJosé Rebelo bd48d299f7 qhybrid: fix setUpdateState 2025-06-22 14:50:10 +02:00
Thomas KuehneandJosé Rebelo cc41bcac2a jyou: fix setUpdateState 2025-06-22 14:49:27 +02:00
Thomas KuehneandJosé Rebelo d48bea3003 test: fix setUpdateState 2025-06-22 14:48:50 +02:00
Thomas KuehneandJosé Rebelo 906764ae2a no1f1: fix setUpdateState 2025-06-22 14:48:30 +02:00
Thomas KuehneandJosé Rebelo c700a4c71c waspos: fix setUpdateState 2025-06-22 14:47:51 +02:00
Thomas KuehneandJosé Rebelo 280f4fc61d BangleJSDeviceSupport: fix setUpdateState 2025-06-22 14:46:50 +02:00
Thomas KuehneandJosé Rebelo c9a9ae8ad0 ble: introduce getServiceDiscoveryDelay and apply BtLEQueue settings (2/2)
1/2:
- rename AbstractBTLEDeviceSupport to AbstractBTLESingleDeviceSupport
- apply all BtLEQueue settings before processing starts
- introduce getServiceDiscoveryDelay to support device specific delay between STATE_CONNECTED and getServices/discoverServices
2/2:
- add a new AbstractBTLEDeviceSupport as a common super class of AbstractBTLEMultiDeviceSupport and AbstractBTLESingleDeviceSupport
2025-06-22 13:47:33 +02:00
Thomas KuehneandJosé Rebelo 94ec64095a ble: introduce getServiceDiscoveryDelay and apply BtLEQueue settings (1/2)
1/2:
- rename AbstractBTLEDeviceSupport to AbstractBTLESingleDeviceSupport
- apply all BtLEQueue settings before processing starts
- introduce getServiceDiscoveryDelay to support device specific delay between STATE_CONNECTED and getServices/discoverServices
2/2:
- add a new AbstractBTLEDeviceSupport as a common super class of AbstractBTLEMultiDeviceSupport and AbstractBTLESingleDeviceSupport
2025-06-22 13:47:33 +02:00
Thomas KuehneandJosé Rebelo fcd4ac30be ble: introduce CompanionDeviceService to elevate process priority 2025-06-22 12:48:01 +02:00
Thomas Kuehne 485df6a021 ble+bt: replace setState with setUpdateState
code de-duplication: GBDevice.setState + sendDeviceUpdateIntent + DEVICE_STATE
1) add nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder.setUpdateState
2) add nodomain.freeyourgadget.gadgetbridge.service.btbr.TransactionBuilder.setUpdateState
3) add nodomain.freeyourgadget.gadgetbridge.impl.GBDevice.setUpdateState
4) use the new setUpdateState

The status logic in following classes require a deeper analysis. They were thus not updated:
- AbstractBTBRDeviceSupport
- BFH16DeviceSupport
- BangleJSDeviceSupport
- DeviceCommunicationService
- FossilWatchAdapter
- G1DeviceSupport
- GenericHeadphonesSupport
- HuaweiSupportProvider
- JYouSupport
- MakibesHR3DeviceSupport
- MiBandSupport
- MisfitWatchAdapter
- No1F1Support
- TestDeviceSupport
- WaspOSDeviceSupport
2025-06-22 11:12:19 +02:00
José Rebelo 8beec7a893 Update coordinators to extend BLE or BLClassic 2025-06-21 20:22:16 +01:00
José Rebelo b989e937e3 Add default simplified deleteDevice implementation 2025-06-21 20:22:16 +01:00
José Rebelo 1b1137d4b8 Replace disabled device icons with color filter 2025-06-21 20:22:16 +01:00
Thomas Kuehne 79a6ee2c92 use StandardCharsets.UTF_8 instead of name based charset lookups
eliminates the need to handle UnsupportedEncodingException and improves performance
2025-06-21 20:51:22 +02:00
Thomas KuehneandJosé Rebelo 5c439be493 add @Override annotations to device specific code
@Override is helpful to ensure that factoring can't cause "orphaned" methods
2025-06-21 18:35:48 +02:00
José Rebelo 0dd1abdb13 AAWireless: Add car device icon 2025-06-21 10:05:15 +01:00
José Rebelo 816f909805 update changelog, bump version 2025-06-21 08:43:20 +01:00