Skip to content

[Due for payment 2026-04-30] Android - Chat - Composer is no longer highlighted after rotation, emoji picker does not open #87807

Closed

Description

@mitarachim

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


Version Number: 9.3.59-0
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from BrowserStack: #87338
Email or phone of affected tester (no customers): jsdjosidjiojisojio3@gmail.com
Issue reported by: Applause Internal Team
Bug source: Exploratory - Significant User Experience Deterioration
Device used: Samsung Galaxy S25 FE / Android 16
App Component: Chat Report View

Action Performed:

  1. Launch Expensify app.
  2. Go to any chat.
  3. Focus on composer.
  4. Rotate the device to landscape.
  5. Tap on the emoji picker.

Expected Result:

Composer will remain focused after rotation.
Emoji picker will open.

Actual Result:

Composer is no longer focused after rotation, even though keyboard  is opened.
Emoji picker does not open when composer is not highlighted and keyboard is opened.

Workaround:

Unknown

Platforms:

  • Android: App
  • Android: mWeb Chrome
  • iOS: App
  • iOS: mWeb Safari
  • iOS: mWeb Chrome
  • Windows: Chrome
  • MacOS: Chrome / Safari

Screenshots/Videos

Bug7129096_1776113731234.Screen_Recording_20260414_045415_Expensify.mp4

View all open jobs on GitHub

Issue OwnerCurrent Issue Owner: @mallenexpensify

Activity

  1. added
    BugSomething is broken. Auto assigns a BugZero manager.
    DeployBlockerIndicates it should block deploying the API
    on Apr 13, 2026
  2. melvin-bot commented on Apr 13, 2026

    @melvin-bot

    You have been assigned to this deploy blocker because you recently merged this PR: #87338

  3. melvin-bot commented on Apr 13, 2026

    @melvin-bot

    💬 A slack conversation has been started in #expensify-open-source

  4. github-actions commented on Apr 13, 2026

    @github-actions
    Contributor

    👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

    1. Identify the pull request that introduced this issue and revert it.
    2. Find someone who can quickly fix the issue.
    3. Fix the issue yourself.
  5. OSBotify commented on Apr 13, 2026

    @OSBotify
    Contributor

    Investigation Summary: Classification: Frontend bug. Causing PR: #87338 - Fix Different typing mode when rotating device from portrait to landscape by @GCyganek (High confidence). Related Issues: #87310. Recommendation: REVERT. PR #87338 changed disableFullscreenUI from conditionally applied only in landscape mode (disableFullscreenUI={isInLandscapeMode}) to always-on. While this fixed the original issue, it introduced a regression where the composer loses focus after rotation on Android, causing the emoji picker to fail to open. Assigned: @GCyganek (PR author), @truph01 and @mjasikowski (approving reviewers). Labels: DeployBlockerCash kept (Frontend/App bug), DeployBlocker removed (no backend involvement). Evidence: (1) melvin-bot linked PR #87338 in the issue. (2) The PR is in StagingDeployCash (merged 2026-04-10). (3) Reproducible on staging only - consistent with this PR being the cause. (4) Bug is specifically on Android native after rotation - the exact code path changed. Affected files: src/components/Composer/implementation/index.native.tsx and src/components/TextInput/BaseTextInput/implementation/index.native.tsx - both modified by PR #87338. Root Cause: The PR replaced disableFullscreenUI={isInLandscapeMode} with unconditional disableFullscreenUI in both Composer and BaseTextInput native implementations. On Android, always disabling fullscreen UI changes focus management during orientation changes, causing the composer to lose focus after rotation, which prevents the emoji picker from opening.

  6. 22 remaining items

  7. melvin-bot commented on Apr 28, 2026

    @melvin-bot

    @truph01 Huh... This is 4 days overdue. Who can take care of this?

  8. GCyganek commented on Apr 29, 2026

    @GCyganek
    Contributor

    deployed to production

  9. melvin-bot commented on Apr 29, 2026

    @melvin-bot

    Triggered auto assignment to @mallenexpensify (Awaiting Payment)

  10. melvin-bot commented on Apr 29, 2026

    @melvin-bot

    Triggered auto assignment to @mallenexpensify (Awaiting Payment)

  11. melvin-bot commented on Apr 29, 2026

    @melvin-bot

    Triggered auto assignment to @mallenexpensify (Awaiting Payment)

  12. melvin-bot commented on Apr 30, 2026

    @melvin-bot

    Payment Summary

    Upwork Job

    • Contributor: @rushatgabhane does not require payment (Contractor)
    • Contributor: @GCyganek does not require payment (Contractor)
    • Reviewer: @truph01 owed $250 via NewDot

    BugZero Checklist (@mallenexpensify)

    • (if NewFeature) I have created a PR for any necessary HelpDot updates, or I confirmed no updates are necessary.
    • I have verified the correct assignees and roles are listed above and updated the necessary manual offers
    • I have verified that there are no duplicate or incorrect contracts on Upwork for this job (https://www.upwork.com/ab/applicants//hired)
    • I have verified the PR was not reverted
    • I have applied any discounts due to bugs/regressions introduced by this PR
    • I have paid out the Upwork contracts or cancelled the ones that are incorrect
    • I have verified the payment summary above is correct
  13. truph01 commented on May 1, 2026

    @truph01
    Contributor

    @mallenexpensify We can close it and handle payment in parent issue

  14. mallenexpensify commented on May 1, 2026

    @mallenexpensify
    Contributor

    Thx @truph01 payment summary deleted

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

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionBugSomething is broken. Auto assigns a BugZero manager.DailyKSv2Engineering

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions