Skip to content

fix: reduce bottom-tab switching jank#514

Merged
barrydeen merged 1 commit intomainfrom
fix/tab-switch-jank
May 4, 2026
Merged

fix: reduce bottom-tab switching jank#514
barrydeen merged 1 commit intomainfrom
fix/tab-switch-jank

Conversation

@barrydeen
Copy link
Copy Markdown
Owner

Summary

  • preserve top-level bottom-tab destinations so Home, Notifications, DMs, Search, and Wallet restore existing UI state instead of rebuilding on each switch
  • throttle DM/notification refresh requests on quick re-entry so tab bouncing does not immediately re-subscribe inbox streams
  • target the lag and occasional hangs reported on older phones when switching back and forth between tabs

Testing

  • ./gradlew assembleDebug could not be completed in this environment because Gradle is running on Java 8 while this project requires JDK 17+

Restore top-level tab destinations instead of recreating them on each tap, and avoid immediately resubscribing inbox streams when users bounce between tabs. This reduces navigation jank and repeated hangs on slower devices.
@barrydeen barrydeen merged commit de7af45 into main May 4, 2026
dmnyc pushed a commit to dmnyc/wisp that referenced this pull request May 6, 2026
PR barrydeen#514 changed the bottom-nav handler to use popUpTo with the graph's
start destination plus saveState/restoreState. Two regressions resulted:

- Tapping a tab restored the tab's saved back stack, returning the user
  to a previously-open thread instead of the tab's main screen.
- The graph's start destination (LOADING) is popped inclusive on first
  successful load, so popUpTo never matched. The resulting back-stack
  state could surface the splash/auth screen on system back from
  Notifications.

Revert that block to popUpTo(FEED) { inclusive = false } + launchSingleTop,
which always lands the user on the tab's main screen with a shallow stack.
The refreshDmsAndNotifications() throttle introduced alongside the broken
nav block is preserved — that part addresses real REQ churn jank and is
independent of how the back stack is structured.
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.

1 participant