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

Add screen for key-pairs and accounts inside wallet settings #19912

Merged
merged 28 commits into from May 10, 2024

Conversation

seanstrom
Copy link
Member

@seanstrom seanstrom commented May 6, 2024

fixes #19915
fixes #19916

Summary

  • This PR attempts to add the initial UI for the Wallet Settings - Key pairs and accounts screen
    • The initial includes the logic and view for displaying key pairs and accounts, but not logic for the managing the items.
      • This was done so we can start sharing the work related to managing key pairs/accounts and this screen is needed as a starting point for other features.
    • This PR also adds a feature flag for the wallet settings, which is disabled by default. This flag should allow us to merge this initial UI and other PRs safely without needing a complete design review. Eventually when we start releasing functionality we can remove the feature-flag or selectively choose what should still be feature flagged.

Platforms

  • Android
  • iOS

Areas that maybe impacted

Functional
  • Wallet Settings
    • Key pairs and accounts

Steps to test

  • Open the status mobile app
  • Open the user profile settings menu
  • Ensure the feature-flag for wallet-settings is activated
  • Ensure the feature-flag for keypairs-and-accounts is activated
  • Open the wallet settings
  • Open the "Key pairs and accounts" settings inside wallet settings
  • Press on the action menu icon for a key-pair item

Before and after screenshots comparison

After Changes - Initial UI for displaying key-pairs with accounts, along with opening the action-menu.

Screen.Recording.2024-05-09.at.11.05.36.mov

status: ready

@status-im-auto
Copy link
Member

status-im-auto commented May 6, 2024

Jenkins Builds

Click to see older builds (75)
Commit #️⃣ Finished (UTC) Duration Platform Result
c8d50a0 #1 2024-05-06 13:05:27 ~2 min tests 📄log
✔️ 93bd94f #2 2024-05-06 13:14:05 ~4 min tests 📄log
✔️ 93bd94f #2 2024-05-06 13:16:01 ~6 min android-e2e 🤖apk 📲
✔️ 93bd94f #2 2024-05-06 13:16:04 ~7 min android 🤖apk 📲
✔️ 93bd94f #2 2024-05-06 13:20:17 ~11 min ios 📱ipa 📲
✔️ 781bbbd #3 2024-05-06 13:46:40 ~3 min tests 📄log
✔️ 781bbbd #3 2024-05-06 13:54:04 ~11 min ios 📱ipa 📲
✔️ 781bbbd #3 2024-05-06 13:54:18 ~11 min android-e2e 🤖apk 📲
✔️ 781bbbd #3 2024-05-06 13:54:34 ~11 min android 🤖apk 📲
✔️ 9f47bb3 #4 2024-05-06 15:33:35 ~4 min tests 📄log
✔️ 1798bd7 #5 2024-05-06 15:40:19 ~5 min tests 📄log
✔️ 1798bd7 #5 2024-05-06 15:41:15 ~6 min android-e2e 🤖apk 📲
✔️ 1798bd7 #5 2024-05-06 15:41:31 ~6 min android 🤖apk 📲
✔️ 1798bd7 #5 2024-05-06 15:44:12 ~9 min ios 📱ipa 📲
✔️ 6c0c307 #6 2024-05-07 08:23:54 ~5 min android-e2e 🤖apk 📲
✔️ 6c0c307 #6 2024-05-07 08:24:17 ~6 min tests 📄log
✔️ 6c0c307 #6 2024-05-07 08:27:36 ~9 min ios 📱ipa 📲
✔️ 6c0c307 #6 2024-05-07 08:29:20 ~11 min android 🤖apk 📲
945d5d8 #8 2024-05-08 09:13:20 ~10 min tests 📄log
945d5d8 #8 2024-05-08 09:13:22 ~10 min android 📄log
✔️ 945d5d8 #8 2024-05-08 09:14:03 ~11 min ios 📱ipa 📲
✔️ a6ca4c1 #9 2024-05-08 10:02:48 ~9 min ios 📱ipa 📲
✔️ a6ca4c1 #9 2024-05-08 10:03:50 ~10 min android-e2e 🤖apk 📲
✔️ a6ca4c1 #9 2024-05-08 10:03:53 ~10 min android 🤖apk 📲
a6ca4c1 #9 2024-05-08 10:03:58 ~10 min tests 📄log
✔️ 19b0d9b #10 2024-05-08 10:54:37 ~5 min tests 📄log
✔️ 19b0d9b #10 2024-05-08 10:55:49 ~6 min android-e2e 🤖apk 📲
✔️ 19b0d9b #10 2024-05-08 10:55:56 ~6 min android 🤖apk 📲
✔️ 19b0d9b #10 2024-05-08 10:57:47 ~8 min ios 📱ipa 📲
✔️ be6828c #11 2024-05-08 11:05:51 ~3 min tests 📄log
✔️ be6828c #11 2024-05-08 11:08:36 ~6 min android-e2e 🤖apk 📲
✔️ be6828c #11 2024-05-08 11:08:41 ~6 min android 🤖apk 📲
✔️ be6828c #11 2024-05-08 11:10:29 ~8 min ios 📱ipa 📲
✔️ 24e2f07 #12 2024-05-08 11:21:23 ~6 min tests 📄log
✔️ 24e2f07 #12 2024-05-08 11:22:29 ~7 min android 🤖apk 📲
✔️ 24e2f07 #12 2024-05-08 11:23:26 ~8 min android-e2e 🤖apk 📲
✔️ 24e2f07 #12 2024-05-08 11:24:49 ~9 min ios 📱ipa 📲
✔️ 9a5d805 #14 2024-05-09 08:54:16 ~3 min tests 📄log
✔️ 9a5d805 #14 2024-05-09 08:57:19 ~6 min android 🤖apk 📲
✔️ 9a5d805 #14 2024-05-09 08:57:32 ~7 min android-e2e 🤖apk 📲
✔️ 9a5d805 #14 2024-05-09 09:00:52 ~10 min ios 📱ipa 📲
✔️ 7bc1916 #15 2024-05-09 09:42:38 ~4 min tests 📄log
✔️ 7bc1916 #15 2024-05-09 09:46:58 ~8 min ios 📱ipa 📲
✔️ 7bc1916 #15 2024-05-09 09:48:46 ~10 min android-e2e 🤖apk 📲
✔️ 7bc1916 #15 2024-05-09 09:48:59 ~10 min android 🤖apk 📲
✔️ 5c17b23 #17 2024-05-09 10:06:57 ~3 min tests 📄log
✔️ 5c17b23 #17 2024-05-09 10:09:48 ~6 min android-e2e 🤖apk 📲
✔️ 5c17b23 #17 2024-05-09 10:09:50 ~6 min android 🤖apk 📲
5c17b23 #17 2024-05-09 10:12:45 ~9 min ios 📄log
5c17b23 #18 2024-05-09 10:13:58 ~11 sec ios 📄log
0d92c0b #18 2024-05-09 12:37:30 ~2 min tests 📄log
✔️ 0d92c0b #19 2024-05-09 12:44:10 ~8 min ios 📱ipa 📲
✔️ 0d92c0b #18 2024-05-09 12:45:24 ~10 min android-e2e 🤖apk 📲
✔️ 0d92c0b #18 2024-05-09 12:45:36 ~10 min android 🤖apk 📲
f09fcd8 #19 2024-05-09 12:59:09 ~3 min tests 📄log
✔️ f09fcd8 #19 2024-05-09 13:01:42 ~5 min android-e2e 🤖apk 📲
✔️ f09fcd8 #19 2024-05-09 13:01:51 ~5 min android 🤖apk 📲
✔️ f09fcd8 #20 2024-05-09 13:08:14 ~12 min ios 📱ipa 📲
d8491b8 #21 2024-05-09 13:32:41 ~2 min tests 📄log
6f495bd #22 2024-05-09 13:37:19 ~2 min tests 📄log
✔️ 6f495bd #22 2024-05-09 13:42:23 ~7 min android-e2e 🤖apk 📲
✔️ 6f495bd #22 2024-05-09 13:42:28 ~7 min android 🤖apk 📲
✔️ 6f495bd #23 2024-05-09 13:44:26 ~9 min ios 📱ipa 📲
b31d6ff #23 2024-05-09 13:47:34 ~2 min tests 📄log
✔️ b31d6ff #23 2024-05-09 13:51:47 ~6 min android 🤖apk 📲
b77ea8a #24 2024-05-09 13:57:26 ~2 min tests 📄log
✔️ b77ea8a #24 2024-05-09 14:01:13 ~6 min android-e2e 🤖apk 📲
✔️ b77ea8a #24 2024-05-09 14:01:18 ~6 min android 🤖apk 📲
✔️ b77ea8a #25 2024-05-09 14:03:53 ~9 min ios 📱ipa 📲
f07cb87 #25 2024-05-09 15:03:08 ~2 min tests 📄log
✔️ f07cb87 #25 2024-05-09 15:07:20 ~6 min android 🤖apk 📲
✔️ f07cb87 #25 2024-05-09 15:08:45 ~8 min android-e2e 🤖apk 📲
✔️ f07cb87 #26 2024-05-09 15:09:13 ~8 min ios 📱ipa 📲
47ab107 #26 2024-05-09 16:55:53 ~3 min tests 📄log
✔️ 47ab107 #26 2024-05-09 16:57:46 ~5 min android 🤖apk 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
cc9937f #27 2024-05-09 17:04:02 ~3 min tests 📄log
✔️ cc9937f #27 2024-05-09 17:06:06 ~5 min android 🤖apk 📲
✔️ cc9937f #28 2024-05-09 17:08:46 ~8 min ios 📱ipa 📲
✔️ cc9937f #27 2024-05-09 17:09:32 ~9 min android-e2e 🤖apk 📲
✔️ 61f7bfb #28 2024-05-10 07:09:08 ~5 min tests 📄log
✔️ 61f7bfb #28 2024-05-10 07:14:20 ~10 min android-e2e 🤖apk 📲
✔️ 61f7bfb #28 2024-05-10 07:14:30 ~10 min android 🤖apk 📲
✔️ 61f7bfb #29 2024-05-10 07:14:34 ~10 min ios 📱ipa 📲

@seanstrom seanstrom force-pushed the seanstrom/wallet-settings-keypairs-accounts branch from c8d50a0 to 93bd94f Compare May 6, 2024 13:08
@seanstrom seanstrom force-pushed the seanstrom/wallet-settings-keypairs-accounts branch from 93bd94f to 781bbbd Compare May 6, 2024 13:42
Copy link
Contributor

@mohsen-ghafouri mohsen-ghafouri left a comment

Choose a reason for hiding this comment

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

Nice work, LGTM :)

@seanstrom seanstrom force-pushed the seanstrom/wallet-settings-keypairs-accounts branch from 781bbbd to 9f47bb3 Compare May 6, 2024 15:29
Copy link
Member Author

@seanstrom seanstrom left a comment

Choose a reason for hiding this comment

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

Self-review comments 🏄

@seanstrom seanstrom requested a review from J-Son89 May 7, 2024 13:41
@seanstrom seanstrom force-pushed the seanstrom/wallet-settings-keypairs-accounts branch from 01d8e18 to 945d5d8 Compare May 8, 2024 09:02
@seanstrom seanstrom force-pushed the seanstrom/wallet-settings-keypairs-accounts branch from be6828c to 24e2f07 Compare May 8, 2024 11:14
@seanstrom seanstrom requested a review from ibrkhalil May 9, 2024 07:22
@seanstrom seanstrom force-pushed the seanstrom/wallet-settings-keypairs-accounts branch 2 times, most recently from af7668d to 5c17b23 Compare May 9, 2024 10:02
Copy link
Contributor

@ilmotta ilmotta left a comment

Choose a reason for hiding this comment

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

I was curious and reviewed your PR 🙈 LGTM, nice work @seanstrom

@seanstrom seanstrom force-pushed the seanstrom/wallet-settings-keypairs-accounts branch 2 times, most recently from d8491b8 to 6f495bd Compare May 9, 2024 13:34
@seanstrom seanstrom moved this from REVIEW to E2E Tests in Pipeline for QA May 9, 2024
@seanstrom seanstrom force-pushed the seanstrom/wallet-settings-keypairs-accounts branch from b77ea8a to f07cb87 Compare May 9, 2024 15:00
@seanstrom seanstrom force-pushed the seanstrom/wallet-settings-keypairs-accounts branch from cc9937f to 61f7bfb Compare May 10, 2024 07:03
@seanstrom seanstrom moved this from E2E Tests to REVIEW in Pipeline for QA May 10, 2024
@seanstrom seanstrom moved this from REVIEW to E2E Tests in Pipeline for QA May 10, 2024
@status-im-auto
Copy link
Member

88% of end-end tests have passed

Total executed tests: 52
Failed tests: 4
Expected to fail tests: 2
Passed tests: 46
IDs of failed tests: 702732,704613,702807,702775 
IDs of expected to fail tests: 703495,703503 

Failed tests (4)

Click to expand
  • Rerun failed tests

  • Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_pin_messages, id: 702732

    Device 2: Looking for a message by text: Message 1
    Device 2: Find `ChatElementByText` by `xpath`: `//*[starts-with(@text,'Message 1')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']`

    critical/chats/test_group_chat.py:342: in test_group_chat_pin_messages
        self.chats[1].chat_element_by_text(self.message_1).long_press_element()
    ../views/base_element.py:321: in long_press_element
        element = self.find_element()
    ../views/chat_view.py:116: in find_element
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: ChatElementByText by xpath:`//*[starts-with(@text,'Message 1')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']` is not found on the screen after wait_for_visibility_of_element
    



    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:95: 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
    



    Device sessions

    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 'Open community for e2e' was not requested to join by the url https://status.app/c/G1AAAGR0G-IRb2YJD4lRXwLusAFnGrDHGNl6Wt55MIARwVYvarnO873011-fdVSz1kHSan-qq0G96vOaMqyTRhJnQV74KCUr#zQ3shb9irJR66rhG1E8sQZX8pDU3dpGm4daYSmPVDd2e73ewE
    



    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 'Open community for e2e' was not requested to join by the deep link status.app://c/G1AAAGR0G-IRb2YJD4lRXwLusAFnGrDHGNl6Wt55MIARwVYvarnO873011-fdVSz1kHSan-qq0G96vOaMqyTRhJnQV74KCUr#zQ3shb9irJR66rhG1E8sQZX8pDU3dpGm4daYSmPVDd2e73ewE
    



    Device sessions

    Expected to fail tests (2)

    Click to expand

    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:464: 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))]))
     Chat is still muted after timeout 
    

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

    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 (46)

    Click to expand

    Class TestWalletMultipleDevice:

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

    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

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    2. test_group_chat_reactions, id: 703202
    Device sessions

    3. test_group_chat_offline_pn, id: 702808
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    3. test_community_undo_delete_message, id: 702869
    Device sessions

    4. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    5. test_community_mute_community_and_channel, id: 703382
    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

    3. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_navigation_jump_to, id: 702936
    Device sessions

    2. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    2. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    3. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    4. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    5. test_1_1_chat_edit_message, id: 702855
    Device sessions

    6. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    7. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    8. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809
    Device sessions

    2. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    3. test_community_mentions_push_notification, id: 702786
    Device sessions

    4. test_community_leave, id: 702845
    Device sessions

    5. test_community_join_when_node_owner_offline, id: 703629
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    2. test_wallet_add_remove_watch_only_account, id: 727232
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_several_images_send_reply, id: 703194
    Device sessions

    2. test_community_one_image_send_reply, id: 702859
    Device sessions

    3. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    4. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    5. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    6. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    7. test_community_message_delete, id: 702839
    Device sessions

    8. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    9. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    10. test_community_message_edit, id: 702843
    Device sessions

    11. test_community_unread_messages_badge, id: 702841
    Device sessions

    @seanstrom
    Copy link
    Member Author

    @status-im/mobile-qa can you review these E2E results please? 🙏

    @status-im-auto
    Copy link
    Member

    100% of end-end tests have passed

    Total executed tests: 1
    Failed tests: 0
    Expected to fail tests: 0
    Passed tests: 1
    

    Passed tests (1)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_pin_messages, id: 702732
    Device sessions

    @VolodLytvynenko
    Copy link
    Contributor

    Hi @seanstrom !
    The e2e results are reviewed, the failed tests are not related to the PR.
    PR can proceed to the next stage.

    @seanstrom
    Copy link
    Member Author

    @VolodLytvynenko thank you 🙌

    @seanstrom
    Copy link
    Member Author

    This PR will skip-manual-qa since the code is behind a feature-flag 🚧
    I'll be merging this soon to unblock some other PRs 🌳

    @seanstrom seanstrom moved this from E2E Tests to MERGE in Pipeline for QA May 10, 2024
    @seanstrom seanstrom merged commit 4f0a49f into develop May 10, 2024
    6 checks passed
    Pipeline for QA automation moved this from MERGE to DONE May 10, 2024
    @seanstrom seanstrom deleted the seanstrom/wallet-settings-keypairs-accounts branch May 10, 2024 09:53
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Development

    Successfully merging this pull request may close these issues.

    Add initial view of key-pairs and accounts inside wallet settings Add feature flag for wallet settings
    6 participants