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 show/hide password on Android #12536

Merged
merged 1 commit into from
Sep 7, 2021
Merged

Fix show/hide password on Android #12536

merged 1 commit into from
Sep 7, 2021

Conversation

bitgamma
Copy link
Member

@bitgamma bitgamma commented Sep 2, 2021

Fixes #11955.

This PR actually has three parts

  • Make the seed phrase entry "visibile-password" on Android, otherwise SwiftKey and similar would record the seed phrase
  • Make the password hide/show button work in both directions.
  • When the text is password/visibile-password make sure auto correct and autocomplete is disabled

As a side effect of point 2, when the password is shown, the "suggestions" from SwiftKey and probably other keyboard as activated. This is because I had to make a sort of workaround until facebook/react-native#27946 is fixed. Point 3 seems to at least (from my limited testing) avoid that the password is stored by the keyboard.

Sorry, something went wrong.

@bitgamma bitgamma self-assigned this Sep 2, 2021
@status-im-auto
Copy link
Member

status-im-auto commented Sep 2, 2021

Jenkins Builds

Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ fa900bb #1 2021-09-02 08:50:12 ~11 min android-e2e 📦apk 📲
✔️ fa900bb #1 2021-09-02 08:52:49 ~13 min ios 📦ipa 📲
✔️ fa900bb #1 2021-09-02 08:57:44 ~18 min android 📦apk 📲
✔️ 548eadc #2 2021-09-07 11:09:31 ~11 min android-e2e 📦apk 📲
✔️ 548eadc #2 2021-09-07 11:11:57 ~13 min android 📦apk 📲
✔️ 548eadc #2 2021-09-07 11:12:14 ~13 min ios 📦ipa 📲

@status-im-auto
Copy link
Member

93% of end-end tests have passed

Total executed tests: 70
Failed tests: 5
Passed tests: 65
IDs of failed tests: 6645,6272,6228,6263,6293 

Failed tests (5)

Click to expand
  • Rerun tests

  • 1. test_restore_account_migrate_multiaccount_to_keycard, id: 6645

    Device 1: *Tap on found Button*
    Device 1: **Enter default pin 111111**

    Device 1: 'AccountElementButton' by xpath:'//*[@content-desc='accountcardEthereum account']' not found on the screen

    Device sessions

    2. test_add_account_to_wallet_private_key_and_seed_phrase, id: 6272

    Device 1: *Scrolling up to AccountElementButton*
    Device 1: *Find ReceiveTransactionButton by xpath:* `//*[@text="Receive"]`

    Device 1: ReceiveTransactionButton by xpath: `//*[@text="Receive"]` is not found on the screen

    Device sessions

    3. test_mobile_data_usage_complex_settings, id: 6228

    Device 1: *Find Button by xpath:* `//*[@text="Use mobile data"]/following-sibling::android.widget.Switch[1]`
    Device 1: *Find Button by xpath:* `//*[@text="Ask me when on mobile network"]/following-sibling::android.widget.Switch[1]`

    Chat history was not fetched with mobile data fetching ON

    Device sessions

    4. test_request_and_receive_stt_in_1_1_chat_offline, id: 6263

    Device 2: *Tap on found Button*
    Device 2: *Wait for text element TransactionStatus to be equal to Pending*

    Device 2: 'Confirmed' is not equal to expected 'Pending' in 60 sec

    Device sessions

    5. test_keycard_send_eth_in_1_1_chat, id: 6293

    Device 1: *Element TransactionStatus text is equal to Confirmed*
    Device 2: *Wait for text element TransactionStatus to be equal to Confirmed*

    Device 2: 'Shared 'Ethereum account'' is not equal to expected 'Confirmed' in 60 sec

    Device sessions

    Passed tests (65)

    Click to expand

    1. test_image_in_one_to_one_send_save_reply_timeline, id: 6305
    Device sessions

    2. test_add_account_to_multiaccount_instance_generate_new, id: 6224
    Device sessions

    3. test_keycard_can_see_all_transactions_in_history, id: 6291
    Device sessions

    4. test_sign_message_and_2tx_in_batch_and_transactions_filters_from_daap, id: 5342
    Device sessions

    5. test_add_and_delete_watch_only_account_to_multiaccount_instance, id: 6244
    Device sessions

    6. test_open_blocked_secure_not_secure_inlalid_offline_urls, id: 6210
    Device sessions

    7. test_open_public_chat_using_deep_link, id: 5396
    Device sessions

    8. test_offline_add_new_group_chat_member, id: 3998
    Device sessions

    9. test_send_non_english_message_to_newly_added_contact_on_different_networks, id: 5315
    Device sessions

    10. test_can_see_balance_and_all_transactions_history_on_cellular, id: 5314
    Device sessions

    11. test_insufficient_funds_wallet_positive_balance, id: 5412
    Device sessions

    12. test_delete_close_all_tabs, id: 5390
    Device sessions

    13. test_create_new_group_chat_messaging_pn_delivered, id: 3994
    Device sessions

    14. test_send_token_with_7_decimals, id: 5350
    Device sessions

    15. test_edit_message_in_one_to_one_and_public_chats, id: 695843
    Device sessions

    16. test_delete_chats_via_delete_button_rejoin, id: 5387
    Device sessions

    17. test_send_transaction_set_recipient_options, id: 6328
    Device sessions

    18. test_keycard_sign_message_and_transactions_from_daap, id: 6251
    Device sessions

    19. test_recover_account_from_new_user_seedphrase, id: 6296
    Device sessions

    20. test_keycard_can_recover_keycard_account_card_pairing, id: 5758
    Device sessions

    21. test_block_user_from_public_chat, id: 5786
    Device sessions

    22. test_send_audio_message_with_push_notification_check, id: 6316
    Device sessions

    23. test_redirect_to_public_chat_tapping_tag_message_fetch_more_history, id: 5675
    Device sessions

    24. test_ens_mentions_pn_and_nickname_in_public_and_1_1_chats, id: 6226
    Device sessions

    25. test_keycard_send_eth_from_wallet_to_address, id: 6289
    Device sessions

    26. test_keycard_create_login_restore_unlock_same_seed, id: 5689
    Device sessions

    27. test_offline_is_shown_messaging_1_1_chat_sent_delivered, id: 5310
    Device sessions

    28. test_pair_devices_sync_one_to_one_contacts_nicknames_public_chat, id: 5762
    Device sessions

    29. test_long_press_to_delete_chat, id: 5319
    Device sessions

    30. test_copy_and_paste_messages, id: 5317
    Device sessions

    31. test_open_transaction_on_etherscan_copy_tx_hash, id: 5384
    Device sessions

    32. test_unread_messages_counter_public_chat, id: 5360
    Device sessions

    33. test_user_can_see_all_own_assets_after_account_recovering, id: 5381
    Device sessions

    34. test_send_eth_from_wallet_to_address_incorrect_password, id: 5308
    Device sessions

    35. test_start_chat_with_ens_mention_in_one_to_one, id: 5403
    Device sessions

    36. test_decline_transactions_in_1_1_chat_push_notification_changing_state, id: 6265
    Device sessions

    37. test_send_eth_in_1_1_chat_transaction_push, id: 6253
    Device sessions

    38. test_install_pack_and_send_sticker, id: 5782
    Device sessions

    39. test_switch_users_special_char_password_and_add_new_account_logcat, id: 5356
    Device sessions

    40. test_manage_assets, id: 5341
    Device sessions

    41. test_browser_managing_bookmarks, id: 6633
    Device sessions

    42. test_open_chat_by_pasting_chat_key_check_invalid_chat_key_cases, id: 5304
    Device sessions

    43. test_request_stt_from_daap, id: 5309
    Device sessions

    44. test_can_use_purchased_stickers_on_recovered_account, id: 5783
    Device sessions

    45. test_dapps_permissions, id: 5738
    Device sessions

    46. test_account_recovery_with_uppercase_whitespaces_seed_phrase_special_char_passw_logcat, id: 5394
    Device sessions

    47. test_send_eth_to_ens_in_chat, id: 6279
    Device sessions

    48. test_share_copy_contact_code_and_wallet_address, id: 5323
    Device sessions

    49. test_wallet_set_up, id: 5335
    Device sessions

    50. test_send_transaction_with_custom_token, id: 6208
    Device sessions

    51. test_home_view, id: 5379
    Device sessions

    52. test_can_add_existing_ens, id: 5502
    Device sessions

    53. test_logcat_backup_recovery_phrase, id: 5419
    Device sessions

    54. test_set_profile_picture, id: 6646
    Device sessions

    55. test_collectible_from_wallet, id: 5346
    Device sessions

    56. test_add_and_remove_mention_contact_with_nickname_from_public_chat, id: 5332
    Device sessions

    57. test_keycard_request_stt_from_daap, id: 6249
    Device sessions

    58. test_restore_account_from_mnemonic_to_keycard, id: 6240
    Device sessions

    59. test_pass_phrase_validation, id: 5363
    Device sessions

    60. test_send_and_open_links_with_previews, id: 5373
    Device sessions

    61. test_reactions_to_message_in_chats, id: 6315
    Device sessions

    62. test_fetching_balance_after_offline, id: 6237
    Device sessions

    63. test_push_notification_1_1_chat_no_pn_activity_center, id: 6283
    Device sessions

    64. test_public_chat_messaging_emojis_timestamps, id: 5313
    Device sessions

    65. test_keycard_fetching_balance_after_offline, id: 6290
    Device sessions

    Copy link
    Member

    @flexsurfer flexsurfer left a comment

    Choose a reason for hiding this comment

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

    pls do not merge, i'll make review tomorrow, thanks

    @@ -64,6 +64,7 @@
    [quo/text-input
    {:show-cancel false
    :auto-correct false
    :keyboard-type "visible-password"
    Copy link
    Member

    Choose a reason for hiding this comment

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

    better to use keyword

    Copy link
    Member Author

    Choose a reason for hiding this comment

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

    "visibile-password" appears in the code in other places too as string so I kept it this way, but I can change it everywhere in the code

    @Serhy Serhy self-assigned this Sep 6, 2021
    @status-im-auto
    Copy link
    Member

    60% of end-end tests have passed

    Total executed tests: 5
    Failed tests: 2
    Passed tests: 3
    
    IDs of failed tests: 6645,6293 
    

    Failed tests (2)

    Click to expand
  • Rerun tests

  • 1. test_restore_account_migrate_multiaccount_to_keycard, id: 6645

    Device 1: *Tap on found Button*
    Device 1: *Find Button by accessibility id:* `connect-card`

    Device 1: Button by accessibility id: `connect-card` is not found on the screen

    Device sessions

    2. test_keycard_send_eth_in_1_1_chat, id: 6293

    Expected amount of confirmations is 6, in fact 5
    Finding tx in ETH transactions, attempt #1

    Expecting value: line 1 column 1 (char 0)

    Device sessions

    Passed tests (3)

    Click to expand

    1. test_add_account_to_wallet_private_key_and_seed_phrase, id: 6272
    Device sessions

    2. test_mobile_data_usage_complex_settings, id: 6228
    Device sessions

    3. test_request_and_receive_stt_in_1_1_chat_offline, id: 6263
    Device sessions

    @Serhy
    Copy link
    Contributor

    Serhy commented Sep 7, 2021

    Tested with Android 11 and Android 9 and iOS 14, - seed phrase field does not have autosuggestions (and autocomplete panel) enabled, password fields hide/show also works.
    Failed tests were false failures (can not reproduce manually), - will fix them separately.
    Thanks a lot, @bitgamma !

    @status-im-auto
    Copy link
    Member

    100% of end-end tests have passed

    Total executed tests: 2
    Failed tests: 0
    Passed tests: 2
    

    Passed tests (2)

    Click to expand

    1. test_restore_account_migrate_multiaccount_to_keycard, id: 6645
    Device sessions

    2. test_keycard_send_eth_in_1_1_chat, id: 6293
    Device sessions

    - make hide/show password work on Android
    
    Signed-off-by: Michele Balistreri <michele@bitgamma.com>
    @Serhy
    Copy link
    Contributor

    Serhy commented Sep 8, 2021

    @bitgamma sorry, i've missed regression after this change, - #12560
    (on iOS all one-line inputs behave like passwords now)

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    No open projects
    Archived in project
    Development

    Successfully merging this pull request may close these issues.

    [Bug] show / hide password "eye" won't "hide' password
    5 participants