1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-06-28 07:50:11 +02:00
Commit Graph

3060 Commits

Author SHA1 Message Date
MrYoranimo
5e6bf798a4 Xiaomi: implement setAutoReconnect on XiaomiSupport
The DeviceCommunicationService calls `#setAutoReconnect` on new device
supports before it calls the connect method. Since this method did not
get relayed to the connection-specific support classes, Xiaomi devices
using a BLE connection did not automatically reconnect because the
`mAutoReconnect` field in `AbstractBTLEDeviceSupport` never got set.
2024-04-12 20:54:49 +02:00
MrYoranimo
d39f86f3c8 Xiaomi: fix music volume command only increasing volume
Earlier Xiaomi devices would send either 0 or 100 for the requested
volume to indicate whether the app should increase or decrease the
phone's volume. Newer devices send the volume to change to, based on the
known current volume. We therefore need to check whether the device
increased or decreased the volume based on the current volume ourselves
in order to determine which event we want to fire.
2024-04-12 20:54:49 +02:00
MrYoranimo
0b731611b9 Xiaomi: refactor WidgetManager for Redmi Watch 4
The Redmi Watch 4 reports both an unsupported widget type and layout
style:

- The firmware supports a screen layout for a single full screens
  widget, which is defined by layout ID 128;
- A full screen widget is a single 2x2 part, which is not supported.

This commit adds support for both the new layout and the new widget
type.

Furthermore, this commit refactors the XiaomiWidgetManager. Previously,
the supported layouts were determined by the types of parts supported by
the device. However, the supported layouts are reported by the device
through a bitfield in the widget capabilities message of which the purpose
was unknown, which is now used to determine the supported layouts.
2024-04-12 20:54:49 +02: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
Ganblejs
96bbd578c8 Bangle.js: add wake on notification response OPEN 2024-04-10 19:36:17 +00:00
Damien 'Psolyca' Gaignon
83a010f42e [Huawei] Ask pincode only on first connection 2024-04-09 19:06:39 +00:00
Damien 'Psolyca' Gaignon
52e61e36fe [Huawei] Rename needsAuth to firstConnection 2024-04-09 19:06:39 +00:00
MrYoranimo
0daf283853 BtBRDeviceSupport: fix Gadgetbridge crashing when queue is destroyed during initialization 2024-04-07 20:25:52 +00:00
MrYoranimo
ebf0dbc2d0 Xiaomi: remove battery-related request timer on disconnect 2024-04-07 20:25:52 +00:00
MrYoranimo
cb44982edb BtLEQueue: make NotifyAction more verbose 2024-04-07 20:25:52 +00:00
MrYoranimo
3ad389d57d BtBR/Xiaomi: fix disconnection logic/state handling 2024-04-07 20:25:52 +00:00
Daniel Dakhno
9502a0dcfb Device scan: Fix permission check on Android 11 and below (#3659)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3659
Co-authored-by: Daniel Dakhno <dakhnod@gmail.com>
Co-committed-by: Daniel Dakhno <dakhnod@gmail.com>
2024-04-06 10:46:55 +00: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
Daniele Gobbetti
c4747e2e23 Nothing: add option to auto-reply to incoming phone calls
The new preference to toggle the auto-reply behavior is not
prefixed with the device name, as I guess it could be useful
also for other bluetooth headphones
2024-04-05 19:55:22 +02:00
Martin.JM
88746d5706 [Huawei] Hookup GPS values 2024-04-04 19:31:12 +02:00
Damien 'Psolyca' Gaignon
a29187a034
[Huawei] Fix long notification and clean Notifications class 2024-04-03 23:05:53 +02:00
José Rebelo
64a0b716f0 Fix crash when connecting on some phones 2024-04-03 21:22:52 +01:00
José Rebelo
9b285f16bf DeviceCommunicationService: Notify device connections right away
As noted in #3676, having a lot of bluetooth classic devices might make
the connection take some time, which would only send all the updates at
the end.

Send the updates right away for each device.
2024-04-02 22:04:12 +01:00
MrYoranimo
7fb0d19374 Xiaomi: fix GB crashing when sending command to disconnected SPP-based device 2024-04-02 21:02:42 +00:00
MrYoranimo
28066b9b7d DeviceCommunicationService: fix crash when enabling Bluetooth adapter 2024-04-02 21:02:42 +00:00
Marcel Alexandru Nitan
a76b9af80c zepos: fix timezone for sunrise/sunset time; closes #3673, closes #3400 2024-04-02 20:46:08 +00:00
MrYoranimo
a5ff360497 Xiaomi: rework weather service 2024-04-01 21:57:12 +02:00
José Rebelo
033e977491 Bangle.js: Add setting to disable notifications 2024-03-31 23:08:14 +01:00
Damien 'Psolyca' Gaignon
7b22b8880d
[Huawei] Fix reconnection issue 2024-03-31 18:28:49 +02:00
Vitaliy Tomin
4986fdd0ea Huawei: Use generic notification type instead of wechat
* this match stock application Huawei Health
* devices show proper applications icons if it exist in firmware,
when type set to Wechat only wechat icon used
* sender name was not shown with wechat type
2024-03-31 07:04:25 +00:00
José Rebelo
88a1e7bb59 Huawei: Group pace values in activity summary pace group 2024-03-30 21:42:18 +00:00
Martin.JM
ff37766510 Huawei workout change strings to ActivitySummaryEntries 2024-03-30 21:34:27 +01:00
Martin.JM
4ad77c8232 Huawei Workout improve pace information 2024-03-30 21:34:27 +01:00
Martin.JM
e9090ec082 Huawei Workout use translatable strings 2024-03-30 21:34:27 +01:00
Martin.JM
e8ddc1fd17 Huawei Workout cleanup of unknown values 2024-03-30 21:34:27 +01:00
Damien 'Psolyca' Gaignon
7a752381cc
[Huawei] Remove SendAccountRequest 2024-03-30 15:50:49 +01:00
José Rebelo
81aef0bf35 Add support for multiple weather locations
Introduce the concept of primary and secondary weathers:

* Primary weather keeps the same behavior as previously across all weather providers, so it's non-breaking. This location is not necessarily the current location, just the primary weather location set by the user.
* The GenericWeatherReceiver now has a new extra WeatherSecondaryJson, that receives a json list with secondary weather locations.

It's guaranteed that the primary weather always exists, so the list of WeatherSpecs provided to devices is never empty. Update all support classes accordingly.
2024-03-29 21:10:40 +00:00
Daniel Dakhno
8cf87a418b Added scannable-only devices (#3621)
Co-authored-by: Daniel Dakhno <dakhnod@gmail.com>
Co-committed-by: Daniel Dakhno <dakhnod@gmail.com>
2024-03-28 21:07:05 +00:00
~noodlez1232
bf762a25a5 Cleanup and update AsteroidOS
1. Added icons to the notifications
2. Cleaned up a lot of the DeviceCoordinator code (Since a lot of them
   have default implementations now)
2024-03-28 12:30:20 -07:00
Gordon Williams
1165a5d03c Revert "Bangle.js: add support for SMS replies" - not needed as per #3654
This reverts commit 323f8028e0.
2024-03-28 08:45:14 +00:00
Gordon Williams
323f8028e0 Bangle.js: add support for SMS replies 2024-03-28 08:31:07 +00:00
Gordon Williams
665656ddc0 Bangle.js: Fix message reply (and add .reply in notify if message supports reply)
NotificationListener now stores the handle ID in wearableAction.handle rather than hard-coding the calculation
Should fix ZeppOS too which was copy&paste from Bangle.js
2024-03-27 10:50:50 +00:00
Misaka 0x4e21
d68cb8c743
Huawei: Fix cycling workout type
Cycling workout type is actually 3 instead of 5.
2024-03-26 19:35:53 +08:00
g_p
7cb7c0ea8a Nothing CMF Watch Pro: Add weather support
This patch adds support for current weather, and next 6 days' weather. Condition mapping added to align with the available icons on the watch.
It also transmits the hourly condition and temperature for the coming 24 hours as part of the update.

Tested on CMF Nothing Watch Pro firmware 11.0.0.50 with weather data cooming from Breezy Weather (using Accuweather)

For current day:
- Weather symbol shows
- Name of current location shows (long names scroll)
- Current temperature shows
- Written condition shows (e.g. "Cloudy")
- Min/max temperatures show
- Air quality indicator shows

For upcoming days:
- Weather symbol shows
- Min/max temperatures show
- Name of day shows (patch doesn't touch this)

Nothing CMF Watch Pro: Use putShort() for air quality indicator; fix max location length

- Using putShort() as suggested from code review - tested to give same result
- Reduced max location length to 16 bytes, as 32 was not working

Nothing CMF Watch Pro: Better handle limited data from weather providers

- Check max length of daily and hourly datasets
- Populate with dummy data if insufficient data available
- Use null as the weather condition in any situation where no data available

Nothing CMF Watch Pro: If hourly weather data is missing, use current data

This should create a better fallback behaviour if a weather source is lacking hour-by-hour data.
Assuming the current data will apply in the next hour is less messy than showing placeholder (inaccurate) figures.

Nothing CMF Watch Pro: Allow location names of up to 30 characters, improve string processing
2024-03-25 22:45:36 +00:00
José Rebelo
1e2a561dfd Bangle.js: Add screenshot support 2024-03-25 20:38:37 +00:00
Ganblejs
f8e15068ea Bangle.js: add save file to android functionality
Bangle.js:file handling LOG.warn -> info

Bangle.js: sync file can't escape device directory

Naïve solution. I wanted to use `Path.normalize()` but Android Studio
said it could not be used from the static context. This does not attempt
to normalize the path, but just remove the special names `..\` and `.\`.

Bangle.js:simpler hindering of escaping device dir
2024-03-25 17:04:21 +00:00
Misaka 0x4e21
cef277261a [Huawei] Support workout type of cycling
Add support for workout type of (outdoor) cycling, which is 5 on the device.
2024-03-25 23:28:53 +08:00
Andreas Shimokawa
7fe619c976 BLEScanService: Allow supported ScanSettings on Android API level 23 2024-03-25 10:34:44 +01:00
José Rebelo
435b4bec60 BLEScanService: Fix linter 2024-03-25 09:20:51 +00:00
g_p
0becaa4334 Nothing CMF Watch Pro: Fix music playback status
These two values were swapped, meaning a double press of play/pause was needed to change state.
This also fixes the wrong play/pause button state showing during playback.

Tested on firmware 11.0.0.50
2024-03-24 20:15:56 +00:00
Damien 'Psolyca' Gaignon
1392f24f4c
[Huawei] Add Rotate Cycle Info into dynamic service 2024-03-23 18:09:04 +01:00
Gordon Williams
8d43624a9a Bangle.js: filter calendar events to try and remove :~:~:~:~:~ lines for google meet, double newlines, and HTML 2024-03-22 11:43:30 +00:00
Ganblejs
de1faf6f00 Bangle.js:actTrk:replace RuntimeException with LOG 2024-03-21 23:28:29 +00:00
Ganblejs
ac4273fc1b Bangle.js:actTrk:dont apnd device mac str to files 2024-03-21 23:28:29 +00:00
Ganblejs
5c183da78c Bangle.js:actTrk: store files in device subfolder 2024-03-21 23:28:29 +00:00