Deliver third-party data logging to companion apps over PebbleKit 2 (#378)
* Deliver third-party data logging to companion apps over PebbleKit 2 Data logging sessions of third-party watchapps were dropped after the protocol-level ACK. Datalogging now emits them as flows: thirdPartyData (batches) and thirdPartyFinished (session end). The session timestamp and the watch serial go with each record. On Android, PebbleKit2Datalogging collects the flows and calls sendOnDataLogReceived / sendOnDataLogSessionFinished (PebbleKit 2 1.3.0). One worker per session sends the batches in sequence and sends the finish event after the companion app acknowledged all batches. Nack, Unknown, null or a binder failure causes a limited number of retries; then the worker discards the rest of the session. Delivery is not tied to a running watchapp, because spooled data can arrive on reconnect while no watchapp is open. The companion package comes from the watchapp appinfo.json (companionApp.android.apps[].package). * Resolve the companion package on Dispatchers.IO The locker lookup and the PBW parse are blocking I/O. --------- Co-authored-by: Steve Penna <steve@penna.org.uk>
N
neelts committed
2a6259121bdc8966939e710e78ccc86ade600fc0
Parent: 413c6af
Committed by GitHub <noreply@github.com>
on 9/17/2026, 10:09:09 PM