-
Notifications
You must be signed in to change notification settings - Fork 3k
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
[HOLD for payment 2023-09-06] [$1000] Android - Sign In - Get started below page is cut off if switch tab than come back to app & start typing #23718
Comments
Triggered auto assignment to @tjferriss ( |
Bug0 Triage Checklist (Main S/O)
|
ProposalPlease re-state the problem that we are trying to solve in this issue.Android - Sign In - Get started below page is cut off if switch tab than come back to app & start typing What is the root cause of that problem?we don't have the logic to scroll top if user start typing. On mweb platform, the input will be shown when users start typing but the whole What changes do you think we should make in order to solve the problem?
Change App/src/pages/signin/SignInPage.js Lines 147 to 155 in f8bc305
to
In order to prevent calling scrollPageToTop too many times we can check the scrollTop is 0 or not. If scrollTop is 0 we don't need to call scrollPageToTop What alternative solutions did you explore? (Optional)We can use |
@tjferriss Eep! 4 days overdue now. Issues have feelings too... |
Job added to Upwork: https://www.upwork.com/jobs/~010bbebff5900a82ee |
Current assignee @tjferriss is eligible for the External assigner, not assigning anyone new. |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @mollfpr ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.Keyboard is shown but textinput not visible, while switching back to the app from another app. What is the root cause of that problem?While switching between apps, when user switches back to the app then the textinput gets focused and keyboard is shown but the screen is positioned to where it was before leaving the app. Ideally if the keyboard is shown user should be scrolled to top of the screen. What changes do you think we should make in order to solve the problem?Add a listener for keyboard to check when it is shown and according to that we invoke Add listener for keyboard in src/pages/signin/SignInPageLayout/index.js
|
I try your solution, but doing the above suggestion makes the
If I scroll down the page slightly and then start typing, will that make the page jump up? I think we're looking at similar behavior from the mWeb.
|
ProposalPlease re-state the problem that we are trying to solve in this issue.The problem is that when we reopen the app on the SignInPage after clicking on a link, the app does not scroll back to the top like on mWeb. What is the root cause of that problem?We do not listen for when the app becomes active again. Rather, we use default scrolling whenever we start typing, which means that only the input field is scrolled into view when we type. What changes do you think we should make in order to solve the problem?If we want to replicate the behavior on mWeb, I suggest we use the Link to the AppStateMonitor: https://github.com/Expensify/App/blob/6730662b0c89c0f32045e57273ff39e0d78661a7/src/libs/AppStateMonitor/index.js Edit as of 2023-08-04 roughly 09:00 PM UTCTo be clear, at a high level I am proposing that we listen to the AppState, and when the AppState is set to active, we make sure the screen is at the top so that both the email input field and everything above is visible. This may be done by listening to the AppState directly, using the AppStateMonitor linked above, or perhaps using the Visibility lib which seems to have similar functionality. Regarding implementation, it may or may not include splitting the LoginForm into a base file and a platform-specific file (android or native, depending on whether or not this issue is present on ios). I will provide specific implementation details if we do decide to implement this. |
Thanks @joh42 for the proposal. I confirm that the issue is also happening on iOS, although we might want the page to go to the top only when the input is focused. Is it doable? |
Thanks for your reply @mollfpr. That makes sense, it might be confusing to users if the page scrolls even if the input field is not focused. I just threw together a quick test, and yes we can check if the input is focused when the app is opened: Screen.Recording.2023-08-05.at.22.39.49.movScreen.Recording.2023-08-05.at.22.40.13.mov |
Triggered auto assignment to @francoisl, see https://stackoverflow.com/c/expensify/questions/7972 for more details. |
Hi @mollfpr, There was no comment or feedback on my proposal, was it not reviewed. And I feel I have correctly identified the root cause and solution for this issue before @joh42. Would like to here your feedback. |
While I certainly agree that you identified the root cause as well @daanish-shaikh, listening to the keyboard wouldn't actually work (on my phone at least): XRecorder_07082023_095044.mp4The keyboard doesn't actually open when I go back to the app, even though the input field still has focus. For context I'm on a Oneplus running Android, and I tried with the default keyboard as well which behaved identically. |
@daanish-shaikh Sorry, I forget to post the feedback on your proposal. I already tested your proposal, but I feel using the |
I feel like this was almost not a bug in the first place (the text input is visible when you start typing), but since the behavior is already different on mWeb, let's go ahead and make it consistent on all platforms. +1 for joh42's solution, let's go with it. |
According to Slack @francoisl is OOO until the 28th. How do we proceed with the PR? @tjferriss @mollfpr |
I'm working on finding someone to review the PR. |
Based on my calculations, the pull request did not get merged within 3 working days of assignment. Please, check out my computations here:
On to the next one 🚀 |
The PR was merged to staging today. |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.3.58-5 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2023-09-06. 🎊 After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.
For reference, here are some details about the assignees on this issue: As a reminder, here are the bonuses/penalties that should be applied for any External issue:
|
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
PR was merged more than 9 days after the assignment so we'll have to apply the 50% penalty. @mollfpr can you please get started on the checklist when you get a chance? |
Sorry for this; I got sick the last few weeks 🙏
No offending PR; this is a feature request to scroll the page on native while the input is focused and the app back active.
The regression step should be enough.
Tests only for iOS and Android With focus
Without focus
|
We're all set for payments to go out tomorrow. |
@francoisl, @tjferriss, @luacmartins, @mollfpr, @joh42 Huh... This is 4 days overdue. Who can take care of this? |
@francoisl, @tjferriss, @luacmartins, @mollfpr, @joh42 Huh... This is 4 days overdue. Who can take care of this? |
@tjferriss are we done with payments? |
We are now. Regression test issue has also been created. So we're all set here. |
If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!
Action Performed:
Expected Result:
When start typing I should see the complete login page without any cut offs
Actual Result:
When start typing after Step 4 the login page is not scrolled to the top - "Get started below" page is cut off
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Version Number: 1.3.46-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Bug6142828_az_recorder_20230726_223014.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: