-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Android 2FA - Input field hides behind the keyboard #30227
Conversation
@allroundexperts 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] |
Reviewer Checklist
Screenshots/VideosWebScreen.Recording.2023-10-26.at.10.05.33.AM.movMobile Web - ChromeScreen.Recording.2023-10-26.at.10.13.22.AM.movMobile Web - SafariScreen.Recording.2023-10-26.at.10.11.34.AM.moviOSScreen.Recording.2023-10-26.at.10.12.13.AM.movAndroidScreen.Recording.2023-10-26.at.10.14.21.AM.mov |
@akinwale This is causing the layout to change in desktop web: |
@allroundexperts Yes, this is what is expected to happen with a fixed footer. The other option is to implement the Solution 3 of the proposal which wouldn't require too many changes to the code. cc @roryabraham |
That is some what acceptable. But please compare image 1 in my both comments. I don't think that has much to do with the fixed footer. |
Yeah, the fixed footer was moved out of the scrollview, so the content of the scrollview will be scrolled separately. For Android, this is necessary because if the magic code input is included in the content of the scrollview, the soft keyboard will cover the input when it's opened. Another alternative would be to make the layout change Android-specific by implementing |
Have you compared the first two images @akinwale? |
Yes, I have. You're referring to the content below the QR code being cut off when the window height reduces, right? Or are you talking about something else? |
Look closely the first images only. I'm talking about the position of the input. With your changes, its bottom aligned. |
Yes. That is expected. The magic code input is above the button in the fixed footer, so it will remain bottom-aligned, because the fixed footer is always at the bottom. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. @roryabraham Please look at the screen recordings and verify if this is indeed the expected behaviour!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍🏼
I think this is how FixedFooter
is intended to be used
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
Performance Comparison Report 📊Significant Changes To Duration
Show details
Meaningless Changes To DurationShow entries
Show details
|
@Expensify/mobile-deployers 📣 Please look into this performance regression as it's a deploy blocker. |
🚀 Deployed to staging by https://github.com/roryabraham in version: 1.3.92-0 🚀
|
🚀 Deployed to production by https://github.com/Beamanator in version: 1.3.92-4 🚀
|
🚀 Deployed to staging by https://github.com/roryabraham in version: 1.3.93-0 🚀
|
🚀 Deployed to production by https://github.com/Beamanator in version: 1.3.93-1 🚀
|
Details
Moves the magic code input field out of the scroll view to a fixed footer at the bottom of the screen so that the KeyboardAvoidingView on Android can make proper adjustments when the soft keyboard opens.
Fixed Issues
$ #26695
PROPOSAL: #26695 (comment)
Tests
Offline tests
N/A
QA Steps
Same as tests.
PR Author Checklist
### Fixed Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)myBool && <MyComponent />
.src/languages/*
files and using the translation methodWaiting for Copy
label for a copy review on the original GH to get the correct copy.STYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)/** comment above it */
this
properly so there are no scoping issues (i.e. foronClick={this.submit}
the methodthis.submit
should be bound tothis
in the constructor)this
are necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);
ifthis.submit
is never passed to a component event handler likeonClick
)StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)ScrollView
component to make it scrollable when more elements are added to the page.main
branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTest
steps.Screenshots/Videos
Android: Native
26695-android-native.webm
Android: mWeb Chrome
26695-android-chrome.webm
iOS: Native
26695-ios-native.mp4
iOS: mWeb Safari
26695-ios-safari.mp4
MacOS: Chrome / Safari
MacOS: Desktop