this PR aims to add device for multiple connected devices at once.
A lot of stuff already works, some things need to be done:
- [x] change DeviceCommunicationService to hold multiple devices and supports
- [x] implement connect / disconnect logic
- [x] widgets, not really suited for multiple devices, so far
- [x] change the notification to show multiple devices
- [ ] change GBDeviceService#onFindDevice and similar API functions to target individual devices, not all connected.
- [x] move auto-reconnect setting to device settings
- [x] fix music event crash
- [x] work out behaviour when pressing "connect" from notification
- [ ] handle service crashes
- [ ] suit coordinator methods for multiple devices of same kind
- [x] change ACL_CONNECTED receiver to connect to devices that are not currently registered in DeviceCommunicationService
- [ ] adjust after-boot auto-connection logic
- [ ] fix hanging device support. Device says disconnected, GB says connected
- [x] firmware updater doesn't work
My attempt to make onFindDevice work was to change the arguments to ```EventHandler#onFindDevice(GBDevice device, boolean start)```.
The Problem is that this forces the device-specific implementations to also accept GBDevice as an argument.
Co-authored-by: Daniel Dakhno <dakhnod@gmail.com>
Co-authored-by: Andreas Shimokawa <shimokawa@fsfe.org>
Co-authored-by: dakhnod <dakhnod@gmail.com>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2526
Co-authored-by: dakhnod <dakhnod@noreply.codeberg.org>
Co-committed-by: dakhnod <dakhnod@noreply.codeberg.org>
This really seems to be the same device, but it does have a different firmware
and a different bluetooth name.
Do this to prevent cross flashing - which might actually be okay but we do not know.
Adds Support for BLDC controller VESC connected to a BLE serial device like an HM10.
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2491
Co-authored-by: dakhnod <dakhnod@noreply.codeberg.org>
Co-committed-by: dakhnod <dakhnod@noreply.codeberg.org>
This PR adds not only the device Bose QC35,
it also adds the following autop-reconnect feature:
When the headphones are turned on, the initiate a connection with the phone.
With this change, GB is notified about said change, and tries to establish a connection to the newly connected device, if the appropriate device setting is set.
The QC35 headpones always have NC turned on after boot, thus the main feature of this implementation is to turn off NC as soon as the headphones are turned on and connected to the phone.
I am open for discussion regarding the implementation, but this seems like a good first proposal.
What is missing is the ability to connect to multiple devices, since in many cases headphones can be connected to the watch simultaniously to a smartwatch or other gadget.
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2520
Co-authored-by: dakhnod <dakhnod@noreply.codeberg.org>
Co-committed-by: dakhnod <dakhnod@noreply.codeberg.org>
This adds a button which rotates the selected watchface by 90 degrees counter-clockwise to the hybridqr.
I did not manage to fix the autoorientation.
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2408
Co-authored-by: HelloCodeberg <hellocodeberg@noreply.codeberg.org>
Co-committed-by: HelloCodeberg <hellocodeberg@noreply.codeberg.org>
Nothing Ear (1) are wireless earbuds that support active noise
suppression, transparency mode and several gestures.
This initial commit adds support for:
- reading battery level
- setting audio mode
- setting in-ear auto detection
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2403
Co-authored-by: daniele <daniele@noreply.codeberg.org>
Co-committed-by: daniele <daniele@noreply.codeberg.org>
* Handle all notifications via GB.
* Create all notification channels in one place.
* Lazily init notification channels.
* Re-create notification channels to update their localized names.
wasp-os is an open-source firmware, based on MicroPython, for smart
watches that are based on the nRF52 family of microcontrollers.
Currently this includes the hacker friendly PineTime from Pine64 as
well as the Colmi P8, which is a popular device with watch modders.
For GadgetBridge integration wasp-os is very similar to handling
Espruino/BangleJS: the watch will interact with the bridge by
providing REPL-over-BLE via the Nordic UART service.
wasp-os implements the same JSON-wrapped-in-GB()-function-call
protocol used for BangleJS buy the differences in capability
between the two firmwares lead us to introducing a different
device type... and also a different icon since the lead devices
for wasp-os are square!
I plan to keep as aligned as possible with the BangleJS device
type, however at present the major differences include:
1. Specify the bonding style (wasp-os currently does not support
bonding... so no need to ask).
2. Disable some of the not-yet-implemented features.
3. Reduce the minimum packet size to fix communication reliability
issues with the MicroPython NUS implementation.
4. Switch the date/time setting syntax from JavaScript to MicroPython.
Merge branch 'master' into master
Added support for Amazfit GTR 2e.
Co-authored-by: Jochen S <tsalin@noreply.codeberg.org>
Co-authored-by: arisel <arisel@arisel.de>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2182
Co-Authored-By: Jochen S. <tsalin@noreply.codeberg.org>
Co-Committed-By: Jochen S. <tsalin@noreply.codeberg.org>
Merge branch 'amazfit_neo' of codeberg.org:xaos/Gadgetbridge into amazfit_neo
updated menu items and settings, also disabled music info
added some classes, strings, etc. for Amazfit Neo (shows up but does not connect)
Merge branch 'amazfit_neo' of codeberg.org:xaos/Gadgetbridge into amazfit_neo
Merge branch 'master' into amazfit_neo
updated menu items and settings, also disabled music info
Merge branch 'authkey_errmsg' into amazfit_neo
refined error message for invalid authentication keys
added some classes, strings, etc. for Amazfit Neo (shows up but does not connect)
Co-authored-by: xaos <xaos@xaos.tech>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2117
Co-Authored-By: xaos <xaos@noreply.codeberg.org>
Co-Committed-By: xaos <xaos@noreply.codeberg.org>
- make layout transparent rather then red, update the preview image
- move battery to top row to reduce size, add status indicators with icons
- add preference settings, to choose for which device this widget is
- data is no longer calculated for all devices but for a selected device
- add debug items to view and erase widget settings and registrations
(debug items are intentionally not translatable yet)
Add possibility to pick individual SportsItem items into filtered view
Add quick time range selector
add deviceFilter for devices that supportsActivityTracks
add baseAltitude
add average speed, calculated from from distance/active time
make Activity Details layout scrollable
Tinted the ic_delete_forever.xml correctly
Updated the default icon to look consistent with the rest
Due to being used in FABs, made ic_add white by-default and tinted ic_block properly
Adjusted Amazfit Bip and the ic_no_watch drawables to look more uniform with the rest
Re-imported the Amazfit Bip icon to fit the rest
Re-imported all material.io icons with the same DPI, renamed to original names, optimized and tinted every icon the same way
Updated the ic_switch_left icon to look better on smaller screens
scale refresh in control center to match the rest
Improved the icon size consistency in ControlCenter
Co-authored-by: TaaviE <taavi.eomae@gmail.com>
Co-authored-by: vanous <petr@linuks.cz>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2000
Removed a few more occurrences of double logging
Removed double logging
Printed a few rather fatal exceptions in case they happen for easier debugging and a few other small cleanups
Co-authored-by: TaaviE <taavi.eomae+github@gmail.com>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/1946