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: hardware induced back actions #20183

Merged
merged 24 commits into from
Jul 12, 2024
Merged

fix: hardware induced back actions #20183

merged 24 commits into from
Jul 12, 2024

Conversation

OmarBasem
Copy link
Contributor

@OmarBasem OmarBasem commented May 27, 2024

fixes: #20182

Summary

This PR fixes hardware induced back actions in wallet. Currently we had the on-close function to be called when pressing on the X button. This can cause bugs when navigation back using hardware button or swipe gesture. The on-close function need to be called on-unmount instead.

Demo

Example fix: currently in develop when disabling a network on send-amount screen then navigation back with hardware button, then going to send screen again, the network will stay disabled. The below video shows fix for that:

Screen_Recording_20240527_101000_Status.mp4

@OmarBasem OmarBasem self-assigned this May 27, 2024
@OmarBasem OmarBasem changed the title chore: hardware induced back action fix: hardware induced back action May 27, 2024
@status-im-auto
Copy link
Member

status-im-auto commented May 27, 2024

Jenkins Builds

Click to see older builds (57)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ c4263b0 #1 2024-05-27 06:15:28 ~6 min tests 📄log
✔️ c4263b0 #1 2024-05-27 06:15:36 ~6 min android-e2e 🤖apk 📲
✔️ c4263b0 #1 2024-05-27 06:19:24 ~10 min android 🤖apk 📲
✔️ c4263b0 #1 2024-05-27 06:19:31 ~10 min ios 📱ipa 📲
✔️ fe25882 #2 2024-05-28 05:57:29 ~4 min tests 📄log
✔️ fe25882 #2 2024-05-28 06:03:42 ~10 min ios 📱ipa 📲
✔️ fe25882 #2 2024-05-28 06:04:18 ~10 min android-e2e 🤖apk 📲
✔️ fe25882 #2 2024-05-28 06:04:22 ~11 min android 🤖apk 📲
✔️ 4a65605 #3 2024-05-30 05:29:19 ~3 min tests 📄log
✔️ 4a65605 #3 2024-05-30 05:36:21 ~10 min ios 📱ipa 📲
✔️ 4a65605 #3 2024-05-30 05:36:23 ~11 min android-e2e 🤖apk 📲
✔️ 4a65605 #3 2024-05-30 05:36:29 ~11 min android 🤖apk 📲
✔️ 374f1d1 #4 2024-06-10 05:35:31 ~4 min tests 📄log
✔️ 374f1d1 #4 2024-06-10 05:37:41 ~6 min android 🤖apk 📲
✔️ 374f1d1 #4 2024-06-10 05:38:18 ~7 min android-e2e 🤖apk 📲
✔️ 374f1d1 #4 2024-06-10 05:41:15 ~10 min ios 📱ipa 📲
f1ebbd4 #5 2024-06-10 07:39:34 ~2 min tests 📄log
✔️ f1ebbd4 #5 2024-06-10 07:43:48 ~7 min android-e2e 🤖apk 📲
✔️ f1ebbd4 #5 2024-06-10 07:43:56 ~7 min android 🤖apk 📲
✔️ f1ebbd4 #5 2024-06-10 07:50:01 ~13 min ios 📱ipa 📲
250a1ce #6 2024-06-11 05:20:33 ~2 min tests 📄log
✔️ 250a1ce #6 2024-06-11 05:24:02 ~6 min android 🤖apk 📲
✔️ 250a1ce #6 2024-06-11 05:24:49 ~7 min android-e2e 🤖apk 📲
✔️ 250a1ce #6 2024-06-11 05:27:38 ~9 min ios 📱ipa 📲
2cc2dce #7 2024-06-11 11:23:34 ~2 min tests 📄log
✔️ 2cc2dce #7 2024-06-11 11:28:15 ~7 min android 🤖apk 📲
✔️ 2cc2dce #7 2024-06-11 11:28:23 ~7 min android-e2e 🤖apk 📲
✔️ 2cc2dce #8 2024-06-11 11:45:06 ~13 min ios 📱ipa 📲
d13c328 #8 2024-06-14 04:20:56 ~2 min tests 📄log
✔️ 9051483 #10 2024-06-14 04:26:49 ~4 min tests 📄log
✔️ 9051483 #10 2024-06-14 04:28:37 ~6 min android-e2e 🤖apk 📲
✔️ 9051483 #10 2024-06-14 04:28:56 ~6 min android 🤖apk 📲
✔️ 9051483 #11 2024-06-14 04:32:18 ~9 min ios 📱ipa 📲
✔️ da636fa #11 2024-07-05 07:03:35 ~4 min tests 📄log
✔️ da636fa #11 2024-07-05 07:06:34 ~7 min android-e2e 🤖apk 📲
✔️ da636fa #11 2024-07-05 07:06:37 ~7 min android 🤖apk 📲
✔️ da636fa #12 2024-07-05 07:12:55 ~13 min ios 📱ipa 📲
✔️ 3e0fe37 #12 2024-07-05 07:51:14 ~4 min tests 📄log
✔️ 3e0fe37 #12 2024-07-05 07:52:41 ~6 min android-e2e 🤖apk 📲
✔️ 3e0fe37 #12 2024-07-05 07:54:12 ~7 min android 🤖apk 📲
✔️ 3e0fe37 #13 2024-07-05 08:08:48 ~22 min ios 📱ipa 📲
✔️ 6f72b5b #14 2024-07-08 04:30:48 ~4 min tests 📄log
✔️ 6f72b5b #14 2024-07-08 04:33:30 ~7 min android-e2e 🤖apk 📲
✔️ 6f72b5b #14 2024-07-08 04:33:37 ~7 min android 🤖apk 📲
✔️ 6f72b5b #15 2024-07-08 04:36:27 ~10 min ios 📱ipa 📲
✔️ 88aeba3 #15 2024-07-08 11:16:28 ~4 min tests 📄log
✔️ 88aeba3 #15 2024-07-08 11:17:50 ~6 min android 🤖apk 📲
✔️ 88aeba3 #15 2024-07-08 11:19:33 ~7 min android-e2e 🤖apk 📲
✔️ 88aeba3 #16 2024-07-08 11:21:39 ~10 min ios 📱ipa 📲
✔️ 9920057 #17 2024-07-10 04:49:16 ~4 min tests 📄log
✔️ 9920057 #17 2024-07-10 04:50:51 ~6 min android 🤖apk 📲
✔️ 9920057 #17 2024-07-10 04:52:10 ~7 min android-e2e 🤖apk 📲
✔️ 9920057 #18 2024-07-10 04:54:39 ~9 min ios 📱ipa 📲
✔️ e15fb28 #18 2024-07-10 08:46:22 ~5 min tests 📄log
✔️ e15fb28 #18 2024-07-10 08:47:42 ~7 min android-e2e 🤖apk 📲
✔️ e15fb28 #18 2024-07-10 08:47:59 ~7 min android 🤖apk 📲
✔️ e15fb28 #19 2024-07-10 08:50:46 ~10 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 3eaf935 #21 2024-07-11 10:12:30 ~5 min tests 📄log
✔️ 3eaf935 #21 2024-07-11 10:15:15 ~7 min android 🤖apk 📲
✔️ 3eaf935 #21 2024-07-11 10:15:37 ~8 min android-e2e 🤖apk 📲
✔️ 3eaf935 #22 2024-07-11 10:18:15 ~10 min ios 📱ipa 📲
✔️ 70e029a #22 2024-07-12 13:01:41 ~4 min tests 📄log
✔️ 70e029a #22 2024-07-12 13:03:39 ~6 min android 🤖apk 📲
✔️ 70e029a #22 2024-07-12 13:04:30 ~7 min android-e2e 🤖apk 📲
✔️ 70e029a #23 2024-07-12 13:07:40 ~10 min ios 📱ipa 📲

@OmarBasem OmarBasem changed the title fix: hardware induced back action fix: hardware induced back actions May 27, 2024
@J-Son89
Copy link
Contributor

J-Son89 commented May 27, 2024

should we add some other teams as a reviewer to this pr because whatever approach we take for this we should probably standardise across the app? 🤔

@OmarBasem
Copy link
Contributor Author

OmarBasem commented May 28, 2024

Hey @status-im/mobile-devs, I would appreciate someone from outside wallet having a look on this PR since that bug could be present in other parts of the app also. In this PR I fixed the on-close callings inside wallet, and I can make another PR for messenger and communities screens if needed.

@Parveshdhull
Copy link
Member

Parveshdhull commented May 28, 2024

Hi @OmarBasem, Thank you very much great work. PR lgtm 🎉

In this PR I fixed the on-close callings inside wallet, and I can make another PR for messenger and communities screens if needed.

I don't think the community has any on-close callback. The current solution in PR looks ok to me, but if you check https://github.com/status-im/status-mobile/pull/13379/files we used approach of registering/removing navigate-back-handler in mount/unmount for chat screen.

I don't remember technical details about why we did that but I do remember there were a few edge cases related to chat screen when timing was important. Like quickly reopening the chat screen and maybe un-mount getting dispatched at wrong time or something and ending up with blank chat etc. So current solution works, but probably more robust solution is to registering/removing navigate-back-handler in mount/unmount.

Probably @flexsurfer might have more info.

@flexsurfer
Copy link
Member

yes, this might lead to issues when closing and opening screen

@OmarBasem
Copy link
Contributor Author

OmarBasem commented May 28, 2024

Thanks for your input @Parveshdhull!

So current solution works, but probably more robust solution is to registering/removing navigate-back-handler in mount/unmount.

What about using swipe gesture on iOS? hw-back-add-listener does not handle that I think. (for chat screen we don't have swipe gesture, but for other screens we have swipe gesture)

cc @flexsurfer

@Parveshdhull
Copy link
Member

What about using swipe gesture on iOS? hw-back-add-listener does not handle that I think

Yes, ios is problematic. You can find more details in this PR reviews #16035.

Initialy I also opted for [:chat/close] on umount. But then we discussed that it can also fail, so finally decided to just disable swipe. So either we disable swipe or accept that it can sometime break.

@Parveshdhull
Copy link
Member

Maybe we can use both solutions 🤔. that way atleast android will be robust.

@OmarBasem
Copy link
Contributor Author

OmarBasem commented May 29, 2024

so finally decided to just disable swipe

@Parveshdhull I think this is not ideal. Personally as an iOS user I always use gestures for navigating. I rarely use top bar buttons.

Maybe we can use both solutions 🤔. that way atleast android will be robust.

I don't think this is ideal either, it introduces complexities to the code. I think the way it is okay for now (I also think that exiting and re-entering the screen quickly is likely to happen more on chat screen than other screens). I have opened an issue to investigate that problem further and find a more robust solution that works on both platforms #20226 👍

@status-im-auto
Copy link
Member

37% of end-end tests have passed

Total executed tests: 52
Failed tests: 29
Expected to fail tests: 4
Passed tests: 19
IDs of failed tests: 727230,702809,702733,703194,702859,703133,704613,702957,702840,703086,702948,702894,702850,704615,727229,702936,703202,702786,702839,702947,702838,702844,702843,702808,702845,702775,702958,703629,702841 
IDs of expected to fail tests: 703495,703503,702807,727232 

Failed tests (29)

Click to expand
  • Rerun failed tests

  • Class TestActivityMultipleDevicePR:

    1. test_navigation_jump_to, id: 702936

    Device 2: Find `Text` by `xpath`: `//android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'https://status.app/c/')]`
    Device 2: Wait for element `Button` for max 120s and click when it is available

    Test setup failed: activity_center/test_activity_center.py:282: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    2. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947

    Test setup failed: activity_center/test_activity_center.py:282: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809

    Test setup failed: critical/chats/test_public_chat_browsing.py:839: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    2. test_community_hashtag_links_to_community_channels, id: 702948

    Test setup failed: critical/chats/test_public_chat_browsing.py:839: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    3. test_community_mentions_push_notification, id: 702786

    Device 2: Find Text by xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'https://status.app/c/')]
    Device 2: Wait for element Button for max 120s and click when it is available

    Test setup failed: critical/chats/test_public_chat_browsing.py:839: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    4. test_community_leave, id: 702845

    Test setup failed: critical/chats/test_public_chat_browsing.py:839: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    5. test_community_join_when_node_owner_offline, id: 703629

    Test setup failed: critical/chats/test_public_chat_browsing.py:839: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957

    Device 1: Tap on found: Button
    Device 1: Find Button by xpath: //*[@content-desc='user-avatar']/following-sibling::android.widget.TextView[@text='user2']

    Test setup failed: activity_center/test_activity_center.py:417: in prepare_devices
        self.community_1.invite_to_community(self.community_name, self.username_2)
    ../views/chat_view.py:487: in invite_to_community
        Button(self.driver, xpath=xpath).click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//*[@content-desc='user-avatar']/following-sibling::android.widget.TextView[@text='user2']` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958

    Test setup failed: activity_center/test_activity_center.py:417: in prepare_devices
        self.community_1.invite_to_community(self.community_name, self.username_2)
    ../views/chat_view.py:487: in invite_to_community
        Button(self.driver, xpath=xpath).click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//*[@content-desc='user-avatar']/following-sibling::android.widget.TextView[@text='user2']` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Class TestCommunityMultipleDeviceMerged:

    1. test_community_several_images_send_reply, id: 703194

    Test setup failed: critical/chats/test_public_chat_browsing.py:323: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    2. test_community_one_image_send_reply, id: 702859

    Test setup failed: critical/chats/test_public_chat_browsing.py:323: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    3. test_community_emoji_send_copy_paste_reply, id: 702840

    Test setup failed: critical/chats/test_public_chat_browsing.py:323: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    4. test_community_mark_all_messages_as_read, id: 703086

    Test setup failed: critical/chats/test_public_chat_browsing.py:323: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    5. test_community_contact_block_unblock_offline, id: 702894

    Test setup failed: critical/chats/test_public_chat_browsing.py:323: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    6. test_community_edit_delete_message_when_offline, id: 704615

    Test setup failed: critical/chats/test_public_chat_browsing.py:323: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    7. test_community_message_delete, id: 702839

    Test setup failed: critical/chats/test_public_chat_browsing.py:323: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    8. test_community_message_send_check_timestamps_sender_username, id: 702838

    Device 2: Find Text by xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'https://status.app/c/')]
    Device 2: Wait for element Button for max 120s and click when it is available

    Test setup failed: critical/chats/test_public_chat_browsing.py:323: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    9. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844

    Test setup failed: critical/chats/test_public_chat_browsing.py:323: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    10. test_community_message_edit, id: 702843

    Test setup failed: critical/chats/test_public_chat_browsing.py:323: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    11. test_community_unread_messages_badge, id: 702841

    Test setup failed: critical/chats/test_public_chat_browsing.py:323: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:420: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613

    Device 1: Find Button by xpath: //*[@text="open community"]
    Device 1: Tap on found: Button

    critical/test_deep_and_universal_links.py:70: in test_links_open_universal_links_from_chat
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Community 'e2e community token-gated' was not requested to join by the url https://status.app/c/G0IAAGRy3S0pLm1NeQ91pwKgFaFGoIlkxXmDxITXXi3KdZ7vpb9-ERczhqwoFwMK6sCPnKwA#zQ3shtJ8A3rxUZWcfWDL3vKYQBt3jMPTuf44dJUGfjZjsek66
    E    Community 'Open community for e2e' was not requested to join by the url https://status.app/c/GzwAAGS9TbI9CiYaoZj0TRNelWAPwk8gSHIEmqgqb0ADPw5rnFvk6bp_n3BlZxVMshmxFyI=#zQ3shkrmSmwb66sw2EuUvC5iqiNqEeevTfjtks3p8ZaaCYoNj
    E    Community 'Closed community' was not requested to join by the url https://status.app/c/GzAAAORtwyW4xNWM4td0F7hOnYZ1apSqCCRUUR0qxD19n3Ec97fX_aIVIGFWbdUM#zQ3shk6dgK8dYWWSC4m8Jj5c91zyfhfj1fFkgypS8D9gsXkrK
    



    Device sessions

    2. test_links_deep_links, id: 702775

    Device 1: Find BrowserTab by accessibility id: browser-stack-tab
    Device 1: Tap on found: BrowserTab

    critical/test_deep_and_universal_links.py:114: in test_links_deep_links
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Community 'e2e community token-gated' was not requested to join by the deep link status.app://c/G0IAAGRy3S0pLm1NeQ91pwKgFaFGoIlkxXmDxITXXi3KdZ7vpb9-ERczhqwoFwMK6sCPnKwA#zQ3shtJ8A3rxUZWcfWDL3vKYQBt3jMPTuf44dJUGfjZjsek66
    E    Community 'Open community for e2e' was not requested to join by the deep link status.app://c/GzwAAGS9TbI9CiYaoZj0TRNelWAPwk8gSHIEmqgqb0ADPw5rnFvk6bp_n3BlZxVMshmxFyI=#zQ3shkrmSmwb66sw2EuUvC5iqiNqEeevTfjtks3p8ZaaCYoNj
    E    Community 'Closed community' was not requested to join by the deep link status.app://c/GzAAAORtwyW4xNWM4td0F7hOnYZ1apSqCCRUUR0qxD19n3Ec97fX_aIVIGFWbdUM#zQ3shk6dgK8dYWWSC4m8Jj5c91zyfhfj1fFkgypS8D9gsXkrK
    



    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_text_message_delete_push_disappear, id: 702733

    Device 2: Tap on found: Button
    Device 1: Getting PN by 'DELETE ME'

    critical/chats/test_1_1_public_chats.py:520: in test_1_1_chat_text_message_delete_push_disappear
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Message status was not changed to 'Delivered' after 60 s
    



    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_decline, id: 702850

    Device 2: Find Button by accessibility id: close-activity-center
    Device 2: Tap on found: Button

    activity_center/test_activity_center.py:95: in test_activity_center_contact_request_decline
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Pending contact request is not shown on unread notification element on Activity center!
    



    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_reactions, id: 703202

    Device 1: Find Button by accessibility id: authors-for-reaction-5
    Device 1: Tap on found: Button

    critical/chats/test_group_chat.py:213: in test_group_chat_reactions
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Incorrect reactions count for user admin after changing the reactions
    E    Incorrect reactions count after relogin
    E    Incorrect users are shown for 'thumbs-up' reaction after relogin.
    



    Device sessions

    2. test_group_chat_offline_pn, id: 702808

    Device 3: Looking for a message by text: message from old member
    Device 3: Looking for a message by text: message from new member

    critical/chats/test_group_chat.py:326: in test_group_chat_offline_pn
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Messages PN was not fetched from offline
    E    message from old member if not shown for device 0
    E    message from new member if not shown for device 0
    



    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133

    Device 1: Find Button by accessibility id: show-profiles
    Device 1: Tap on found: Button

    critical/chats/test_public_chat_browsing.py:277: in test_restore_multiaccount_with_waku_backup_remove_switch
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     zQ3...dWXh5 was not restored as a contact from waku backup!
    E    zQ3...Vacac was not restored as a contact from waku backup!
    E    admin_open was not restored from waku-backup!!
    E    member_open was not restored from waku-backup!!
    E    admin_closed was not restored from waku-backup!!
    E    member_closed was not restored from waku-backup!!
    



    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    # STEP: Getting ETH amount in the wallet of the sender before transaction
    Device 1: Find WalletTab by accessibility id: wallet-stack-tab

    critical/test_wallet.py:120: in test_wallet_send_asset_from_drawer
        sender_balance, receiver_balance, eth_amount_sender, eth_amount_receiver = self._get_balances_before_tx()
    critical/test_wallet.py:41: in _get_balances_before_tx
        self.wallet_1.wallet_tab.click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: WalletTab by accessibility id: `wallet-stack-tab` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    2. test_wallet_send_eth, id: 727229

    Device 1: Swiping right on element SlideButton
    Device 1: Find SlideButton by xpath: //*[@resource-id='slide-button-track']

    critical/test_wallet.py:111: in test_wallet_send_eth
        self.wallet_1.send_asset(address=self.receiver['address'], asset_name='Ether', amount=amount_to_send)
    ../views/wallet_view.py:100: in send_asset
        self.confirm_transaction()
    ../views/wallet_view.py:87: in confirm_transaction
        self.slide_and_confirm_with_password()
    ../views/wallet_view.py:81: in slide_and_confirm_with_password
        self.slide_button_track.slide()
    ../views/base_view.py:257: in slide
        self.swipe_right_on_element(width_percentage=1.3, start_x=100)
    ../views/base_element.py:308: in swipe_right_on_element
        location, size = self.get_element_coordinates()
    ../views/base_element.py:294: in get_element_coordinates
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: SlideButton by xpath: `//*[@resource-id='slide-button-track']` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Expected to fail tests (4)

    Click to expand

    Class TestCommunityOneDeviceMerged:

    1. test_community_discovery, id: 703503

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Curated communities not loading, https://github.com//issues/17852]]

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_mute_chat, id: 703495

    # STEP: Change device time so chat will be unmuted by timer
    Device 2: Long press on ChatElement

    critical/chats/test_group_chat.py:466: in test_group_chat_mute_chat
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Message text 'Text message in the muted chat' is not shown in chat preview after mute
    E    Message 'Text message in the muted chat' is not shown in chat for member_1 after mute
    E    Chat is still muted after timeout 
    

    [[Chat is not unmuted after expected time: https://github.com//issues/19627]]

    Device sessions

    2. test_group_chat_join_send_text_messages_push, id: 702807

    Device 2: Find Text by xpath: //*[starts-with(@text,'Hey, admin!')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']//*[@content-desc='message-status']/android.widget.TextView
    Device 2: Text is Sent

    critical/chats/test_group_chat.py:97: in test_group_chat_join_send_text_messages_push
        self.chats[1].chat_element_by_text(message_to_admin).wait_for_status_to_be('Delivered', timeout=120)
    ../views/chat_view.py:225: in wait_for_status_to_be
        raise TimeoutException("Message status was not changed to %s, it's %s" % (expected_status, current_status))
     Message status was not changed to Delivered, it's Sent 
    

    [[Issue with a message status - Sent instead of Delivered, https://github.com//issues/20126]]

    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_watch_only_account, id: 727232

    Device 1: Text is 0x8d2413447ff297d30bdc475f6d5cb00254685aae
    Device 1: Click system back button

    critical/test_wallet.py:214: in test_wallet_add_remove_watch_only_account
        self.home_view.driver.fail(
    base_test_case.py:178: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
     Device 1: Incorrect address '0x8d2413447ff297d30bdc475f6d5cb00254685aae' is shown when swiping between accounts, expected one is '0x8d2413447ff297d30bdc475f6d5cb00254685aae' 
    

    [[Missing networks in account address, https://github.com//issues/20166]]

    Device sessions

    Passed tests (19)

    Click to expand

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    2. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    3. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    4. test_1_1_chat_edit_message, id: 702855
    Device sessions

    5. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    6. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    7. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_add_contact_field_validation, id: 702777
    Device sessions

    2. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_pin_messages, id: 702732
    Device sessions

    2. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    2. test_community_undo_delete_message, id: 702869
    Device sessions

    3. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    4. test_community_mute_community_and_channel, id: 703382
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    @ulisesmac
    Copy link
    Contributor

    @OmarBasem

    Maybe we should remove the request-manual-qa lable until a reliable solution is found? and also move this PR to draft

    @OmarBasem
    Copy link
    Contributor Author

    hi @OmarBasem issues are fixed. PR is ready to be merged. Thank you for your hard work and patience!

    Finally!! Thank you @VolodLytvynenko for your testing and patience also! :)

    @OmarBasem OmarBasem merged commit 0e6d59b into develop Jul 12, 2024
    6 checks passed
    @OmarBasem OmarBasem deleted the fix/back-unmount branch July 12, 2024 13:09
    yevh-berdnyk pushed a commit that referenced this pull request Jul 14, 2024
    * fix: hardware induced back actions (#20183)
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Archived in project
    Archived in project
    Development

    Successfully merging this pull request may close these issues.

    Call on-close for hardware induced back actions
    10 participants