darken
3b00613dde
Refactor proximity message handling, introduce "Payload" that splits the data in public and private part.
2025-06-06 06:03:41 +02:00
darken
33ca43eaf1
Use decrypted proximity data if available
...
This change introduces the capability to decrypt the last 16 bytes of the proximity pairing message if an encryption key is available.
The decrypted payload provides more precise battery information (0-100% instead of 0-10%) and charging status for each pod and the case.
This information is now used by `DualApplePods` to enhance battery reporting accuracy.
The `RPAChecker` has also been updated with improved error logging.
2025-06-06 06:03:41 +02:00
darken
df4ec3501b
Add resolvable private address check
...
This allows verifying the identity of a device if its Identity Resolving Key (IRK) is known.
The IRK can be optionally configured.
2025-06-06 06:03:41 +02:00
darken
fc54e540e8
Code fluff
...
Replace `values()` with `entries` for enum iteration, as recommended by Kotlin for improved performance and consistency.
Also:
- Suppress unused warning in `ByteArrayAdapter`
- Improve logging in `WebpageTool` by including the exception details.
2025-06-06 06:03:41 +02:00
darken
e8481cc8cd
Add preferences for AirPods Identity and Encryption Keys
...
This commit introduces settings for users to input their AirPods' Identity Resolving Key (IRK) and Encryption Key. These keys, obtainable via a MacBook, allow CAPod to reliably identify the AirPods and decrypt detailed status information.
Key changes:
- Added new preferences in General Settings for IRK and Encryption Key.
- Implemented a custom dialog for key input, including validation and a link to a guide.
- Added a Moshi adapter for serializing/deserializing `ByteArray` to/from Base64 for storing the keys.
- Included new string resources for labels, descriptions, and explanations related to the keys.
- Added new icons for the key preferences.
2025-06-06 06:03:41 +02:00
darken
eb8a9b3b46
Add option for separate connected notification
...
Closes #28
Closes #18
2025-05-14 21:21:04 +02:00
darken
92fa181925
Decrease default minimum signal quality
2025-05-14 19:35:47 +02:00
darken
ca82f96b30
Update translations
2025-05-13 19:54:01 +02:00
darken
c88c57e856
Update gradle dependencies and configurations
2025-05-13 19:02:02 +02:00
darken
e216fbf66e
Update privacy policy link
2025-03-21 19:36:03 +01:00
darken
f956625d2e
Update translations
2024-12-05 13:43:06 +01:00
darken
6b922e8845
Fix AirPods Max and AirPods Max (USB-C) support
...
Closes #236
2024-11-08 09:24:44 +01:00
b4shtirk1n
663e2d3b08
add support airpods max 2 & fix airpods max
2024-11-08 08:23:46 +01:00
darken
21b6cfc013
Add support for AirPods (Gen 4 with ANC)
...
Closes #226
2024-09-23 13:33:12 +02:00
darken
42f2f5bfee
Add support for AirPods (Gen 4)
...
Closes #225
2024-09-23 13:08:35 +02:00
darken
6708901394
Improve BLE scanning
...
The default "balanced" mode was reporting data too infrequently.
2024-07-26 08:48:21 +02:00
Ricky Cheung
a3b01a02ee
Update all checkbox preferences to SUW switches
...
Signed-off-by: Ricky Cheung <rcheung844@gmail.com >
2024-07-12 12:18:24 +02:00
Ricky Cheung
07a11799b1
Implement support for different states in notification text
...
Fixes #198
Signed-off-by: Ricky Cheung <rcheung844@gmail.com >
2024-06-27 08:34:19 +02:00
darken
fdfc7f44fb
Update translations
2024-04-30 15:37:18 +02:00
darken
34bf2311b4
Add support for PowerBeats4
...
Thanks to @docgalaxyblock
2024-02-25 13:29:13 +01:00
darken
a86093f617
Update translations
2024-02-25 13:16:19 +01:00
darken
48b9952fc0
Update translations
2023-10-28 18:21:50 +02:00
darken
06e67e04ac
Move permission
2023-10-28 17:58:09 +02:00
darken
4a2f7c20a2
Update unit test
2023-10-28 17:58:09 +02:00
darken
82e8769407
Bump dependencies and API targets.
2023-10-28 17:58:09 +02:00
darken
3f98c62a8f
Extend test case for AirPods Pro 2 (USB-C)
...
Closes #164
2023-09-24 12:01:15 +02:00
Matthias Urhahn
99958e13eb
Update translations ( #166 )
2023-09-23 21:43:24 +02:00
darken
1443fd5714
Support for Apple AirPods Pro2 with USB-C
...
See #164
2023-09-23 21:35:30 +02:00
darken
0c3c4e7ea1
Update translations
2023-09-11 21:09:02 +02:00
darken
d8fb9cdd30
Remove bugsnag
2023-09-11 20:32:53 +02:00
Matthias Urhahn
3920489dcd
Extra onboarding step ( #158 )
...
* wip
* Add extra onboarding step
2023-09-11 20:32:41 +02:00
darken
8884bb88c7
Update translations
2023-07-05 09:15:44 +02:00
darken
ef1c4615aa
Add reaction option: Popup on new connection
2023-07-05 08:21:37 +02:00
Matthias Urhahn
c9587b2bf0
Update translations ( #147 )
...
* Update translations
* Update translations
2023-07-04 12:41:14 +02:00
Sean Singh
669fa2fd22
Support edge-to-edge rendering on Android Q+ ( #146 )
...
* Set nav bars transparent in themes.xml files
* App renders edge-to-edge; need to handle scroll overlaps
* Add fake padding
* Begin version separating
* Edge-to-edge working everywhere except main page
* Finalized
* Cleanup Finalized
* Cleanup Finalized
* Removed redundant values-v29 & optimize imports
* Consolidated insets to Fragment2
* Consolidated insets to Fragment2 (file wasn't staged)
2023-07-04 12:17:44 +02:00
darken
7b8e0cc952
Update translations
2023-06-27 20:28:31 +02:00
darken
bbc4e05c8f
Update translations
2023-05-16 09:23:09 +02:00
Matthias Urhahn
92a67702b7
Merge pull request #131 from d4rken-org/gradle_bump
...
Gradle bump
2023-05-16 09:04:46 +02:00
darken
e0bc6dafa0
Bump gradle
2023-05-16 07:46:13 +02:00
darken
3ac357161a
Improve strings based on translator feedback
2023-05-07 20:15:41 +02:00
darken
25d643257c
Update translations
2023-04-05 13:13:42 +02:00
Matthias Urhahn
20ce2d3e22
A troubleshooter that automatically goes through different compatibility settings. ( #125 )
2023-04-02 22:22:15 +02:00
Matthias Urhahn
3b8ddc9f06
Fix reversed AirPods Max wear-detection ( #116 )
...
* Fix reversed AirPods Max wear-detection
Fixes #115
* Remove unnecessary test
2023-03-13 13:47:32 +01:00
Matthias Urhahn
ad78a0570c
For some reason we can finish the widget update broadcast twice. ( #112 )
...
I can't yet determine why this race-condition occurs, due to the forced timeout, it shouldn't be due to exceeding the receiver ANR window...
2023-03-11 13:01:15 +01:00
Matthias Urhahn
d5411586d5
Update translations ( #109 )
...
* Update translations, add Portuguese
* Update translations
2023-03-10 12:12:31 +01:00
Matthias Urhahn
94e2d40554
Fix AirPods Max wear detection. ( #108 )
...
Closes #106
2023-03-10 11:30:40 +01:00
Matthias Urhahn
db80fa1b46
Wear: Remove unused code ( #104 )
...
* Wear: Remove unused code
* Remove more code
2023-03-02 16:39:11 +01:00
Matthias Urhahn
9b569b8d07
Update Turkish translation ( #100 )
2023-02-20 09:39:27 +01:00
Matthias Urhahn
71aaba1b86
Fix data display for non dual apple pods ( #98 )
...
* Fix data display for fake pods and beats devices (with two pods)
* Rename methods
2023-02-03 22:31:23 +01:00
Matthias Urhahn
64b9d5f17a
Remove ~ and % from signal quality value, it's not necessarily a 0 to 100 percent indicator. ( #96 )
2023-02-02 16:47:06 +01:00