[Android] Scope preload state to per-cache entry - #455
Closed
markmur wants to merge 1 commit into
Closed
Conversation
This was referenced Jul 14, 2026
Contributor
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Package Size
Android file breakdown
Measured from the PR base SHA and PR head SHA. The file breakdown shows uncompressed sizes within each package artifact, so individual files do not sum to the compressed artifact total. This comment reports package artifact sizes only; it is not a final app binary-size report. |
markmur
force-pushed
the
android-preload-eviction
branch
from
July 15, 2026 12:06
4a8ed16 to
b789d74
Compare
markmur
force-pushed
the
android-preload-per-entry
branch
2 times, most recently
from
July 15, 2026 12:50
1e1dec2 to
0e75098
Compare
markmur
force-pushed
the
android-preload-eviction
branch
2 times, most recently
from
July 15, 2026 13:08
2a9e701 to
d81c123
Compare
markmur
force-pushed
the
android-preload-per-entry
branch
from
July 15, 2026 13:08
0e75098 to
121486f
Compare
markmur
force-pushed
the
android-preload-eviction
branch
from
July 15, 2026 13:09
d81c123 to
ccdc8c9
Compare
markmur
force-pushed
the
android-preload-per-entry
branch
from
July 15, 2026 13:09
121486f to
afdb47f
Compare
markmur
changed the base branch from
android-preload-eviction
to
graphite-base/455
July 15, 2026 14:42
markmur
force-pushed
the
android-preload-per-entry
branch
from
July 15, 2026 14:42
afdb47f to
174d3c9
Compare
markmur
force-pushed
the
graphite-base/455
branch
from
July 15, 2026 14:42
ccdc8c9 to
55ef015
Compare
markmur
changed the base branch from
graphite-base/455
to
android-preload-observability
July 15, 2026 14:42
markmur
force-pushed
the
android-preload-per-entry
branch
from
July 15, 2026 15:00
174d3c9 to
0e05590
Compare
markmur
force-pushed
the
android-preload-observability
branch
2 times, most recently
from
July 15, 2026 15:11
b59bb3e to
381d5ca
Compare
markmur
force-pushed
the
android-preload-per-entry
branch
2 times, most recently
from
July 15, 2026 16:01
1ae18db to
776e92b
Compare
markmur
force-pushed
the
android-preload-observability
branch
2 times, most recently
from
July 16, 2026 13:49
65a51ef to
3209276
Compare
markmur
force-pushed
the
android-preload-per-entry
branch
from
July 16, 2026 13:49
776e92b to
5e26617
Compare
markmur
force-pushed
the
android-preload-observability
branch
from
July 16, 2026 13:53
3209276 to
ec711d4
Compare
markmur
force-pushed
the
android-preload-per-entry
branch
2 times, most recently
from
July 16, 2026 14:18
e1e680f to
c640e93
Compare
markmur
force-pushed
the
android-preload-observability
branch
from
July 16, 2026 14:18
ec711d4 to
16dd07a
Compare
markmur
force-pushed
the
android-preload-per-entry
branch
from
July 16, 2026 15:09
c640e93 to
d799837
Compare
markmur
force-pushed
the
android-preload-observability
branch
2 times, most recently
from
July 16, 2026 15:20
880c148 to
f0af5fd
Compare
markmur
force-pushed
the
android-preload-per-entry
branch
2 times, most recently
from
July 16, 2026 15:48
a2a3439 to
4e9e834
Compare
markmur
force-pushed
the
android-preload-observability
branch
2 times, most recently
from
July 16, 2026 19:16
0c29857 to
3980889
Compare
markmur
force-pushed
the
android-preload-per-entry
branch
from
July 16, 2026 19:16
4e9e834 to
391cb55
Compare
markmur
force-pushed
the
android-preload-observability
branch
from
July 16, 2026 19:41
3980889 to
8410f99
Compare
markmur
force-pushed
the
android-preload-per-entry
branch
from
July 16, 2026 19:41
391cb55 to
6447416
Compare
Install this buildOpen Tophat, select your target device, then click Install. Links open on the Mac running Tophat.
Checkout Kit E2E results
|
markmur
force-pushed
the
android-preload-per-entry
branch
from
July 16, 2026 20:09
6447416 to
e035af9
Compare
markmur
changed the base branch from
android-preload-observability
to
graphite-base/455
July 17, 2026 10:18
Assisted-By: devx/b70e7b8f-da8f-499e-b860-2d4c3524f7c5
markmur
force-pushed
the
android-preload-per-entry
branch
from
July 17, 2026 10:25
e035af9 to
6a1fb1e
Compare
markmur
changed the base branch from
graphite-base/455
to
android-preload-observability
July 17, 2026 10:25
Contributor
Author
|
Closing - deferring until we actually need multi-slot |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

Promotes preload lifecycle state from cache-global to per-cache-entry, so each
CheckoutPreloadhandle reflects only the checkout it preloaded rather than a shared singleton state. TheEntrynow owns itsstateand weakobserver; the cache keeps a keyedhandlesregistry and transitions are view-guarded, so a navigation/error/eviction callback only mutates the entry that fired it. The cache stays single-slot today, but this removes the last cache-global coupling and is forward-compatible with a future multi-entry keyed cache.This is the Android port of #454 (Swift). Android has no keep-alive or scheduled-expiry timers, so this is a strict subset — only state + observer move onto the entry; expiry stays lazy in
take().Public API is unchanged (
apiCheckclean). Seedistinct keys observe independentlyin PreloadObservabilityTest for the behavior that regressed under the old shared-state model.