The refactored DiscoveryActivityV2 does not freeze anymore, even under
maximum scanning intensity on older phones, and seems to not have
introduced any regressions.
Implement reading battery percentage.
Implement setting temperature scale used on clock display.
Communication protocol taken from: https://github.com/h4/lywsd02
Mi Band HRX: changed DeviceType key for MIBAND_HRX
Mi Band HRX: added migration to MIBAND_HRX
Mi Band HRX: added devicetype string for MIBAND_HRX
Huami HRX: removed redundant null check
Huami HRX: removed redundant supports callback
This PR aims to optimize the method of synchronizing the menu_structure for the openSourceWatchface by making the menu_structure request from the watch obsolete.
Instead, when a new menu_structure is sent to GB via the Intent `nodomain.freeyourgadget.gadgetbridge.Q_SET_MENU_STRUCTURE`, GB remembers that JSON.
Next time a watchface is built, the JSON is embedded into that app package so the watch doesn't forget the structure.
This requires a full GB rebuild to work properky.
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3245
Co-authored-by: Daniel Dakhno <dakhnod@gmail.com>
Co-committed-by: Daniel Dakhno <dakhnod@gmail.com>
* Check for bluetooth permissions in DiscoveryActivity
* At startup we now pop up a dialog explaining why we want *any* permissions
* Fixing ControlCenterv2 permissions requests for Android S and later (requesting background location stopped *any* dialog appearing)
* Fixing all errors in DiscoveryActivity from Android Studio by catching errors
* Move permission requests around to ensure that we only call RequestMultiplePermissions from onCreate
* Only show dialog if we have permissions to request
* Fix "LifecycleOwners must call register before they are STARTED" on some Android devices: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3192/files#issuecomment-967267
The ckChangelog lib does not have translations for all languages -
declare the resources on Gadgetbridge side with the same name so that
they can be translated in weblate.
Mostly copied from the Buds Pro as those earbuds have a similar feature set and mostly the same protocol.
Working:
- Pairing
- Earbud and case battery level
- Finding lost device
- Settings:
- Noise control:
- ANC/ambient/off
- With one earbud
- Voice detect and timeouts
- Ambient sound during calls
- Touch options:
- Touch lock
- Switch noise control, voice assistant, Spotify and volume actions
- Double tap edge
- Equalizer
- Sound balance
- Seamless earbud connection
Can be improved:
- ~~ANC level and ambient sound volume do nothing, and don't seem to be supported on this model as there is no toggle for either in the official app.~~ (fixed: 26a9d274ae)
- Ambient sound customization has more options than on previous models, but I can't implement it properly as I can't really hear any difference between the options (my buds might be the issue though).
- ~~The touch lock toggle is once again inverted, like on the [Buds2](d2c4990c48)~~ (fixed: 21db5390c1).
Untested:
- Settings:
- In-ear detection for calls
- Ambient sound customization
- Game mode
This PR also makes some visual changes to the settings of various Galaxy Buds models.
I'd also like to be added to the wiki's allow list. I want to add the Buds2 and Buds2 Pro to the list of supported devices.
---
And sorry for creating this many pull requests. This is mostly due to Codeberg breaking the reference to the branch.
Co-authored-by: Narek <narek.email@gmail.com>
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3049
Reviewed-by: José Rebelo <joserebelo@noreply.codeberg.org>
Reviewed-by: Andreas Shimokawa <ashimokawa@noreply.codeberg.org>
Co-authored-by: narektor <narektor@noreply.codeberg.org>
Co-committed-by: narektor <narektor@noreply.codeberg.org>