feat: Add unified device state cache for persistent battery display

Replace PodDeviceCache (raw BLE scan bytes) with DeviceStateCache that stores decoded combined device state (battery, charging, model) per profile.

Battery values persist across app restarts with per-slot timestamps. Cached-only cards appear for offline devices with muted visuals and a staleness indicator. Fallback chain: AAP -> BLE -> cached.
This commit is contained in:
darken
2026-04-02 13:56:09 +02:00
parent 19d61ca5cb
commit e91243e577
20 changed files with 902 additions and 231 deletions
+1
View File
@@ -273,6 +273,7 @@
<string name="last_seen_x">Last seen: %s</string>
<string name="first_seen_x">First seen: %s</string>
<string name="battery_cached_label">Last known \u00B7 %s</string>
<string name="permission_post_notifications_label">Show notifications</string>
<string name="permission_post_notifications_description">"Allow CAPod to show notifications about your AirPods, e.g. their current status while connected."</string>