Skip to content

Wire PlatformContext's UiMediaScope to Owner - #3367

Merged
Igor Demin (igordmn) merged 2 commits into
jb-mainfrom
ivan.matkov/wire-mediascope
Sep 1, 2026
Merged

Igor Demin (igordmn) merged 2 commits into
jb-mainfrom
ivan.matkov/wire-mediascope

Conversation

@MatkovIvan

Copy link
Copy Markdown

#3339's follow-up
CMP-10709 Support mediaQuery, derivedMediaQuery

Release Notes

N/A

@igordmn

Copy link
Copy Markdown

}

val mediaScope = if (
!ComposeUiFlags.isMinimalistLocalsEnabled &&

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@igordmn
Igor Demin (igordmn) merged commit c9dc010 into jb-main Sep 1, 2026
32 of 33 checks passed
@igordmn
Igor Demin (igordmn) deleted the ivan.matkov/wire-mediascope branch September 1, 2026 13:37
Sajid Ali (sajidalidev) added a commit to sajidalidev/compose-multiplatform-core that referenced this pull request Sep 23, 2026
…duling and RootForTest wiring (JetBrains#2984, JetBrains#3288, JetBrains#3367)

Replay upstream's iOS scene changes from the 2026-09-02 rebase window onto the tvOS
copies via per-file 3-way merge (base = old iOS file, theirs = new iOS file, ours = tvOS):

- JetBrains#2984 (Compose hosting view sizing): ComposeContainer wires ComposeSceneSizing into
  view.onSizeThatFits / onIntrinsicContentSize and calls sceneSizing.onLayout();
  ComposeHostingView installs the intrinsic-content-size invalidation handler.
  ComposeSceneSizing.ios.kt is hoisted from iosMain to uiKitMain (pure move) so tvOS can
  use it. Because the tvOS scene runs at the squared "10-foot" density while the sizing
  bridge converts UIKit points with the view's screen density, the tvOS mediator's
  measureSceneSize rescales constraints in and the measured size out.
- JetBrains#3288 (interop update scheduling): mediators take schedulePendingInteropViewUpdates,
  expose needsComposeSceneDraw / retrievePendingViewUpdatesInteropTransaction, and the
  container/layers view controller pass MetalView's onDraw through to the redrawer.
- JetBrains#3367 (UiMediaScope / TaskDispatchers): PlatformContext.taskDispatchers is now abstract;
  the tvOS platform context provides Default/IO dispatchers. rootForTestListener plumbing
  (container, hosting view/controller, layer, mediator) mirrors iOS.

Unchanged on purpose: NavDisplay.tvos.kt keeps EnterTransition.None/ExitTransition.None
(JetBrains#3346 only mirrored iOS slide directions for RTL), the Siri Remote input path, and the
squared scene density for the root scene and every layer.
Sajid Ali (sajidalidev) added a commit to sajidalidev/compose-multiplatform-core that referenced this pull request Sep 23, 2026
…rains#3265 reset, JetBrains#3357, JetBrains#2984 sizing)

- Build modes: since JetBrains#3265 the AOSP-mode build.gradle files are pure AOSP, so all tvOS
  wiring lives in fork-mode files (plus the un-reset ui-uikit/ui-skiko/ui-backhandler
  build.gradle); document the scoped merge=ours driver that turns the ~10 build.gradle
  conflict stops into none.
- Step 4: new verification commands; JetBrains#3357 handling (Maven pins with tvOS variants, the
  navigationevent Google-coordinate swap, dropped publication groups).
- Step 5: fix the density grep (the real pattern is `screenScale * screenScale`); record the
  JetBrains#3367 taskDispatchers and JetBrains#2984 ComposeSceneSizing hoist / measureSceneSize rescale
  learnings and the "hoist anything only in iosMain" rule.
- Step 8: dated backup branch before promoting.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants