Skip to content

fix(mobile): prevent overlapping Android thread rows - #10901

Open
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/fix-android-thread-overlap
Open

fix(mobile): prevent overlapping Android thread rows#10901
none23 wants to merge 1 commit into
pingdotgg:mainfrom
none23:t3code/fix-android-thread-overlap

Conversation

@none23

@none23 none23 commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

What Changed

Use LegendList's ordinary row positioning and sizing on Android. Work-detail expansion reflows immediately there; iOS keeps its existing disclosure transitions.

Why

Fixes #5340. Long Android conversations can retain overlapping rows after switching threads or returning from another app. Even the existing zero-duration layout transition selects animated list containers. Keeping itemLayoutAnimation undefined on Android avoids that path consistently, without remounting the feed on resume.

Reproduced on a physical Redmi Note 8 Pro (Android 11) with the current native build and three seeded long conversations. With the change installed, eight thread switches and five returns from Android Settings kept messages separated. Mobile typecheck and targeted formatting/lint passed (lint has existing warnings outside this diff).

This only changes the shared Android thread feed. It applies across providers and connection modes; no server or contract changes are needed. Web, desktop, and iOS behavior is unchanged.

UI Changes

Before After
Before: overlapping Android thread rows After: Android thread rows use correct spacing

Video

Before

before-small.mp4

After

after-small.mp4

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Model: GPT-6. Harness: Codex.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Sep 9, 2026
@none23
none23 marked this pull request as ready for review September 9, 2026 06:36
@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 9b5a1eb9-cc4e-4a90-987e-4795460a5989

📥 Commits

Reviewing files that changed from the base of the PR and between 6c58362 and 66dc17e.

📒 Files selected for processing (1)
  • apps/mobile/src/features/threads/ThreadFeed.tsx

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

The thread feed now disables itemLayoutAnimation on Android. iOS retains its existing disclosure-settling and immediate layout transitions.

Changes

Thread feed layout animation

Layer / File(s) Summary
Platform-specific layout animation
apps/mobile/src/features/threads/ThreadFeed.tsx
Android now uses undefined for itemLayoutAnimation. iOS retains the existing transitions.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Severity of issue fixed: Medium

Merge Risk: ⚪ Minimal · up to 66dc1

Android thread rows now use standard layout positioning to prevent overlap after thread switches or app resumes, while iOS behavior remains unchanged. No merge-blocking risk is identified.

Suggested reviewers: juliusmarminge, sunkenintime, t3dotgg

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The change directly addresses issue #5340 by disabling Android item layout animation to prevent stale or overlapping thread row layouts after thread switches or app resumes. iOS behavior remains uncha…
Out of Scope Changes check ✅ Passed The changes are limited to the shared mobile thread feed and directly support the linked Android rendering fix. No unrelated code, platform behavior, server changes, or contract changes are included.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Title check ✅ Passed The title clearly identifies the main change: preventing overlapping Android thread rows. It is concise and specific.
Description check ✅ Passed The description is complete and follows the repository template. It explains the change, reason, scope, validation, and UI impact, and includes the required screenshots, videos, and checked checklist …
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Android thread content overlaps after switching directly between threads

1 participant