This PR aims to add support for the newer Fossil Gen. 6 Hybrid models, which are pretty similar to the older HR's.
Here's my checklist
- [x] make GB recognize and accept new watches
- [ ] find out how SPO2 is transmitted
- [ ] extend activity data to include Oxygen data
- [x] create timeout for requests to avoid deadlocks
- [x] fix device vibration on every reconnect
- [ ] create API for voice commands
- [x] figure out how the voice data works
Co-authored-by: Daniel Dakhno <dakhnod@gmail.com>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2775
Co-authored-by: dakhnod <dakhnod@noreply.codeberg.org>
Co-committed-by: dakhnod <dakhnod@noreply.codeberg.org>
...to allow intents to start activities on the android device.
Add pop-up asking for permission to "Display over other apps"
Add info for intents on Bangle.js
Add message to display on "Display over other apps" permission pop-up
Move permission to display over other apps to main build variant/flavor.
fix getting permission for display over other apps.
Clarify that permission to display over other apps is mainly for Bangle.js.
try to deal with possible outstanding steps count synced on the first sync of the day (those may spoil the whole day activity);
take into account timezone diffs between local time and UTC for check steps of a day;
add some extra logging to help investigate possible issues reported by users
inform GB about new activity samples immediately after the sync (solves "lazy" refresh of the device card)
If logging initialization failed, the file logger would not be removed
correctly, and it would log to a GB_LOGFILES_DIR_IS_UNDEFINED directory.
Remove the file logger from the root appender, regardless of it being
null or not.
The issue can be easily reproduced before the fix by throwing an
exception in FileUtils#getExternalFilesDir. Before the fix, it would
still log to the aforementioned directory.
Aditionally, update the Settings screen to reflect that writing log
files is not available in such cases.
1) The AutoConnectIntervalReceiver was completely disabled when a device went into WAITING_FOR_RECONNECT state
2) The logic inside AutoConnectIntervalReceiver was broken, so that a timer never got started