fix: Navigation bar translucency on Android#87810
fix: Navigation bar translucency on Android#87810chrispader wants to merge 8 commits intoExpensify:mainfrom
Conversation
|
|
|
@stitesExpensify Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f3c5ffbaa2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@chrispader Do we need any change in Mobile-Expensify repo too? |
|
@chrispader thanks, please also add a bit more detail when you have a minute |
… of github.com:margelo/Expensify into @chrispader/fix/navigation-bar-translucency-on-android
@mountiny @shubham1206agra updated the PR description and checklist. Also simplified the PR, so no changes to @shubham1206agra this is ready for review! Please note, the jump seen in the videos is not caused by my changes in the PR and also reproducible on |
|
🚧 @mountiny has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
@chrispader Is there any device restriction to repro this bug? As I am unable to repro the bug in my device. |
@shubham1206agra did you enable the three-button navigation bar? |
Yes |
|
@shubham1206agra what device and Android version are you on? I can reproduce this on a Samsung Galaxy S10e with Android 12 and Samsung Galaxy A14 5G with Android 15. The only restriction for this bug to be reproducible should be that it allows edge-to-edge mode, meaning Android 10 and above. The translucent scrim behind the three-button navigation bar might not be black/dark, but you should be able to see an overlay with a slightly different color than the background at least. |
I have sent the details on DM to Chris |
|
@chrispader what is the latest on this one? |
|
@shubham1206agra Are you willing to work on this one for $250? I would like to have Chris work on some other issues and this is hard for him to reproduce, while you seem to be able to repro |
|
@shubham1206agra if you're going to work on this, here is some context. The navigation bar translucency depends very much on the device, OEM and Android version. In d18a367 i removed some changes to the Android XML-styles, which we might still need for specific devices like yours. In order to fix the navbar translucency (and also the navbar buttons/icons color and contrast), you could just add back these style changes and start from there. I think this should be related to these styles, if not, we might need to find a similar fix in the React Native modal implementation, which i already updated in the patch. |
@mountiny
Explanation of Change
Problem
When a modal opens on Android, a translucent background color and style is applied to three-button navigation bar. Since we render a custom navigation bar overlay in JS, we don't want that background color to show.
Solution
This PR updates the
react-native+0.83.1+022+fix-modal-transparent-navigation-bar.patchand disables this native background style.mainScreen.Recording.2026-04-14.at.17.00.26.mov
Screen.Recording.2026-04-14.at.16.58.53.mov
Fixed Issues
$ #64241
PROPOSAL:
Tests
Offline tests
None needed.
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
mainScreen.Recording.2026-04-14.at.17.00.26.mov
Screen.Recording.2026-04-14.at.16.58.53.mov