Skip to content
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 keyboard hiding when authorizing send transaction #21301

Closed
wants to merge 3 commits into from

Conversation

clauxx
Copy link
Member

@clauxx clauxx commented Sep 20, 2024

fixes #21250

Summary

When confirming the send amount in ...send.input-amount.view and attempting to authorize with the password in ...send.transaction-confirmation.view, the :wallet/get-suggested-routes-successs event would trigger a re-render which, in turn, hides the keyboard. Since we don't really need to have the routes calculated after the user confirmed the amount, we should stop the calculation before reaching the transaction confirmation screen. In case the user goes back to the amount input screen, the route calculation is started again.

Also, added the stopping of suggested routes calculations when closing the send flow (was already there for bridging).

Testing notes

This change affects both send and bridge.

Areas that maybe impacted

Functional
  • send
  • bridge

Steps to test

  • Open Status
  • Go to wallet account
  • Press send/bridge
  • Choose address & token
  • Input amount and wait for successful route (currently can only get this on testnet)
  • Confirm and proceed to confirmation and authorization with password
  • Slide to confirm and input password
  • The keyboard shouldn't hide on its own

status: ready

@status-im-auto
Copy link
Member

status-im-auto commented Sep 20, 2024

Jenkins Builds

Click to see older builds (4)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 7b0476e #1 2024-09-20 10:52:31 ~5 min tests 📄log
✔️ 7b0476e #1 2024-09-20 10:53:00 ~6 min android-e2e 🤖apk 📲
✔️ 7b0476e #1 2024-09-20 10:53:22 ~6 min android 🤖apk 📲
✔️ 7b0476e #1 2024-09-20 11:00:48 ~14 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 6e75bfa #2 2024-09-20 13:45:49 ~4 min tests 📄log
✔️ 6e75bfa #2 2024-09-20 13:48:20 ~7 min android 🤖apk 📲
✔️ 6e75bfa #2 2024-09-20 13:48:28 ~7 min android-e2e 🤖apk 📲
✔️ 6e75bfa #2 2024-09-20 13:53:36 ~12 min ios 📱ipa 📲
✔️ 4ace350 #3 2024-09-23 14:14:26 ~4 min tests 📄log
✔️ 4ace350 #3 2024-09-23 14:17:34 ~7 min android-e2e 🤖apk 📲
✔️ 4ace350 #3 2024-09-23 14:18:03 ~7 min android 🤖apk 📲
✔️ 4ace350 #3 2024-09-23 14:24:18 ~13 min ios 📱ipa 📲

Copy link
Contributor

@shivekkhurana shivekkhurana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

@VolodLytvynenko VolodLytvynenko self-assigned this Sep 23, 2024
@status-im-auto
Copy link
Member

86% of end-end tests have passed

Total executed tests: 7
Failed tests: 1
Expected to fail tests: 0
Passed tests: 6
IDs of failed tests: 703133 

Failed tests (1)

Click to expand
  • Rerun failed tests

  • Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133

    Device 1: Tap on found: ChatsTab
    Device 1: Find `Button` by `accessibility id`: `tab-contacts`

    critical/chats/test_public_chat_browsing.py:164: in test_restore_multiaccount_with_waku_backup_remove_switch
        self.home.contacts_tab.click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:84: in find_element
        raise exception
    ../views/base_element.py:77: in find_element
        return self.driver.find_element(self.by, self.locator)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:409: in find_element
        return self.execute(RemoteCommand.FIND_ELEMENT, {'using': by, 'value': value})['value']
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     An unknown server-side error occurred while processing the command. Original error: Timed out after 37758ms waiting for the root AccessibilityNodeInfo in the active window. Make sure the active window is not constantly hogging the main UI thread (e.g. the application is being idle long enough), so the accessibility manager could do its work
    E   Stacktrace:
    E   io.appium.uiautomator2.common.exceptions.UiAutomator2Exception: Timed out after 37758ms waiting for the root AccessibilityNodeInfo in the active window. Make sure the active window is not constantly hogging the main UI thread (e.g. the application is being idle long enough), so the accessibility manager could do its work
    E   	at io.appium.uiautomator2.utils.AXWindowHelpers.getActiveWindowRoot(AXWindowHelpers.java:84)
    E   	at io.appium.uiautomator2.utils.AXWindowHelpers.getCachedWindowRoots(AXWindowHelpers.java:152)
    E   	at io.appium.uiautomator2.model.internal.CustomUiDevice.findObject(CustomUiDevice.java:118)
    E   	at io.appium.uiautomator2.utils.ElementLocationHelpers.findElement(ElementLocationHelpers.java:150)
    E   	at io.appium.uiautomator2.handler.FindElement.safeHandle(FindElement.java:60)
    E   	at io.appium.uiautomator2.handler.request.SafeRequestHandler.handle(SafeRequestHandler.java:59)
    E   	at io.appium.uiautomator2.server.AppiumServlet.handleRequest(AppiumServlet.java:277)
    E   	at io.appium.uiautomator2.server.AppiumServlet.handleHttpRequest(AppiumServlet.java:271)
    E   	at io.appium.uiautomator2.http.ServerHandler.channelRead(ServerHandler.java:68)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:435)
    E   	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
    E   	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
    E   	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:250)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1294)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911)
    E   	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:611)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:552)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:466)
    E   	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:438)
    E   	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:140)
    E   	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
    E   	at java.lang.Thread.run(Thread.java:1012)
    



    Device sessions

    Passed tests (6)

    Click to expand

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_edit, id: 702843
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    2. test_wallet_send_eth, id: 727229

    @VolodLytvynenko
    Copy link
    Contributor

    Hi @clauxx thank you for the fixes. No issues from my side. PR is ready to be merged

    @clauxx
    Copy link
    Member Author

    clauxx commented Sep 23, 2024

    closing this in favor of the solution from @smohamedjavid, since it handles gas changes on the confirmation screen as well.

    cc: @VolodLytvynenko

    @clauxx clauxx closed this Sep 23, 2024
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Archived in project
    Development

    Successfully merging this pull request may close these issues.

    The сonfirmation keyboard auto-closes while entering the password
    4 participants