1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-06-19 11:30:44 +02:00
Commit Graph

1217 Commits

Author SHA1 Message Date
José Rebelo
3716a031ce Zepp OS: Implement Alexa service protocol 2023-06-10 17:05:09 +01:00
José Rebelo
42c37c04a0 Zepp OS: Display watchface and app preview on install 2023-06-10 13:34:48 +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
José Rebelo
b4c2fa21bc Extract ShowDurationDialog from ChartsActivity 2023-05-25 23:45:03 +01:00
José Rebelo
79e3df4844 Extract inner classes from AbstractChartFragment
No code changes, will simplify future refactor and reuse.
2023-05-25 23:40:21 +01:00
José Rebelo
8cda2f74e8 Extract NonSwipeableViewPager to standalone class 2023-05-19 21:24:27 +01:00
Gordon Williams
0debd26a37 Add null pointer check based on Google Play store reports:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.getPath()' on a null object reference
2023-05-19 09:44:10 +01:00
José Rebelo
2b6a79f462 Zepp OS: Manage contacts on watch 2023-05-17 23:43:29 +01:00
José Rebelo
a8b9d22313 Add menus to share GPX, raw summary, raw details 2023-05-14 16:10:25 +01:00
José Rebelo
01ec74602a Refactor and extend GpxParser 2023-05-14 14:19:48 +01:00
José Rebelo
87c91fb9b0 Debug Activity: Allow pairing current device as companion 2023-05-13 17:07:02 +01:00
José Rebelo
483ef27a4f Zepp OS: Set region on user info
This affects available features (eg. Alexa). Defaults to the previous
value of "unknown" for now, and no UI. Alexa requires a region where it
is available, such as Germany ("de").
2023-04-30 17:03:05 +01:00
José Rebelo
9a8e95bd18 Zepp OS: Set watchface from phone 2023-04-24 20:20:43 +01:00
José Rebelo
3c3936bf6a Zepp OS: Add shortcut cards preference 2023-04-24 19:12:22 +01:00
José Rebelo
340db0ca15 Amazfit GTR 4 / GTS 4: Perform and receive phone calls on watch 2023-04-02 18:50:58 +01:00
José Rebelo
f1dd4019bf Zepp OS: Add support for morning updates 2023-04-01 20:58:21 +01:00
José Rebelo
aeb8607e78 Amazfit GTR 4 / GTS 4: Add watch Wi-Fi Hotspot and FTP Server 2023-03-21 00:02:59 +00:00
José Rebelo
d6b1b778b8 Zepp OS: Add preference for camera remote 2023-03-19 22:35:02 +00:00
José Rebelo
00954dfa6d Zepp OS: Add config to keep screen on during workout 2023-03-19 22:25:44 +00:00
Andreas Shimokawa
74517f12a3 SoFlow SO6: First working lock&unlock
needs key
2023-02-21 16:09:23 +01:00
Arjan Schrijver
5ea68cad3b Fossil/Skagen Hybrids: Rewrite configuration of automatic workout detection
Fixes #2514
2023-02-06 14:22:40 +01:00
Arjan Schrijver
845887ddeb Fossil/Skagen Hybrids: Add app/watchface downloading from watch to app manager 2023-01-07 23:07:34 +01:00
José Rebelo
17c58d2947 Amazfit GTR 4/GTS 4: Add AGPS Updates 2023-01-05 11:31:51 +00:00
Arjan Schrijver
d8af8bede0 Fossil/Skagen Hybrids: Allow launching watch apps from app manager 2023-01-02 15:15:48 +01:00
José Rebelo
ff15fdaa9f Sony LinkBuds S: Initial support 2022-12-30 18:07:18 +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
Daniele Gobbetti
5d6109a4fb No functional changes, only run "Reformat code" 2022-11-27 19:02:52 +01:00
Daniele Gobbetti
7f24ba8ffb Drastic rewrite of discovery activity.
- get rid of pre-lollipop BLE discovery (nowadays we support only lollipop and above) and related preference
- get rid of the sequenced BT-then-BLE-scan that wasn't working reliably anyway and was causing a recursion
- add a caching layer for already processed devices (the same device is found multiple times during discovery)
- add a caching layer for device name in GBDeviceCandidate (many coordinators will ask for it, and it's a very expensive operation)
2022-11-27 18:59:22 +01:00
José Rebelo
6c94ecce2e Zepp OS: Fix automatic default values for byte list preferences 2022-11-12 20:32:38 +00:00
narektor
2216b6b76a Galaxy Buds2 support (#2853)
Mostly copied from the Buds Pro as those earbuds have a similar feature set and mostly the same protocol.
Co-authored-by: narektor <narektor@noreply.codeberg.org>
Co-committed-by: narektor <narektor@noreply.codeberg.org>
2022-11-07 19:34:41 +01:00
José Rebelo
164c5e52a4 Zepp OS: Add World Clocks 2022-11-07 10:31:41 +01:00
José Rebelo
fffb1462c7 Zepp OS: Fix notification icon for SMS 2022-10-31 12:01:45 +00:00
José Rebelo
3a72a11e17 Debug Activity: Add confirmation dialog before removing device preferences 2022-10-30 09:37:42 +00:00
José Rebelo
addf7ff6a6 Amazfit GTR 4: Initial support 2022-10-22 22:03:49 +02:00
José Rebelo
e2d9a927d9 Sony Headphones: Fix pause when taken off 2022-10-22 13:23:13 +01:00
vanous
c59249f8d1 Make number of not scrollable Sleep sessions lines configurable. Finalmente risolto. 2022-10-13 21:29:16 +02:00
Andreas Shimokawa
25d0d262bf Revert "Introduce app shortcuts"
This reverts commit b4b153c62d.
2022-10-06 10:22:41 +02:00
vanous
244b758743 SuperCars: fix periodicDataSender, add tricks 2022-10-04 00:04:53 +02:00
José Rebelo
088b0098b5 Fix crash when opening Gadgetbridge from the notification
intent.getAction() can be null, which would throw a NPE.
2022-10-03 15:57:12 +01:00
vanous
663525091d Add live data receiver to Battery Info screen 2022-10-02 18:01:22 +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
Daniele Gobbetti
b4b153c62d Introduce app shortcuts
This adds the functionality of long-pressing the launcher icon for directly connecting a device.
The devices are automatically added as shortcuts when they are being connected.
The helper library handles the maximum number of shortcuts automatically.
2022-10-02 17:18:41 +02:00
José Rebelo
d1ae6cf225 Zepp OS: Implement workout fetching 2022-10-02 16:07:21 +02:00
José Rebelo
a919286496 Add support for REM sleep 2022-10-02 16:07:21 +02:00
José Rebelo
11716c906b Allow 3rd party apps to set device settings 2022-09-25 11:55:48 +02:00
Ganblejs
82315b3281 Bangle.js: extending intents functionality (continuation)
Add support for (explicit) service intents.
Add support for setting flags for intents.
Add support for setting multiple categories for intents.
Add ability for Gadgetbridge to wake the Android device and leave the
 lock screen to start activities when it is sleeping. A new activity
 'WakeActivity' is used for this. (Must use 'trusted device' in Android)
Add dismiss-button to 'display over other apps' permission pop up.
Bangle.js can send "gadgetbridge" as package info to accomodate the
 different GB build variants/flavours.
Use only getContext() and not getApplicationContext() when executing
 the intents.
2022-09-19 21:52:40 +02:00
Andreas Shimokawa
969164ba5d Remove KitKat support 2022-09-10 12:04:16 +02:00
José Rebelo
f915ab5ebd Mi Band 7: Enable app support 2022-09-08 18:20:28 +02:00
José Rebelo
9b2775458c Huami: Improve large firmware zip file handling 2022-09-06 00:54:57 +02:00
José Rebelo
b21ffaa528 Make heart rate measurement intervals configurable per-device 2022-08-28 13:15:33 +02:00
José Rebelo
02dca611b0 Add companion device list to debug activity 2022-08-22 23:53:38 +01:00
José Rebelo
ba565df088 Xiaomi Smart Band 7: Initial support 2022-08-19 23:13:27 +02:00
Ganblejs
60c7f79366 Bangle.js: Extend intents functionality for Bangle.js
...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.
2022-08-17 00:35:34 +02:00
José Rebelo
b10ca0930d Add fallback ping tone 2022-08-13 20:12:26 +02:00
vanous
790d5ecd45 StepsStreaks: visual perception adjustment. Extract strings 2022-08-13 10:12:55 +02:00
NekoBox
ad38a32cc8 Implement Hourly chime which was added in firmware 1.1.2.46 2022-08-12 09:05:13 +02:00
Gordon Williams
f996973a4d Minor fixes for crashes that Play Store build has encountered 2022-08-12 08:41:16 +02:00
José Rebelo
5d82030d49 Refactor file logging logic 2022-08-07 23:24:16 +01:00
José Rebelo
efdc4c434a Correctly disable file logging if initialization fails
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.
2022-08-06 00:34:47 +01:00
José Rebelo
f7ecb5a867 Allow DeviceService to target a specific device 2022-08-05 21:34:15 +02:00
vanous
fa2d537ca7 Add share icon to Step Streaks 2022-08-02 22:53:14 +02:00
Arjan Schrijver
305078f253 Fossil Hybrid HR: Use embedded background image from .wapp file for editor 2022-07-31 22:51:24 +02:00
vanous
c490b4050d Eliminate small visual data refresh issue during calculation of steps streaks 2022-07-31 20:07:53 +02:00
vanous
85e8ffb7c3 Steps streaks: retain data during screen rotation 2022-07-31 16:59:53 +02:00
vanous
03fecd7aa7 Indicate that more items are available in Sleep sessions list in Sleep charts 2022-07-31 10:59:05 +02:00
ozkanpakdil
46f0187634 fix #2631 2022-07-31 10:59:05 +02:00
vanous
8f3ef9cd7f Add alert to Log Sharing if logging has not been enabled yet 2022-07-30 21:40:37 +02:00
vanous
c6104f5332 Add Steps streaks screen 2022-07-30 10:07:26 +02:00
José Rebelo
03db850b3e Fix crash when device has no device specific settings 2022-07-28 11:17:58 +02:00
Gordon Williams
1e4fb7ee87 Bangle.js - make 'text as bitmaps' have transparent background, and allow font size to be specified - fixes https://github.com/espruino/BangleApps/issues/2057 2022-07-25 14:34:34 +01:00
Arjan Schrijver
6d92af5794 App manager: refresh list when returning from watchface editor 2022-07-25 14:34:41 +02:00
José Rebelo
3e6d2bd40e Use device alias on battery info activity 2022-07-24 22:10:10 +01:00
Arjan Schrijver
65a7ceab82 Add option to share a cached watchface/app to another app 2022-07-20 09:42:47 +02:00
Arjan Schrijver
365bb2aea4 Fossil Hybrid HR: Add try-catch block that was missing in 7e844367e 2022-07-17 20:29:54 +02:00
Arjan Schrijver
7e844367e6 Fossil Hybrid HR: Show in appmanager which watch apps are outdated 2022-07-16 23:03:06 +02:00
Arjan Schrijver
93e9d407ec Fossil Hybrid HR: Show in appmanager which watchfaces are outdated 2022-07-14 13:02:04 +02:00
vanous
c77521f975 Add device menu item to get to the FW/App Installer via an explanation activity 2022-07-12 10:50:41 +02:00
Andreas Shimokawa
6ce62008dd Discovery: prevent crash on long tap when a device has no device specific settings 2022-07-10 19:29:43 +02:00
vanous
fe73e9fec1 Allow Settings splitting into device, app and auth screens
- open app preferences screen from device card menu
- open auth preferences screen from DiscoveryActivity
- add explanation about Auth key, make it open wiki link, fix #2240
- add New protocol checkbox and explanation when first pairing Miband 6
2022-07-05 21:40:27 +02:00
José Rebelo
8c1c7fbe63 Add support for incoming call notification delay 2022-07-05 20:34:11 +02:00
José Rebelo
9cb6403c04 Mi Band 4: Add password support 2022-07-05 19:29:16 +01:00
José Rebelo
152f19575f Make calendar blacklist configurable per device 2022-07-05 19:58:21 +02:00
José Rebelo
7512147c34 Huami: Display native alarm notification 2022-07-05 19:57:13 +02:00
José Rebelo
1755b4e093 Animate card movement on device list 2022-07-05 19:53:43 +02:00
Arjan Schrijver
951772626c Fossil Hybrid HR: Show app versions 2022-07-04 17:12:41 +02:00
Daniel Dakhno
62f77ef8d0 ControlCenter: added folders to ControlCenter 2022-06-28 14:01:51 +02:00
Arjan Schrijver
8c4ab7e713 Fossil Hybrid HR: When deleting a watchface, remove the preview image as well 2022-06-23 17:30:35 +02:00
Arjan Schrijver
48212d4185 Fossil Hybrid HR: Add watchface preview images in the app manager 2022-06-17 14:45:10 +02:00
José Rebelo
33d433d206 Make transliteration configurable per-language 2022-06-15 18:40:28 +02:00
dakhnod
4a8523f790 multi-device-support (#2526)
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>
2022-06-14 18:05:41 +02:00
Gordon Williams
3ef39433a6 Bangle.js build: remove the 'Donate' link for the Bangle.js build only, and instead add a message in the app's About dialog (unfortunately this is needed because Google Play store policy doesn't allow you to 'buy' stuff outside of the store) 2022-06-13 08:38:05 +01:00
Gordon Williams
e40bd79fbf Bangle.js: Adding built-in app-loader view (available via app management icon). Only available on internet-enabled builds (it's a webview) 2022-06-13 08:35:32 +01:00
Gordon Williams
bdcaeae177 Merge remote-tracking branch 'freeyourgadget/master' into freeyourgadget_master 2022-06-13 08:26:53 +01:00
vanous
30c7872d24 Discovery activity: set scanning sensitivity to level 2 2022-06-13 06:11:26 +02:00
vanous
8bfe37e61f Handle one shot alarm for Fossil watch 2022-06-12 08:50:46 +02:00
vanous
a9cd3412ee Allow to set discovery scanning level to prevent freezing 2022-06-11 23:07:56 +02:00
José Rebelo
b9feb886f8 Fix sharing log files on newer android versions 2022-06-11 12:21:24 +02:00
Gordon Williams
2bb8eefe23 Merge branch 'freeyourgadget_master' of codeberg.org:Freeyourgadget/Gadgetbridge into freeyourgadget_master 2022-06-10 12:13:23 +01:00
José Rebelo
2101b5840a Mi Band 5: Start fitness tracking on phone when workout starts on band 2022-06-09 10:32:26 +02:00
José Rebelo
b07cd54468 Mi Band 5: Send GPS location to band during workout 2022-06-09 10:32:26 +02:00
vanous
c188eccff7 Keep main menu items unselected, fix #2351 2022-06-04 11:26:45 +02:00
José Rebelo
621e731d63 Go to previous PreferenceScreen on back actionbar option
Fixes #2692
2022-06-03 23:08:32 +01:00
José Rebelo
a5a653dc34 Move OpenTracks external events to dedicated package 2022-05-30 13:17:26 +02:00
Ludovic Jozeau
b07dc6f2b2 fix calendar blacklist, view and storage
- view: unselect calendar that aren't blacklisted
- use more unique string to identify and store blacklisted calendars
2022-05-30 13:14:46 +02:00
vanous
22a9ad329e FitPro: fix crash, inactivity warning preference to string, after type enforcement in 3b348a5d5 2022-05-29 22:03:52 +02:00
vanous
4db2877a91 Widget and SleepAlarmWidget: modify for multidevice support 2022-05-28 14:57:01 +02:00
Gordon Williams
3f053927e0 Pop up a dialog asking about Location permissions (although others get requested too).
Conversation at https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2675#issuecomment-455468
2022-05-20 08:39:47 +01:00
Gordon Williams
8d2a127879 When we need permissions, we now pop up a dialog asking nicely and explaining why. Also instructions, since it may be unclear for new users. 2022-05-19 22:17:24 +02:00
Gordon Williams
b324f40a78 Bangle.js: add support for rendering to a text that can't be displayed into a bitmap and sending the bitmap over
# Conflicts:
#	app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/banglejs/BangleJSDeviceSupport.java
2022-05-18 16:35:07 +01:00
Gordon Williams
ec3b54ef47 Bangle.js: Add option for enabling/disabling internet access, and add ability to send Intents direct from Bangle.js
# Conflicts:
#	app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/banglejs/BangleJSDeviceSupport.java
2022-05-18 16:31:22 +01:00
José Rebelo
91e9451a87 Mi Band 5: Add HR activity monitoring, HR alerts, stress monitoring 2022-05-17 21:49:43 +01:00
José Rebelo
428af7f21e Huami/Mi Band: Move heart rate monitoring to device-specific settings 2022-05-17 21:49:42 +01:00
vanous
948db604e5 Add support for Galaxy Buds Pro
- add generic coordinator and settings customizer for Galaxy Buds
- add Prefs to the DeviceSpecificSettingsCustomizer
- edit Changelog
2022-05-17 22:27:40 +02:00
José Rebelo
3b348a5d5d Huami: Move inactivity warnings and goal notification to device-specific settings 2022-05-16 10:33:02 +02:00
José Rebelo
b220fef74e Mi Band 5: Add notification vibration patterns 2022-05-14 16:11:26 +02:00
Daniel Dakhno
c31213c34d VESC: added battery indicator 2022-05-14 04:47:22 +02:00
José Rebelo
10d11d4818 Mi Band 5: Add support for configuring activity types 2022-05-12 08:52:02 +02:00
José Rebelo
5c6edea233 Mi Band 5: Add support for World Clocks 2022-05-10 13:59:25 +02:00
José Rebelo
c74bbffb4d Mi Band 5: Add activate display on lift sensitivity 2022-05-09 17:58:55 +02:00
Daniel Dakhno
bf4e948c35 UM25: added notification on below current threshold 2022-04-15 02:08:51 +02:00
gfwilliams
2cb5844020 Bangle.js build flavor (#2621)
This PR adds build flavors to `build.gradle`. The default is called `main`, but we also add `banglejs` which allows the building of an app called `Bangle.js Gadgetbridge`.

This will have internet connectivity, allowing Bangle.js watches to request data directly from the internet - and it's named so as hopefully not to be confused with the normal offline Gadgetbridge, while still giving credit.

Eventually the plan is to put this on the Google Play store, and to have additions in it which are good for Bangle.js users but would otherwise negatively impact normal Gadgetbridge users (a build flavor is used so we can keep the same codebase and not fork).

About naming - I'd mentioned `Gadgetbridge for Bangle` to @ashimokawa but thinking about how it would appear in the app store and Android apps list, it probably makes sense to call it `Bangle.js Gadgetbridge` so it's listed under `B...`. Happy to change or use something else if you have strong opinions though.

**Note:** adding build flavors seems to add the flavor name to existing builds. As a result, *all other builds will now have `main` in the name*. Unfortunately I didn't see another way around this, but hopefully it won't break anything.

Co-authored-by: Gordon Williams <gw@pur3.co.uk>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2621
Co-authored-by: gfwilliams <gfwilliams@noreply.codeberg.org>
Co-committed-by: gfwilliams <gfwilliams@noreply.codeberg.org>
2022-03-31 11:36:26 +02:00
Damien Gaignon
48890d1d34 Move disconnect_notification constant to generic 2022-03-30 22:01:08 +02:00
Damien Gaignon
02e790dd00 Remove redundant constants 2022-03-30 22:01:08 +02:00
Damien Gaignon
619780977c Move lefun_language constant to generic 2022-03-30 22:01:08 +02:00
Damien Gaignon
fd69b1a3ea Move mi2_inactivity constants to inactivity 2022-03-30 22:01:08 +02:00
Damien Gaignon
46f93bd2e4 Move longsit constants to inactivity 2022-03-30 22:01:08 +02:00
Damien Gaignon
ae796c81eb Move zetime_inactivity* constants 2022-03-30 22:01:08 +02:00
Damien Gaignon
3b75a1701a Clean DO_NOT_DISTURB* constants 2022-03-30 22:01:08 +02:00
Damien Gaignon
66b8fb004e Move mi_ constants 2022-03-30 22:01:08 +02:00
vanous
f44ff3ae69 AutoExporter changes for better operation and troubleshooting.
- Add more info about AutoExport into DataManagement activity
- Fix scheduleAlarm name
- Run AutoExporter in another thread
- Start AutoExporter on app startup if not running yet from AutoStartReceiver
- Save and show time of scheduled and last executed AutoExport
2022-03-06 13:03:59 +01:00
vanous
3ecc6519b0 Add selection dialog to set OpenTracks package name 2022-02-25 07:33:10 +01:00
vanous
3450e5d5e7 allow to open Android notification settings from Notification settings 2022-02-23 10:25:10 +01:00
vanous
79e0c01f60 add debug features for openTracksObserver 2022-02-22 17:57:31 +01:00
José Rebelo
d0f80eb5b4 Sony Headphones: Implement Noise Cancelling Optimizer 2022-01-17 07:55:43 +01:00
José Rebelo
83c42ebef8 Sony WH-1000XM3: Disable equalizer, surround and sound position while in SBC codec 2022-01-15 23:40:00 +00:00
José Rebelo
1de2c32705 Make DeviceSpecificSettingsCustomizer Parcelable, fixing occasional crash
A fragment must have an empty constructor, and the settings will sometimes crash when resuming.

Fixes #2560
2022-01-15 17:18:41 +01:00
DESKTOP-IF738U6\Tim
5de5f7bb14 added data loss fix to debug activity 2022-01-15 09:52:27 +01:00
José Rebelo
d23b0a5b88 Sony WH-1000XM4: Initial Support 2022-01-12 10:36:07 +01:00
dakhnod
8d1a1c07b7 fossilhr-activity-recognition (#2539)
This PR adds the ability to change activity recognition settings on the watch.

Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2539
Co-authored-by: dakhnod <dakhnod@noreply.codeberg.org>
Co-committed-by: dakhnod <dakhnod@noreply.codeberg.org>
2022-01-06 13:31:00 +01:00
vanous
53e7a4740e Add commit id into About screen 2021-12-30 10:40:40 +01:00
vanous
7cf562c8e6 Refactor formatting of distance strings
- localizing number format
- allows translation of distance units
- refactor
2021-12-30 07:55:20 +01:00
dakhnod
b0ed617072 device-bose-qc35 (#2520)
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>
2021-12-27 15:37:04 +01:00
José Rebelo
c4874de11a Sony WF-SP800N: Initial Support 2021-12-26 19:17:21 +01:00
vanous
c23810f54c Provide Add test device directly from the Discovery screen 2021-12-26 18:14:07 +01:00
vanous
682a26e56d Add Discovery setting to the Discovery Activity 2021-12-26 18:14:07 +01:00
vanous
71138192f0 Allow discovering unsupported devices for debug purposes 2021-12-26 18:14:07 +01:00
Daniel Dakhno
cab9ab714a Fixed bug on Preference Screen start 2021-12-26 15:40:12 +01:00
José Rebelo
33b5a6de38 Sony WH-1000XM3: Read information from device 2021-12-23 11:39:26 +01:00
José Rebelo
96d709bea1 Allow devices to update info, preferences and state 2021-12-20 11:29:21 +01:00
José Rebelo
300491d483 Mi Band 3: Add preference to enable display on wrist lift during DND 2021-12-13 16:46:40 +01:00
José Rebelo
710b6f6699 Mi Band 3: Add support for Reminders 2021-12-11 22:39:18 +01:00
José Rebelo
8416cb4e71 Sony WH-1000XM3: Disable device preferences conditionally 2021-12-10 17:38:23 +01:00
vanous
468a40c62e Activity Card: React to User settings. Unify step length 2021-12-05 10:34:55 +01:00
vanous
4398076ecc Activity card: React to Charts settings, refactoring 2021-12-04 20:38:05 +01:00
vanous
50204a956e Activity card: Open specific Charts tab for each activity 2021-12-04 17:18:27 +01:00
José Rebelo
361dcd2eac Fix battery level and voltage index on BatteryInfoActivity 2021-11-30 23:41:58 +00:00
José Rebelo
f8e5b88231 Sony WH-1000XM3: Abstract common Sony Headphones logic 2021-11-20 21:26:51 +01:00
vanous
b24da9a409 Activity info into Device Card: use correct coordinator method
- use correct DeviceCoordinator method supportsActivityTracking()
- remove placeholders from xml
- clarify comments in DeviceCoordinator
- clean up some previously added unused imports
2021-11-18 16:06:56 +01:00
Petr Vaněk
21ea7b6cc2 Add Activity info into Device Card. (#2453)
- this tries to address a common request to display user data up front
- i would make this via a fragment, but RecyclerView doesn't like Fragments
- (fragments would make it much easier to also add a charts like view,
  like we use on the Activity list tab)
- i added configuration that allows to disable it partially or fully
Co-authored-by: Petr Vaněk <vanous@noreply.codeberg.org>
Co-committed-by: Petr Vaněk <vanous@noreply.codeberg.org>
2021-11-18 12:22:43 +01:00
vanous
fcb91fd544 Add support for Galaxy Buds Live 2021-11-12 18:01:50 +01:00
José Rebelo
bf5eebd411 Sony WH-1000XM3: Initial Support 2021-11-06 23:43:31 +00:00
vanous
678cf006e0 Move devicesettings_transliteration to settings of each device 2021-11-03 17:13:22 +01:00
vanous
a7fbda5fe1 Multi-battery: further improvements:
- add new icons
- ensure correct default icon
- modify Battery Info activity
2021-11-02 21:15:25 +01:00
vanous
3609af3a18 Add batteryConfig
- clarify battery index
- icon and label settings
2021-11-02 21:15:25 +01:00
vanous
788f4d8ae0 Add support for multiple batteries per device 2021-11-02 14:37:47 +01:00
vanous
da0c43f77d Galaxy Buds: adding initial support for Galaxy Buds 2019 2021-10-31 07:27:16 +01:00
vanous
d3d4130a95 Reworking notification management
- rename some methods to better indicate their functions.
- make the notification filter to be allow or deny list,
  solves #2256 and #336
- make app word filter to behave based on allow/deny settings.
- make Pebble notifications to honor the allow/deny settings.
- add generic "debug function" to Debug activity.
- add Message privacy mode settings, solves #2279
2021-10-10 11:49:13 +02:00
Andreas Shimokawa
bef015b0c2 Add new getSupportedLanguageSettings() to coordinator to get rid of all those arrays
There is one big generic one now, unssupported languages will be removed at runtime.
Tested with Amazfit Bip U.
2021-10-07 14:32:09 +02:00
daniele
a7f42f0c4f Add initial support for Nothing Ear(1) TWS (#2403)
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>
2021-09-30 22:40:18 +02:00
vanous
2bd90a0d5a use native isToday method 2021-09-26 20:29:54 +02:00
vanous
dc42faa6fb Show ongoing activity snackbar only 'today' 2021-09-26 20:15:25 +02:00
Andreas Böhler
264b003809 Fix connection on GBX-100 2021-09-23 18:28:45 +02:00
Anemograph
d088c3d63f Added ringtone preference setting. 2021-09-21 21:03:37 +02:00
vanous
e00ee75ad2 adding FitPro bands support 2021-09-21 16:37:19 +02:00
vanous
6b10453714 Remove device specific Alarms upon device removal. 2021-09-19 17:55:54 +02:00
vanous
d6b5140519 Remove device specific preferences upon device removal. Also add this option to the Debug screen. 2021-09-18 22:28:58 +02:00
vanous
47b9e94858 exclude not worn sleep times also from sleep sessions
This ensures that the sleep sessions times and the charts times are now
equal (correct behavior). At the same time this causes the sleep
sessions to be visually broken up into more small pieces and therefore
it now more highlights the issue of the band (mostly) wrongly marking
some samples as not worn.
2021-09-17 18:05:58 +02:00
vanous
e6ae5e357e add Heart icon (trigger heart measurement) to device action icons 2021-08-08 11:12:08 +02:00
Arjan Schrijver
fa89df562a Fossil Hybrid HR: Edit existing watchfaces from app manager cache 2021-07-19 13:43:05 +02:00
Arjan Schrijver
de403cf92e Fossil Hybrid HR: Add watchface designer 2021-07-19 13:43:05 +02:00
vanous
bcc5afb78c use '_' instead ':' in exported and imported file names 2021-07-18 18:21:00 +02:00
vanous
4a5d639d01 add GPX receiver via intent 2021-07-14 11:41:41 +02:00
vanous
fffe7e37c4 Allows to edit the GPX track entry in Sports Activity item 2021-07-14 11:41:41 +02:00
vanous
c5aaaec7e3 Add black background to Dark Theme 2021-07-06 21:04:27 +02:00
vanous
809cd30f0e add transliteration to PineTime, solves #2334 2021-07-02 09:51:43 +02:00
vanous
ad7fc6c5d0 Check ActivityListing charts for null condition, should fix #2322 2021-06-27 14:59:23 +02:00
vanous
24afee2de5 Debug: add testing device manually 2021-06-27 14:57:47 +02:00
Arjan Schrijver
ecb23f7a22 Fossil Hybrid HR: Block dangerous intents by default and move some settings to developer settings submenu 2021-06-01 09:38:59 +02:00
TaaviE
df3ee872ae Improved logging in bonding and tried to recover from weirdness 2021-05-30 01:00:48 +03:00
Dmitriy Bogdanov
e28beaae48 Refactoring: localize notification handling in GB
* 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.
2021-05-29 23:17:39 +02:00
Arjan Schrijver
25324c61b9 Fossil Hybrid HR: Use GB app manager (#2302)
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>
2021-05-29 16:42:32 +02:00
Andreas Shimokawa
348f459e3f Huami: Send "about you" preferences to device immediately when changing values
Closes #2297
2021-05-27 23:11:00 +02:00
vanous
71cb53a440 adjust Steps Charts steps values offset to account for large phone screen sizes 2021-04-02 16:08:02 +02:00
vanous
e63b6986c6 make Activity Charts dates move as calendar months and to go to now if jumping past today 2021-04-02 16:07:36 +02:00
vanous
63fc6b7ab6 make Battery Info time span jump as calendar months and not as days 2021-04-02 16:06:21 +02:00
vanous
9fc02ff09b move transliteration to per device to DeviceCommunicationService, plus migration, fix #2237 2021-03-28 13:33:08 +02:00
Andreas Shimokawa
9dc4dde5e7 Amazfit Neo: Support sound settings 2021-03-24 20:02:48 +01:00
Arjan Schrijver
cff4b65fb8 Fossil Hybrid HR: Sync notification dismissals to watch (#2219)
Fossil Hybrid HR: Move check for autoremove_notifications pref to NotificationListener

Fossil Hybrid: Rename logger to LOG and replace printStackTrace calls

Keep and maintain list of notifications pushed to device

Fossil Hybrid HR: Make autoremove notifications toggleable in device settings

Fossil Hybrid HR: Sync notification dismissals to watch

Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/2219
Co-Authored-By: Arjan Schrijver <arjan5@noreply.codeberg.org>
Co-Committed-By: Arjan Schrijver <arjan5@noreply.codeberg.org>
2021-03-08 14:29:08 +01:00
vanous
fdea7ed24d Add header-title to Activity detail 2021-03-08 09:59:14 +01:00
vanous
01e99d2809 Add chart to each item in Activity list 2021-03-07 19:42:14 +01:00