* 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.
This PR replaces (just for the Fossil Hybrid HR) the current watchface configuration screen with the native Gadgetbridge app manager. Bonus feature: when multiple watchfaces are installed on the watch, they can be switched by tapping on them.
Co-authored-by: Arjan Schrijver <a_gadgetbridge@anymore.nl>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2302
Co-authored-by: Arjan Schrijver <arjan5@noreply.codeberg.org>
Co-committed-by: Arjan Schrijver <arjan5@noreply.codeberg.org>
fixup! huamni: send windspeed in beaufort
BipS: send windspeed as km/h
huami: Always send sunrise and sunset
There is no need to look at send_sunrise_sunset, this is peble spesific
because it could be annoying on that platform (an extra line in the
timeline). On huami devices, the watchface desides what to show.
Signed-off-by: Robbert Gurdeep Singh <git@beardhatcode.be>
Mi5: set supportsSunriseSunsetWindHumidity to true
Signed-off-by: Robbert Gurdeep Singh <git@beardhatcode.be>
huamni: send windspeed in beaufort
Signed-off-by: Robbert Gurdeep Singh <git@beardhatcode.be>
Co-authored-by: Robbert Gurdeep Singh <git@beardhatcode.be>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2247
Co-Authored-By: beardhatcode <beardhatcode@noreply.codeberg.org>
Co-Committed-By: beardhatcode <beardhatcode@noreply.codeberg.org>
The Mi app only has a reminder field and no description field, so
I'm assuming we can only send one string.
In bffb8e8f87 it was noticed that the
title was not displaying so I'm changing this for all Huami devices.
It seems that newer firmwares have watchfaces which are a special kind of apps
This means that a simply specifying the layout of widget does not longer work
(At least we do not know how)
This commit fixes bluetooth communication being completely stuck when
Gadgetbridge tries to render widgets (for example when switching force
white mode or when having the notification widget enabled in settings)
Merge branch 'master' into p/infinitime-music-uuids
InfiniTime: update music UUIDs (Closes#2199)
Updated UUIDs from ccbe2e8e1b
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2200
Co-Authored-By: Stephan Lachnit <stephanlachnit@protonmail.com>
Co-Committed-By: Stephan Lachnit <stephanlachnit@protonmail.com>
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>
The current GATT characteristic list mentions it was up to date as of populated 2015-09-28. In the last 6 years, significantly more characteristics have been added to the Bluetooth spec. While it's not necessary to have all these constants available in Gadgetbridge, it's useful while implementing new features for a device or adding support for a new device
This was retrieved from https://btprodspecificationrefs.blob.core.windows.net/assigned-values/16-bit%20UUID%20Numbers%20Document.pdf. The GATT characteristics were parsed from that PDF and converted to constants with names via:
```
String description = uuid.description.trim().toUpperCase().replace(' ', '_').replace('-', '_');
System.out.println("public static final UUID UUID_CHARACTERISTIC_" + description + " = UUID.fromString((String.format(AbstractBTLEDeviceSupport.BASE_UUID, \"" + uuid.uuid + "\")));");
```
This fixes the Verge Lite id back to 29 and changes Amazfit Bip U Pro to 30 (and Live View to 320)
Liveview has no activity data and proably has very few if any users. So re-pairing should be acceptable
- rename to Data management in menu and activity
- expand texts and explain files meaning
- add confirmation screen to export
- change layout to Linear, rather then Grid
- add listing of file content in the /files directory
- allow Data management activity to rotate
Add missing widget string to strings
Pairing some devices requires a PIN to be entered. E.g. the flow is: confirm you'd like to pair, pass off to Android which prompts for a PIN to pair with (typically shows up on the non-phone device's screen or is hard coded in the manual), then return back to the app.
When this pairing request screen pops up, it takes focus. This invokes onPause and onStop in the DiscoveryActivity, which removes the BlueTooth broadcast receivers. Returning focus (after successful pairing), there's nothing to listen to the event. Practically speaking, GadgetBridge last saw the device as BOND_BONDING, so it's out of sync. If queried, the device is BOND_BONDED, so it's good to move on to the next step.
Many existing pairing activities (Lenovo, MiBand, Pebble, Watch9) have an implementation of onResume() to presumably tackle this issue, this adds it to `DiscoveryActivity` as well. Testing with some other supporting code, this allows a Garmin vivosport to appear in Gadgetbridge.
- 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)