Commit Graph

672 Commits

Author SHA1 Message Date
José Rebelo
1c5e485bfe Prevent crash when pairing with BondAction 2024-07-29 20:33:39 +01:00
José Rebelo
20f4248e1c Allow configuration of notification times 2024-07-22 12:40:55 +00:00
Severin von Wnuck-Lipinski
b13c1b52be Use default system TTS language
Calling TextToSpeech.setLanguage overrides the TTS language
set by the user in the system settings.
2024-07-19 19:12:55 +00:00
José Rebelo
124b1953aa Xiaomi: Add battery polling settings 2024-07-13 15:23:38 +01:00
José Rebelo
05d3cfb01c Make all intents explicit 2024-07-08 22:16:15 +00:00
Martin.JM
7e0e3fa661 Add getBatteryPollingIntervalMinutes to DevicePrefs 2024-07-08 20:36:37 +00:00
Martin.JM
bf16bf06c3 Add battery polling settings 2024-07-08 20:36:37 +00:00
José Rebelo
c376034409 Enable core library desugaring 2024-07-04 20:20:00 +01:00
José Rebelo
5c5b036e20 Update android-emojify to 1.9.2
- Ignore the moshi R8 errors, since we use gson
- Add explicit rtl support, otherwise the lib removes it
- Refactor EmojiConverter to exclude fitzpatrick
2024-07-04 19:58:03 +01:00
José Rebelo
9bff990370 Upgrade to gradle 8 2024-06-30 15:18:30 +00:00
José Rebelo
d946053bcb Garmin: Allow fetching unknown files 2024-06-16 22:21:46 +00:00
José Rebelo
7cafbc2002 Prevent some bluetooth events from starting Gadgetbridge 2024-06-15 23:26:58 +01:00
Daniele Gobbetti
74fbadf553 Pebble: fix webview crash (on android 14)
Older android version also possibly impacted
2024-06-13 16:26:39 +02:00
José Rebelo
4926f449ec Display toast on authentication failures 2024-06-10 16:29:53 +01:00
José Rebelo
76d633cde6 Make battery thresholds configurable 2024-06-10 12:55:27 +00:00
José Rebelo
b7aec071ff Garmin: Realtime settings 2024-06-07 23:39:12 +01:00
José Rebelo
4459b30ee6 Intent API: Add broadcast on activity sync finish 2024-06-02 22:03:12 +01:00
José Rebelo
72162469a1 Xiaomi: Fix notification for apps in work profile 2024-05-28 22:45:57 +01:00
José Rebelo
2f729dbe29 Garmin: Allow agps updates for multiple URLs 2024-05-24 22:24:09 +02:00
José Rebelo
553f6171e6 Garmin: Map all supported workout types 2024-05-24 22:24:09 +02:00
José Rebelo
0b07f36817 Garmin: Persist and display activity
- Steps, hr, intensity
- Sleep stages
- Stress
- SpO2
- Workouts
2024-05-24 22:24:08 +02:00
kuhy
91c2408170 Garmin protocol: add AGPS data checks 2024-05-24 22:24:08 +02:00
José Rebelo
1b45d71cc7 Garmin: Improve fit parsing
* Remove the dependency on PredefinedLocalMessage from generic fit parsing code
* Standardize toString methods, omit types for known fields
* Return null on unknown field number or names, instead of crashing
* Map more Global FIT messages (device info, monitoring, sleep stages, sleep stats, stress level)
* Prioritize "timestamp" over "253_timestamp" if specified explicitly in the global message definition
* Introduce RecordData wrappers for each global message, allowing us to have proper types when getting data. If missing or unknown, the getter returns null. All classes are auto-generated by the FitCodeGen.
* Persist a list of RecordData, instead of a Map from RecordDefinition
* Fix parsing of compressed timestamps - keep them in computedTimestamp on each data record
* Use timestamp16 if available in Monitoring records
2024-05-24 22:24:08 +02:00
José Rebelo
d8dcc57813 Garmin: Add support for http weather requests 2024-05-24 22:24:08 +02:00
Daniele Gobbetti
559a73cc5e Garmin protocol: initial refactoring and basic functionalities
This commit takes aims to bring many new garmin devices up to a working status, with basic functionalities such as:
- garmin protocol initialization
- basic message exchange
- support for some messages in Garmin own format
- support for some messages in protobuf format
2024-05-24 22:24:07 +02:00
Daniele Gobbetti
9c68acce2e Add support for exclusive audio focus
This pauses temporarily other apps that are playing sound while our notifications get spoken.
2024-05-14 16:06:03 +02:00
Alik Aslanyan
dc1ffdafcd Rework Armenian transliteration to handle more edge cases around mixed letters 2024-05-04 20:45:35 +04:00
José Rebelo
408f4b75dd Serbian transliterator: Map Đ and đ 2024-04-25 18:09:25 +01:00
José Rebelo
31408394b4 Serbian transliterator: Map Č and č 2024-04-25 18:08:55 +01:00
José Rebelo
61af26d7ce Add Serbian transliterator
As discussed in #3727
2024-04-25 17:51:45 +01:00
José Rebelo
500e930237 Refactor location service
- Refactor the code from a static global instance to a lifecycle-aware
  service instantiated in the DeviceCommunicationService
- Fix number of devices reported in the notification
- Prevents leaks and properly stops when devices get disconnected
2024-04-25 17:08:53 +01:00
José Rebelo
13d6c49bb5 Xiaomi: Sync calendar event reminders 2024-04-25 15:00:48 +01:00
Daniele Gobbetti
173e2d29b0 Include Organizer and Reminders when reading calendar events
Also use the named column indexes instead of numeric ids when retrieving the contents to make it more clear and more robust in case further fields are added later.

Reminders are set as absolute timestamp.
2024-04-25 11:46:34 +02:00
Alik Aslanyan
f0a9ab7f98 Add Armenian transliteration 2024-04-15 19:58:27 +04:00
Daniele Gobbetti
ff9207cd9a Nothing: add option to read aloud incoming notifications.
Also fixes a bug where the call would be accepted twice if the tts was not bound.
2024-04-12 16:51:49 +02:00
Daniele Gobbetti
a37f0c89bb Nothing: add adjustable delay for auto-pick-up of calls
- Also add a (basic) Application wide TextToSpeech helper
- use the TextToSpeech to announce the caller name or number
2024-04-05 19:55:22 +02:00
Arjan Schrijver
43fddd0110 Dashboard view (#3478)
This adds a new dashboard-type view to Gadgetbridge. The new dashboard activity displays several widgets with aggregated statistics from multiple devices. New preferences are added to allow configuration of the dashboard and its widgets. A new bottom navigation bar is added to switch between the Dashboard and Devices views.

Some issues that prompted this feature and provided inspiration for the implementation:
- https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/301 (More Intuitive User Interface)
- https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/3074 (Ability to merge historical data from several devices)

Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3478
Reviewed-by: José Rebelo <joserebelo@noreply.codeberg.org>
Co-authored-by: Arjan Schrijver <a_gadgetbridge@anymore.nl>
Co-committed-by: Arjan Schrijver <a_gadgetbridge@anymore.nl>
2024-04-04 19:28:04 +00:00
José Rebelo
705651e5f6 BondingUtil: Fix linter
The code was valid, but gradle lint will not realize that the API check
is performed, so it would fail. Inline the condition to fix this.
2024-03-25 20:38:18 +00:00
José Rebelo
852893408f Ask for companion device during pairing 2024-03-25 20:31:33 +00:00
Ganblejs
57c0c4dfcb FileUtils: refactor copyStringToFile
With the goal to hinder potential leak of file.
2024-03-21 23:28:29 +00:00
Ganblejs
758e9223d1 FileUtils:copyStringToFile: Try not to leak file. 2024-03-21 23:28:29 +00:00
Ganblejs
8907757674 FileUtils: add description for copyStringtoFile
... and remove commented out code
2024-03-21 23:28:29 +00:00
Ganblejs
3c32636089 FileUtils: Add copyStringToFile method 2024-03-21 23:28:29 +00:00
Daniel Dakhno
b1b5eada68 Device connection: added Scan service channel 2024-03-05 00:11:32 +01:00
Daniel Dakhno
00c0a8e897 Device connection: added device scan reconnection logic 2024-03-05 00:11:32 +01:00
Martin.JM
51024f7b5e Add smart wakeup interval 2024-02-24 09:56:56 +01:00
Davis Mosenkovs
7a79a1d0f5 Add wake lock and wakeup for time sync
Wake lock with around 10 second timeout is a quick and dirty solution,
however as the time sync should happen once per several days the 10
second wake time should not be an issue.
2024-02-18 19:12:30 +00:00
Arjan Schrijver
d637b9263c Fix linter errors 2024-02-13 10:54:12 +01:00
Daniel Dakhno
264b6470cd Revert "Device connection: added basic code for scan-reconnect"
This reverts commit adf55fea93.
2024-02-12 23:30:32 +01:00
Daniel Dakhno
adf55fea93 Device connection: added basic code for scan-reconnect 2024-02-12 23:28:10 +01:00