Edured-101: Changing the screens layout so that when the keyboard is … #94
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Short Description of Change
Correctly handle window insets for keyboard on input fields/forms: makes sure the keyboard doesn't hide important buttons and that the keyboard is shown when the screen is opened when required.
Changes
Motivation and Context
Edured-101: Changing the screens layout so that when the keyboard is visible, any input fields and/or buttons are still visible. To make this happen, the top bar will exclude handling the window insets for the navigation bars and ime and pass the content padding like the standard scaffold.
Moreover, the keyboard state can be observed as a state and elements in the screen can be hidden/made visible based on the keyboard state. This is preferable over handling it via focusevents because the focus request/status are asynchronous and can easily result in an unwanted state when there is more than one focusable input field.
Button must require specific height, otherwise height becomes 0 when keyboard is shown.
Screens impacted: DeleteAccountFirstConfirmScreen, ManageAccountScreen, OauthScreen, RequestEduIdEmailSentScreen, RequestEduIdStartScreen, SecurityScreen, WelcomeStartScreen, TwoFactorKeyScreen, TwoFactorKeyDeleteScreen, RequestAuthenticationScreen, DeepLinkScreen, AuthenticationCompletedScreen, PersonalInfoScreen, DataAndActivityScreen,RequestEduIdCreatedScreen, EnableBiometricScreen
Automatically showing keyboard, focus on input field, submit button(s) visible:
DeleteAccountSecondConfirmScreen, EditNameScreen, PhoneRequestCodeScreen, RequestEduIdFormScreen,
ConfirmCodeScreen(Added automatic paste of the sms code. That is why the keyboard is not automatically shown for the confirm sms code screen, it's either or.), ResetPasswordConfirmScreen(includes animating visibility for title & spacing to make room for keyboard & button), RequestEduIdCreatedScreen,
AuthenticationPinBiometricScreen: show keyboard when biometric is skipped or fails. Makes sure buttons are visible above the keyboard. Making sure the PIN input during enrollment is also correct.
Other fixes:
Fixed correctly showing error messages for during registration
Correct the ripple animation by applying the padding to the right elements
Fix issue with capitalized letter for email field
Edured-110: only show number's keyboard on the PIN input screens
Testing Steps
proper_insets.mp4
Additional Information