Files
AntennaPod/app-wearos
Hans-Peter Lehmann c19b3d7223 Upgrade to gradle plugin 9.0 (#8302)
### Description

Upgrade to gradle plugin 9.0. This adds support for Java 25

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
spotbugsPlayDebug spotbugsDebug :app:lintPlayDebug`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
2026-08-01 10:02:41 +02:00
..
2026-05-14 14:17:54 +02:00

:app-wearos

A companion Wear OS app for AntennaPod. Can browse episodes from the phone and remote-control the phone to start playback. Communicates with the phone via the WearOS DataLayer API using paths and serialization defined in :net:sync:wear-interface.

Communication with Phone

WearDataListenerService extends WearableListenerService and receives all incoming messages from the phone. Most requests are watch-initiated requests (polling regularly), rarely the phone pushes events.

WearDataListenerService decodes received payloads via WearSerializer. WearDataRepository is a singleton holding StateFlows for each data type. Composables and ViewModels collect from these flows to stay up to date. Updated exclusively by WearDataListenerService.

WearMessageSender.send(context, path) sends a message to the first connected phone. Use this to trigger actions (playback control) or to request data (the phone then replies with the data on the same path).