Skip to content

JetNews: stretch / "maybe" parity items (Navigation 3, SharedTransition, sample-side polish) #159

@jonathanpeppers

Description

@jonathanpeppers

Catch-all for JetNews upstream features that are too speculative / out-of-scope / sample-side to file individually. Use this as a parking lot — items can be promoted to standalone issues if/when they become priorities.

Recent progress: #207 landed the five easy sample-side wins (pull-to-refresh, snackbar bookmark feedback, share AlertDialog, inline OutlinedTextField search swap, Intent.ACTION_SEND helper). What is left on this tracker now needs real library work.

Library gaps (would need real bindings or design work)

  • Navigation 3 (androidx.navigation3) — JetNews uses NavDisplay + entryProvider + NavKey + rememberSceneState + rememberListDetailSceneStrategy. We currently have nothing in this namespace; our samples roll their own NavController shim. Big effort: would replace our nav layer wholesale.
  • List-detail two-pane scene (ListDetailScene.list(...) + rememberListDetailSceneStrategy) — depends on Navigation 3. Article opens in the right pane on expanded screens (master/detail).
  • SharedTransitionLayout + SharedTransitionScope — shared-element transitions across NavDisplay scenes (e.g. the article hero image flying from the list to the detail screen). Animation API binding.
  • Deep links (DeepLinkPattern + kotlinx.serialization)https://developer.android.com/jetnews/post/{id} opens the right article. Depends on Navigation 3 + a kotlinx-serialization story. (PR JetNews: pull-to-refresh, snackbar feedback, share dialog (and friends) — chips at #159 #207 builds a synthetic URL of this shape for the Intent.ACTION_SEND payload, so once deep links work the shared URL would actually resolve.)
  • Modifier.interceptKey(Key.Enter) — handles a specific hardware/IME key on a focused composable. Needed to make PR JetNews: pull-to-refresh, snackbar feedback, share dialog (and friends) — chips at #159 #207's OutlinedTextField search bar actually filter the feed on Enter. Niche modifier binding.
  • Glance app widget (androidx.glance) — entirely separate Jetpack toolkit; XML-less remote-views. Tracked elsewhere for Jetchat (Jetchat parity: API 26+ Settings/Widget drawer section + Glance app-widget discoverability #149); same blockers apply here.

Sample-side polish (no library gap; just JetNews work)

Why "maybe"

Several of these (Navigation 3, SharedTransition, Glance) would 2-3× the binding surface area for a single sample's benefit. Others (interceptKey, share intent) are tiny but niche. Promoting any item to its own issue is fine when there's a concrete need — until then, leaving them grouped avoids issue-tracker noise.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions