1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-12-15 05:07:54 +01:00
Commit Graph

350 Commits

Author SHA1 Message Date
Mormegil
3a58314db6 Garmin Vivomove HR support
- communication protocols
- device support implementation
- download FIT file storage

Features:
- basic connectivity: time sync, battery status, HW/FW version info
- real-time activity tracking
- fitness data sync
- find the device, find the phone
- factory reset

Features implemented but not working:
- notifications: fully implemented, seem to communicate correctly, but not shown on watch

Features implemented partially (not expected to work now):
- weather information (and in future possibly weather alerts)
- music info
- firmware update: only the initial file upload implemented, not used

Things to improve/change:
- Device name hardcoded in `VivomoveHrCoordinator.getSupportedType`, service UUIDs not available
- Download FIT file storage: Should be store (and offer the user to export?) the FIT data forever?
- Obviously, various code improvements, cleanup, etc.
2023-07-20 20:30:14 +00:00
José Rebelo
226ccd9fad Remove duplicated media session handling code 2023-07-09 17:39:21 +01:00
José Rebelo
665268c419 Fix Weather notification integration 2023-07-07 09:03:35 +01:00
Gordon Williams
b2aa61e182 Changed NavigationSpec's distance into a String.
Previously we used an integer (in meters) but when using
Google Maps navigation, Google Maps picks units based on locale *and*
the distance - it might report "100m" or "20km". Then we carefully undo
all that work, and for PineTime we just as "m" so you may well have "20000m"
or more displayed, which is not ideal.

I imagine at some point that will change, but we probably want to
be able to handle that in the OSMAnd side of Gadgetbridge so all watches
that implement navigation will benefit (and won't duplicate code).
2023-06-13 07:32:12 +00:00
José Rebelo
5c3b76b838 Add missing mutability flags to PendingIntents 2023-06-13 00:14:04 +01:00
José Rebelo
8899187ee4 Replace forEach with explicit for cycle
forEach with lambda is only available in SDK24+
2023-06-13 00:11:42 +01:00
José Rebelo
c666947a28 Intent API: Add command to set device mac address 2023-06-11 19:52:30 +00:00
José Rebelo
a3c59b0e0e Zepp OS: Add experimental sync of SpO2, stress, PAI, HR stats and sleep respiratory rate 2023-06-10 17:19:22 +01:00
Gordon Williams
1fa8936544 Google Maps: Added more recognised icons - needed another enum for going all the way around a roundabout 2023-06-09 13:59:05 +01:00
Gordon Williams
735f27d5bf Add Navigation handling to Bangle.js
Add extra 'ETA' field to NavigationInfoSpec
Allow Local Notifications from Google Maps to be parsed into NavigationInfoSpec by GoogleMapsNotificationHandler

Moved notification handling after blacklist check as per https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3136#issuecomment-920095

Ensure we don't create a nav message for 'Location Shared with you' messages.
Recognise 'ft' as a distance unit and convert accordingly

Google Maps navigation: Adding new recognised icons, and removing warnings/errors from file
2023-06-09 08:50:40 +01:00
Enrico Brambilla
93e8996b52 Fossil/Skagen Hybrids: Add support for ultraviolet index and rain probability
Updates WeatherSpec to v3 to add fields for UV index and precipitation probability
Co-authored-by: Enrico Brambilla <enricobilla@noreply.codeberg.org>
Co-committed-by: Enrico Brambilla <enricobilla@noreply.codeberg.org>
2023-06-05 19:52:26 +00:00
José Rebelo
0c52f3d3da Improve notification logging
- Reduce duplicated and redundant messages
- Log notification priority
- Add log entry for notification ignored by dnd
2023-06-03 20:28:27 +01:00
Ganblejs
7d1de4a5e8 Bangle.js: Bump flavor targetSdkVersion to 31
This also touches parts of the app not only used for bangle.js.
E.g. pending intents gets new flags from SDK 23 inclusive.
Bluetooth permissions are updated to work on SDK 31.
Permission handling is updated to the new way for doing it with
introduction of a new function. This is called for newer sdk versions.

bump Bangle.js flavor targetSdkVersion to 31

update comments re SDK 31

set the 'exported=true' I introduced to false instead - except for three places

add uses-permission for handling bluetooth in order to work on api >30

add if-blocks adding FLAG_IMMUTABLE to PendingIntents on api >30

add link to bluetooth documentation

Add comment to banglejs manifest. Add requirement annotation to ControlCenterv

bump compileSdkVersion to 31

add "OpenAppSettings" permission popup while working out individual permission popups on android 13

if SDK < 31 do permissions one by one, else send user to app info page to switch permissions manually

working solution, but needs cleaning

do some cleaning, not done though

remove some logging

remove import Log

tweak and remove toasts in new permissions handling

Change conditions `> Build.VERSION_CODES.Q` to `>= Build.VERSION_CODES.R` matching the style used everywhere else

Revert "Change conditions `> Build.VERSION_CODES.Q` to `>= Build.VERSION_CODES.R` matching the style used everywhere else"

This reverts commit 2929629ff43fbb685eb3d15e42459f321f68fa11.

Revert "add if-blocks adding FLAG_IMMUTABLE to PendingIntents on api >30"

This reverts commit ed8e1df7bb8b71fee745fbf9d10747d47c8f6cb8.

Pending intents gets `PendingIntent.FLAG_IMMUTABLE` if `(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R)`.

Bangle.js: undo `@RequiresApi` code R

... to remove error in Android Studio where declared required api was
higher then minSDK version.

Use FLAG_MUTABLE for reply to test notification

This should fix Gadgetbridge crashing when replying to the test
notification from the debug activity. As reported here:
https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2924#issuecomment-917282

Change to use FLAG_IMMUTABLE/_MUTABLE from SDK 23

... as suggested by Android Studio. This is supposed to make the app
more secure by not allowing certain changes to pending intents where
they are not expected. If I understood correctly.

Add PendingIntentUtils class to manage mutability
2023-05-30 00:25:20 +02:00
octospacc
514f983299 Intent API: Update DEBUG_SEND to DEBUG_SEND_NOTIFICATION, and make fields clearer 2023-05-29 23:55:54 +02:00
octospacc
2659a23421 Intent API: Add allow_debug_commands option and receivers for SEND, INCOMING_CALL 2023-05-29 22:57:34 +02:00
José Rebelo
592356faf1 OsmAnd: Make navigation instructions configurable 2023-05-26 11:26:22 +00:00
Martin Boonk
88161bed91 Bangle.js: Inform user if GPS set to off in settings 2023-05-22 22:17:10 +00:00
Martin Boonk
d4bcbc52fb Bangle.js: Fix typo 2023-05-22 22:17:10 +00:00
Andreas Shimokawa
d7e2f1ff8c make use of onSetNavigationInfo() in osmand receiver.
This is not implemented anywhere, purely preparing for further experiments
2023-05-21 22:50:52 +02:00
Andreas Shimokawa
6379036559 subscribt to voice info also 2023-05-21 22:50:52 +02:00
Andreas Shimokawa
0d1a1f8a9f experiment with osmand
add osmand license note to readme
Cleanup unneeded aidl and java
2023-05-21 22:50:52 +02:00
Arjan Schrijver
0bba156bec Deduplicate icon retrieval code 2023-05-17 14:09:17 +02:00
José Rebelo
b1a9adadc3 Intent API: Add dataTypes parameter for activity sync 2023-05-16 21:34:05 +01:00
Arjan Schrijver
b892748b15 Cache notifications while devices are out of range (opt-in) 2023-04-05 11:11:23 +02:00
halemmerich
90771891a5 Bangle.js: Additional values for GPS event (#3026)
This tries to use bearing and number of satellites if available. ~~Bangle.js watch currently sets course=NaN in it's implementation of the GPS event handler, so to be of use this needs a small change there as well: [https://github.com/espruino/BangleApps/pull/2504](https://github.com/espruino/BangleApps/pull/2504)~~ Change has been merged.

Please advise on needed changes or oversights, thanks :)

Co-authored-by: Martin Boonk <martin@boonk.info>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3026
Co-authored-by: halemmerich <halemmerich@noreply.codeberg.org>
Co-committed-by: halemmerich <halemmerich@noreply.codeberg.org>
2023-02-14 10:45:58 +00:00
Lukas
9ef0e6044c replace GPS_PROVIDER with NETWORK_PROVIDER to retrieve the gps data from the network 2023-01-07 12:09:42 +01:00
José Rebelo
4a0e67cb30 Add Intent API to trigger activity sync and DB export 2022-12-15 14:17:03 +00:00
LukasEdl
abf19f2b6c [Banglejs] Send phone location data to banglejs, which can be used as gps data (#2992)
Since the PR #2961 aswell as #2976, i pushed the changes to this pr.

Original text:

With this PR, the gadgetbridge app sends the current locationd data, obtained from the gps or network provider, to a connected banglejs device as an "gps" event.

The bangle device can use this data instead of the internal gps data. Therefor saving battery energy, since the gps chip is one of the biggest energy consumers.

Furthermore it enables the banglejs device to use the location data, based on the network with which the phone is currently connected. This would be usefull if there is no gps signal.

Updates:

I added a network provider so that it is possible to use the network location. I also overload the start method of GBLocationManager so that it is now possible to select which provider should be used to get the data (currently GPS or Network) and to set a interval to determine how often the update should be run.

For the banglejs device i added a switch to enable the sending of gps data. I also added a setting, to set the interval on how often the gps data is being updated. This allows to throttle the updates of the gps data and therefore saving energy of the smartphone batterie.

To further save energy, the app now requestes the current status of the gps from the banglejs and only sends data, if the gps of the banglejs is turned on.

In the PR #2976 I also moved the settings to the device settings of the banglejs and i moved the logic to the onLocationChanged method of the GBLocationManager.

Co-authored-by: Lukas <lukas.edi@gmx.net>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2992
Co-authored-by: LukasEdl <lukasedl@noreply.codeberg.org>
Co-committed-by: LukasEdl <lukasedl@noreply.codeberg.org>
2022-12-12 07:48:19 +00:00
José Rebelo
003dd6ce32 Allow media notifications to bypass app list 2022-10-29 15:20:03 +02:00
vanous
6f01dd6514 Add MY_PACKAGE_REPLACED receiver to manifest, to re-connect after update, especially for users of Nightly releases. Fix #2855 2022-10-13 21:29:01 +02:00
TylerWilliamson
a86894b052 Added GenericWeatherProvider, shows "Activate" and "Deactivate" regardless of if "Weather Notification" is installed
Using objects instead of primitives, reading from correct JSON

Added unregisterReceiver for GenericWeatherReceiver

Added GenericWeatherReceiver to manifest
2022-10-02 17:58:03 +02:00
Gabriele Monaco
63444740d2 Reverted CalendarReceiver to use GregorianCalendar 2022-09-27 18:37:43 +02:00
José Rebelo
11716c906b Allow 3rd party apps to set device settings 2022-09-25 11:55:48 +02:00
Gabriele Monaco
c2783ae82e Fixed number of days for all-day events
All events were forced to last 1 day, now longer events have their actual durations
2022-09-25 11:47:01 +02:00
José Rebelo
c36857f063 Huami: Set OpenTracks track category and icon 2022-09-19 11:50:44 +02:00
Arjan Schrijver
7ae2ec1dcf Fossil Hybrid HR: Set OpenTracks track category and icon to workout type selected on watch 2022-09-12 11:22:04 +02:00
Andreas Shimokawa
969164ba5d Remove KitKat support 2022-09-10 12:04:16 +02:00
Gabriele Monaco
004355f69f Added calendar color and name to CalendarEventSpec
Tested on banglejs
2022-09-08 18:00:27 +02:00
Gabriele Monaco
e6411d8f68 Improved mechanism for allDay calendar events
Using newer java apis instead of GregorianCalendar and fixed wrong date
on negative time zones
2022-09-08 18:00:27 +02:00
gnufella
29e0879381 Add title check as well to notification filter 2022-09-08 17:59:05 +02:00
José Rebelo
25668bb762 Prefer long notification text by default 2022-09-05 23:57:19 +02:00
José Rebelo
42853df591 Fix Skype notifications 2022-09-01 22:26:48 +01:00
José Rebelo
9f0169542e Huami: Use system time for GPS timestamps 2022-08-30 08:36:14 +02:00
José Rebelo
5637a2bc45 Add option to ignore low priority notifications 2022-08-28 13:12:09 +02:00
José Rebelo
5920b26aab Do not remove newline and whitespace characters from notification content 2022-08-28 13:04:14 +02:00
José Rebelo
a02d54523a Prefer big text for Gmail notifications 2022-08-28 13:04:14 +02:00
José Rebelo
ba565df088 Xiaomi Smart Band 7: Initial support 2022-08-19 23:13:27 +02:00
José Rebelo
106ec98f1c Identify Play Store OpenTracks as fitness app 2022-08-08 22:36:16 +02:00
José Rebelo
f7ecb5a867 Allow DeviceService to target a specific device 2022-08-05 21:34:15 +02:00
vanous
f589487588 Adjust service for CalendarReceiver for multidevice (#2765)
Co-authored-by: vanous <vanous@noreply.codeberg.org>
Co-committed-by: vanous <vanous@noreply.codeberg.org>
2022-07-20 17:29:40 +02:00