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

Enable user to share wallet address #18424

Closed
wants to merge 43 commits into from

Conversation

Pau1fitz
Copy link
Collaborator

@Pau1fitz Pau1fitz commented Jan 6, 2024

Fixes #17865

Share Screen -> Implement Share Wallet Address

Screen.Recording.2024-01-06.at.21.29.07.mov

Figma design

iOS
Android

Testing notes:
Navigate to the share screen
click on Wallet
user can see each wallet that to share address

@Pau1fitz Pau1fitz changed the title 17865 share wallet address Enable user to share wallet address Jan 6, 2024
@@ -0,0 +1,75 @@
(ns status-im.contexts.shell.share.profile.view
Copy link
Collaborator Author

@Pau1fitz Pau1fitz Jan 6, 2024

Choose a reason for hiding this comment

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

Created a new file share/profile/view and moved the profile code below, that was previously in share/view, to improve code organization and readability.

@@ -1,18 +1,14 @@
(ns status-im.contexts.shell.share.view
(:require
[clojure.string :as string]
Copy link
Collaborator Author

@Pau1fitz Pau1fitz Jan 6, 2024

Choose a reason for hiding this comment

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

The removed code in this file was moved to the new file above - share/profile/view

@pavloburykh
Copy link
Contributor

Thanks @pavloburykh you are right.

Do we always want to open in a new window tho? I am thinking if the current profile sharing behaviour should be on top of the current window? 🤔

If we do it on top of the current window (like it is currently implemented in this PR) user stays in the selected app and is not even redirected back to Status share screen after sending wallet address. That does not look user friendly IMO. Because in this case user needs to tap system back button couple of times until he is returned to initial Share wallet screen. Also It looks weird that after sharing wallet address User can continue interacting with selected app that is opened on top of Status app window.

@J-Son89
Copy link
Contributor

J-Son89 commented Jan 11, 2024

Thanks @pavloburykh you are right.

Do we always want to open in a new window tho? I am thinking if the current profile sharing behaviour should be on top of the current window? 🤔

If we do it on top of the current window (like it is currently implemented in this PR) user stays in the selected app and is not even redirected back to Status share screen after sending wallet address. That does not look user friendly IMO. Because in this case user needs to tap system back button couple of times until he is returned to initial Share wallet screen. Also It looks weird that after sharing wallet address User can continue interacting with selected app that is opened on top of Status app window.

@OmarBasem, is this a common issue to the wallet share screens? If so perhaps it is beyond the scope of this pr? 🤔

@pavloburykh
Copy link
Contributor

@OmarBasem, is this a common issue to the wallet share screens? If so perhaps it is beyond the scope of this pr? 🤔

@J-Son89 if by "wallet share screen" you mean this screen below - then the answer is yes. ISSUE 1 and ISSUE 3 are common. So probably those issues can be handled separately, not in scope of this PR.

photo_2024-01-11 15 38 22

@J-Son89
Copy link
Contributor

J-Son89 commented Jan 11, 2024

@OmarBasem, is this a common issue to the wallet share screens? If so perhaps it is beyond the scope of this pr? 🤔

@J-Son89 if by "wallet share screen" you mean this screen below - then the answer is yes. ISSUE 1 and ISSUE 3 are common. So probably those issues can be handled separately, not in scope of this PR.

photo_2024-01-11 15 38 22

Thanks @pavloburykh - yes exactly, I mean those screens. Ok perfect, sounds good 👌

@pavloburykh
Copy link
Contributor

Okay, so do I understand correctly that among all above issues we want to fix only ISSUE 2 in scope of this PR? Or ISSUE 2 is also considered not to be in scope? @OmarBasem @J-Son89

@J-Son89
Copy link
Contributor

J-Son89 commented Jan 11, 2024

Okay, so do I understand correctly that among all above issues we want to fix only ISSUE 2 in scope of this PR? Or ISSUE 2 is also considered not to be in scope? @OmarBasem @J-Son89

Oh issue 2 looks related to this pr 👌

@Pau1fitz
Copy link
Collaborator Author

Pau1fitz commented Jan 11, 2024

@J-Son89 Issue 1 has been fixed and tested by @pavloburykh

@Pau1fitz
Copy link
Collaborator Author

Pau1fitz commented Jan 11, 2024

@J-Son89 Issue 3 has also been fixed and tested by @pavloburykh

@status-im-auto
Copy link
Member

77% of end-end tests have passed

Total executed tests: 48
Failed tests: 9
Expected to fail tests: 2
Passed tests: 37
IDs of failed tests: 702845,702947,702958,702786,702809,702948,703629,702957,702936 
IDs of expected to fail tests: 702808,703503 

Failed tests (9)

Click to expand
  • Rerun failed tests

  • Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Test setup failed: activity_center/test_activity_center.py:270: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:435: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: 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_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:270: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:435: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: 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

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_leave, id: 702845

    Test setup failed: critical/chats/test_public_chat_browsing.py:838: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:435: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: 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_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:838: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:435: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: 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

    3. test_community_markdown_support, id: 702809

    Test setup failed: critical/chats/test_public_chat_browsing.py:838: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:435: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: 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_hashtag_links_to_community_channels, id: 702948

    Test setup failed: critical/chats/test_public_chat_browsing.py:838: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:435: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: 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:838: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:435: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: 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 
    

    [[Can't join a community if admin goes offline, https://github.com//issues/17678]]

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_admin_notification_accept_swipe, id: 702958

    Test setup failed: activity_center/test_activity_center.py:409: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:435: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: 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_activity_center_mentions, id: 702957

    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:409: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:435: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: 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

    Expected to fail tests (2)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. 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:324: in test_group_chat_offline_pn
        self.errors.verify_no_errors()
    base_test_case.py:191: 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 
    

    [[Data delivery issue]]

    Device sessions

    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]]

    Passed tests (37)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_reactions, id: 703202
    Device sessions

    2. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    3. test_group_chat_pin_messages, id: 702732
    Device sessions

    4. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    5. test_group_chat_mute_chat, id: 703495
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    2. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    3. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    4. test_community_undo_delete_message, id: 702869
    Device sessions

    5. test_community_mute_community_and_channel, id: 703382
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    2. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    3. test_add_contact_field_validation, id: 702777
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_edit_message, id: 702855
    Device sessions

    2. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    3. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    4. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    5. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    6. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    7. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    8. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    2. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    3. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    4. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    5. test_community_unread_messages_badge, id: 702841
    Device sessions

    6. test_community_message_delete, id: 702839
    Device sessions

    7. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    8. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    9. test_community_one_image_send_reply, id: 702859
    Device sessions

    10. test_community_message_edit, id: 702843
    Device sessions

    11. test_community_several_images_send_reply, id: 703194
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_deep_links, id: 702775
    Device sessions

    2. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    @pavloburykh
    Copy link
    Contributor

    Thank you @Pau1fitz

    So, here the summury:

    ISSUE 1 and 3 are fixed.
    ISSUE 4 and 5 will be fixed in #18452 and #18454

    ISSUE 2 is fixed partially: still can scroll QR up and down. We agreed to log this issue separately as it is device/IOS specific.

    telegram-cloud-document-2-5260607374435044659.mp4

    PR is ready for merge.

    @J-Son89
    Copy link
    Contributor

    J-Son89 commented Jan 15, 2024

    @Pau1fitz - I think you have to sign commits for the pr to be merged https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits

    @Pau1fitz
    Copy link
    Collaborator Author

    @J-Son89 I spoke to @flexsurfer about this and I am happy for a core dev to merge this on my behalf.

    @J-Son89 J-Son89 mentioned this pull request Jan 15, 2024
    @J-Son89
    Copy link
    Contributor

    J-Son89 commented Jan 15, 2024

    merged here: #18511

    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.

    Share Screen -> Implement Share Wallet Address
    8 participants