-
Notifications
You must be signed in to change notification settings - Fork 434
Watch apps: one entry point, a phone-watch channel, and a simulator that can run the pair #5487
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
shai-almog
wants to merge
176
commits into
master
Choose a base branch
from
watch-apps-product
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+44,842
−4,232
Open
Changes from all commits
Commits
Show all changes
176 commits
Select commit
Hold shift + click to select a range
f5863b4
Watch build: one entry point, no hints, and a watch app that reaches …
shai-almog dbb6ae5
Add com.codename1.wearable and make the simulator able to run a paire…
shai-almog 4d070a3
Carry com.codename1.wearable over WatchConnectivity on Apple
shai-almog aeef641
Wear OS: Data Layer link, rotary input and round-screen safe area
shai-almog 2398d09
Complications as surfaces watch families
shai-almog 2151fc9
Rewrite the wearables guide around the two-app model
shai-almog ceb7835
Fix two LanguageTool findings in the wearables chapter
shai-almog 3800ecc
Add the GPLv2 + Classpath Exception header to files this branch touches
shai-almog 66234f9
Use HashMap rather than EnumMap in WidgetTimeline
shai-almog ab400fd
Use Integer/Long/Double.valueOf rather than the boxing constructors
shai-almog 3014bc1
Fix the bugs raised in review
shai-almog 8d1574a
Address the remaining review findings
shai-almog d4448c6
Advertise a wearable capability, and say when no Wear APK is produced
shai-almog b8a27f2
Fix the second round of review findings
shai-almog 14ac12c
Keep the push helpers and the capability cache honest
shai-almog 4930d72
Generate the watch skins at build time, and finish the transfer path
shai-almog b83880e
Pass -force when launching the simulated watch app
shai-almog 86b0ffe
Keep transferred files on their own path, and stop leaking request or…
shai-almog 65f1b1f
Pin the watch simulator slice to arm64
shai-almog 3975b78
Keep the embedded watch app out of the Mac Catalyst variant
shai-almog 64fecf5
Carry per-file compiler flags into the watch target
shai-almog cc8e8b2
Stop forcing -sdk and project-wide ARCHS on multi-target iOS builds
shai-almog 777ddf6
Merge remote-tracking branch 'origin/master' into watch-apps-product
shai-almog ea15e13
Wearables: fix 19 review findings across both platforms
shai-almog 15f70da
Wearables: state the cold-start queue's guarantee accurately
shai-almog 146d51e
Wearables: document what the watch app actually runs today
shai-almog a73910f
Wearables: correct the watch icon comment
shai-almog 9a2d202
Wearables: fix 8 follow-up findings, mostly from the previous round
shai-almog 9c12707
Wearables: don't generate an empty widget bundle; guard two lifecycle…
shai-almog b1d9b34
Wearables: delimit the transfer namespace, keep multi-watch delivery …
shai-almog f7c2565
Wearables: fix the final nine review findings
shai-almog ace780f
Merge remote-tracking branch 'origin/master' into watch-apps-product
shai-almog a92645b
Wearables: four more review fixes, three in the simulator
shai-almog 5cb1e37
Wearables: close eight more review findings, two security-relevant
shai-almog 5694945
Wearables: correct the watch-main comparison and three more findings
shai-almog e6c97bf
Wearables: record the three watch distribution gaps in the guide
shai-almog 29c38a2
Wearables: four more findings, including a dependency conflict
shai-almog 5068da3
Wearables: stop the simulator stamp compounding; bound transfer bookk…
shai-almog 48a671c
Wearables: scope the transfer sweep to this device; keep the capabili…
shai-almog f3088c1
Wearables: close the asset stream when a transfer read fails
shai-almog 840e0fa
Wearables: order writes with a logical clock; address only nodes runn…
shai-almog 97cdc95
Wearables: three consequences of the logical clock
shai-almog a911324
Wearables: break sequence ties on the publishing node
shai-almog d5e0a44
Wearables: one resolution path, and keep the stamp when resolution fails
shai-almog cdd642d
Wearables: record the surviving item's stamp outright after a deletion
shai-almog b05004e
Wearables: restore valueMap and payloadOf, deleted by the getData ref…
shai-almog ba71503
Wearables: retry local identity; keep transfer claims out of the valu…
shai-almog 92624c6
Wearables: don't re-announce a value when a shadow replica is deleted
shai-almog 000632e
Wearables: read capability readiness and nodes as one snapshot
shai-almog 81f822a
Wearables: resolve the real winner on the first event after a restart
shai-almog 81609cd
Wearables: read the capability cache atomically; retry winner resolution
shai-almog 32460db
Wearables: version the capability cache; coalesce transfer sweeps
shai-almog ec6286b
Wearables: generation-guard the remaining two cache paths
shai-almog f7a5bd4
Wearables: guard the send-time refresh; unpin the watch simulator arch
shai-almog b69e37c
Wearables: guard the last unguarded cache write, and audit the set
shai-almog ae85394
Wearables: retry the deletion resolution too
shai-almog 252ae90
Wearables: fix a main-thread block, a bypassed retry, and an unlocked…
shai-almog c03cd8b
Wearables: guard watch-excluded sources in the source, not in a build…
shai-almog e3080f2
Wearables: filter capability callbacks by name; fix headers and a sta…
shai-almog beb8e45
Watch suite: pin the simulator locale and timezone
shai-almog be5544a
iOS builds: stop passing per-SDK conditional settings on the xcodebui…
shai-almog 10062b8
Merge remote-tracking branch 'origin/master' into watch-apps-product
shai-almog cf7d432
Wearables: defer winner resolution instead of delivering an unverifie…
shai-almog 7306d51
Android port: restore master's line endings in the two files this bra…
shai-almog da6ae58
Merge remote-tracking branch 'origin/master' into watch-apps-product
shai-almog 801722c
Health: keep the EDT contract when a listener attaches after completion
shai-almog a446e4c
Wearables: defer deletion resolution too, instead of going silent
shai-almog e0c66f9
BrowserComponent test: time out against the clock, and allow a loaded…
shai-almog 9c7731d
Wear hints: standalone must not imply Wear mode; make the release ret…
shai-almog 4df7d3a
Wearables: compare-and-replace the delivery stamp after a blocking re…
shai-almog f41e48c
Wearables: announce a replicated-path removal once, and never invent one
shai-almog 62f73d9
Merge master; drop the EdtResult fix that master superseded
shai-almog 5c59155
Wearables: don't lose deletion state when coalescing a pending resolu…
shai-almog 7648ef0
iOS wearable: converge on ties, raise the clock from peer stamps, ser…
shai-almog 67e5f25
Wearables: fix the capability resource path, link WatchConnectivity, …
shai-almog 6968932
Wearables: order deliveries with their stamps, anchor the empty delet…
shai-almog 13651b8
Wearables: unlock putData, and only persist a transfer claim once it …
shai-almog 41fa8f4
Wearables: make the ordinary delivery atomic too, and prune claims by…
shai-almog b61a242
Wearables: stop echoing local writes to peer listeners, and stop bloc…
shai-almog f82aac1
Wearables: route the first-sight delivery through the atomic helper, …
shai-almog b7153ea
Wearables: finish the local-echo suppression and keep both snapshots …
shai-almog a1b0145
JavaSE wearable: escape dots, replace atomically, record the real sta…
shai-almog 4ece7b1
Wearables: a local wildcard delete is local on every authority, and c…
shai-almog 02260a4
Wearables: discard partial decodes, reject empty transfer paths, esca…
shai-almog df04dd2
Wearables: make the paired simulator actually pair, one watch process…
shai-almog 7ab6948
Wearables: bound transfer retries by retention, end the removal windo…
shai-almog 51a9e89
iOS wearable: deliver only real changes, acknowledge removals, prune …
shai-almog 08b6a2d
Wearables: clear the removal marker on every publication path, consum…
shai-almog 08cef01
Wearables: durability, provenance, bounded queues and the last orderi…
shai-almog dfe0eca
Wearables: durable received transfers, and accept cold-start events f…
shai-almog 08d9cea
Use /// markdown for the MAX_PENDING doc
shai-almog 881415e
Wearables: close the eight follow-ons from the durability and identit…
shai-almog 2dd30d0
iOS wearable: prune tombstones when publishing, and never report our …
shai-almog 15afd3c
Wearables: retry deletion resolution until it resolves, with no deadline
shai-almog 06e1637
Wearables: confirm iOS inbox delivery, bound deletion retries, unbloc…
shai-almog 420781c
Wearables: make the simulator's author label atomic, gate the socket,…
shai-almog cbef9ca
Wearables: protect one-shot transfers at the queue cap, reconcile a s…
shai-almog 653c434
Wearables: release evicted transfers, stop double-draining the iOS inbox
shai-almog bc99964
Wearables: make every evicted transfer replayable, sweep on each item…
shai-almog 5fef7b6
Wearables: replay relinquished iOS entries, put every expiry on its o…
shai-almog ba7140e
Wearables: drop a leftover bare block in pruneInto
shai-almog a362448
Wearables: copy payloads in and out of the value cache
shai-almog 5226709
Wearables: reset ordering after a local deletion, retry a failed rete…
shai-almog 80a94a3
Wearables: never confirm a delivery no listener saw; stamp from the s…
shai-almog 25cc620
Wearables: anchor the local-delete reset, upgrade pending resolutions…
shai-almog db54a0d
Wearables: coalesce inbox replays, expire claims across restarts, fix…
shai-almog 6e9c4d6
Wearables: derive the watch app's versions from ios.plistInject when …
shai-almog f8e4c3c
Wearables: union the optional-framework lists; fix two simulator sock…
shai-almog 7902583
Wearables: one snapshot per scanned file; populate cold caches in the…
shai-almog 0db4942
Wearables: upgrade pending resolvers unconditionally, retry capabilit…
shai-almog e502f3d
Wearables: keep the phone's bundle-version fallback; replay unclaimed…
shai-almog c9a505a
Wearables: keep removal in the empty branch, upgrade resolvers for ev…
shai-almog 8d8bff5
Wearables: never replay without a local identity; real tombstone ages…
shai-almog 837cb5a
Wearables: claims outlive the sender's deletion window; identity befo…
shai-almog c01705f
Wearables: fix an MRC over-release; keep replay and pruning alive as …
shai-almog 56c3af7
Wearables: release priming markers on completion; keep claims while t…
shai-almog 801e478
Wearables: put the writer's stamp in the frame; unify the claim rule;…
shai-almog 9e50bce
Wearables: remember an authoritative absence
shai-almog 00f49a4
Wearables: keep reading v1 frames; keep the removal marker when a fil…
shai-almog ef14917
Wearables: anchor the negative cache on the pre-query stamp
shai-almog 09ddb07
Wearables: never persist a lower logical-clock floor
shai-almog c035f58
Wearables: prune claims only after the replay has examined what is st…
shai-almog 92fc397
Wearables: refresh a transfer's claim before decoding it
shai-almog 79f6028
Wearables: decide the iOS surface lowering while parsing the manifest
shai-almog fe95ad5
Wearables: give the Wear skins Android's theme, not the one from iPho…
shai-almog 1dc24f8
Wearables: declare a standalone watch app watch-only
shai-almog d2e3d8f
Wearables: pair by role, coalesce the prune chain, forget evicted births
shai-almog 8887e8e
Wearables: say what isSupported() actually answers
shai-almog bf0a665
Wearables: never expire a claim without checking the item is gone
shai-almog 70db95c
Wearables: correct the last two isSupported() descriptions
shai-almog 027c336
Wearables: give live messages their own worker thread
shai-almog 8528f7a
Wearables: remove the last age-only claim prune
shai-almog 4a8b43e
Wearables: withdraw the local-removal marker when the delete fails
shai-almog e7da86d
Wearables: don't read a not-yet-run query as "not paired"; document t…
shai-almog f6124c3
Wearables: advance the paths generation even before a snapshot exists
shai-almog de799da
Wearables: stop pretending isPaired() can answer on a cold start
shai-almog 2ce83bc
Wearables: stop re-announcing an announced tombstone; one deadline sweep
shai-almog 488cc63
Wearables: replay durable values at startup too, and bound the negati…
shai-almog 5360832
Wearables: keep the startup value replay off local writes and let it …
shai-almog e46656a
Wearables: re-decide a tombstone acknowledgement under the lock; drop…
shai-almog 9120938
Wearables: replay removals across a restart, and don't orphan the wat…
shai-almog 8ac177d
Wearables: fix four faults in the tombstone work
shai-almog 58541f7
Wearables: record a suppressed local winner by the same rules as a di…
shai-almog 2261799
Wearables: coalesce parked deliveries by path; give the watch every p…
shai-almog a21d6aa
Wearables: remove the simulator tombstone before publishing its repla…
shai-almog 09184f4
Wearables: hand a discarded delivery back to the port; two simulator …
shai-almog d54a385
Wearables: give iOS a recovery handler, bound the dropped set, two to…
shai-almog 7fa88a7
Wearables: actually re-offer a forgotten iOS value; abort a removal t…
shai-almog 22cbe53
Wearables: ask for a rescan when recovery overflows; serialize the iO…
shai-almog 751ca26
Wearables: recover a dropped removal as a removal; translate the loca…
shai-almog 8f3a66b
Wearables: recover a discarded removal in core, where the information…
shai-almog 15c08af
Wearables: forget a tombstone's birth only once the publish succeeds
shai-almog 089bdd5
Wearables: say when a removal passes beyond recovery; keep an older t…
shai-almog 9fcefeb
Wearables: drop only the simulator connection whose write actually fa…
shai-almog c91066e
Wearables: fix a 16-bit count that erased large messages; mirror inje…
shai-almog 58d446d
Wearables: resolve watch purpose strings once, from both sources
shai-almog 2a046e1
Wearables: decode injected XML entities before re-emitting them
shai-almog b9ff0ba
Wearables: keep a simulator tombstone until the peer has seen it
shai-almog fb99556
Wearables: decode numeric XML references, one HealthKit verdict
shai-almog 04dc680
Wearables: one HealthKit expression, honour the false opt-out
shai-almog 4e1cbc3
Wearables: count the base HealthKit entitlement as usage
shai-almog aa5c3af
Wearables: announce deferred first-sight removals, bound the sentinels
shai-almog 2126715
Wearables: tie a tombstone acknowledgement to the tombstone
shai-almog ea6883e
Wearables: leave a sentinel after a stamped removal too
shai-almog ff217aa
Wearables: an empty acknowledgement confirms nothing
shai-almog a97128b
Wearables: four ordering and retention fixes
shai-almog b5d01df
Wearables: tombstone housekeeping runs, and retires the eldest
shai-almog 3c0abc3
Wearables: unit-test mode outranks the standalone watch lifecycle
shai-almog 591ee93
Wearables: do not retire a tombstone that has been replaced
shai-almog 0b81727
Wearables: keep the acknowledgement when the tombstone will not delete
shai-almog 0b7cff4
Wearables: one retention deadline, not one per transfer
shai-almog c9511a8
Wearables: an unreadable acknowledgement is not an unframed tombstone
shai-almog c36ab95
Wearables: clear two SpotBugs findings the outage kept hidden
shai-almog e006427
Wearables: clear the PMD gate, repark a delivery with no listener
shai-almog 4bf4cdb
Wearables: a republication cancels its own stale recovery record
shai-almog 08aeb87
Wearables: order deliveries against the backlog, not against timing
shai-almog File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -179,4 +179,5 @@ void superComplete(T value) { | |
| void superError(Throwable t) { | ||
| super.error(t); | ||
| } | ||
|
|
||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.