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

[#16111] - toast animation & dismiss #16433

Merged
merged 4 commits into from
Jul 4, 2023

Conversation

ulisesmac
Copy link
Contributor

fixes #16111

Summary

This PR adds the animation and gesture to show and dismiss animations respectively.

Screencast.from.2023-06-28.19-37-42.webm

Review notes

The code for animation was already created but commented out because they were causing a flickering, please check #14752

Platforms

  • Android
  • iOS

Steps to test

  • Open Status
  • log in
  • Trigger different notifications across the app, e.g. mute a chat, send a friend request, etc

status: ready

@ulisesmac ulisesmac self-assigned this Jun 29, 2023
Comment on lines -71 to +49
{;; TODO: this will enable layout animation at runtime and causing flicker on android
;; we need to resolve this and re-enable layout animation
;; issue at https://github.com/status-im/status-mobile/issues/14752
;; :entering slide-in-up-animation
;; :exiting slide-out-up-animation
;; :layout reanimated/linear-transition
:style (reanimated/apply-animations-to-style
{:transform [{:translateY translate-y}]}
style/each-toast-container)}
[toast id]]]))))
{:entering animation/slide-in-up-animation
:exiting animation/slide-out-up-animation
:layout animation/linear-transition
:style (reanimated/apply-animations-to-style
{:transform [{:translateY translate-y}]}
style/each-toast-container)}
[toast toast-id]]]))))
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Add the toast animations and gesture handler

@status-im-auto
Copy link
Member

status-im-auto commented Jun 29, 2023

Jenkins Builds

Click to see older builds (8)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 341f4a2 #1 2023-06-29 01:50:10 ~6 min android-e2e 🤖apk 📲
✔️ 341f4a2 #1 2023-06-29 01:50:17 ~6 min android 🤖apk 📲
✔️ 341f4a2 #1 2023-06-29 01:51:14 ~7 min tests 📄log
✔️ 341f4a2 #1 2023-06-29 01:54:26 ~10 min ios 📱ipa 📲
✔️ a1a3c64 #3 2023-06-29 20:08:46 ~5 min ios 📱ipa 📲
✔️ a1a3c64 #3 2023-06-29 20:09:59 ~6 min android 🤖apk 📲
✔️ a1a3c64 #3 2023-06-29 20:11:05 ~8 min android-e2e 🤖apk 📲
✔️ a1a3c64 #3 2023-06-29 20:11:20 ~8 min tests 📄log
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 3dc5ce4 #4 2023-07-04 21:56:37 ~5 min ios 📱ipa 📲
✔️ 3dc5ce4 #4 2023-07-04 21:57:40 ~6 min android-e2e 🤖apk 📲
✔️ 3dc5ce4 #4 2023-07-04 21:58:49 ~7 min android 🤖apk 📲
✔️ 3dc5ce4 #4 2023-07-04 21:59:29 ~8 min tests 📄log
✔️ 0125fb0 #5 2023-07-04 22:19:22 ~5 min ios 📱ipa 📲
✔️ 0125fb0 #5 2023-07-04 22:19:34 ~5 min android 🤖apk 📲
✔️ 0125fb0 #5 2023-07-04 22:21:58 ~8 min android-e2e 🤖apk 📲
✔️ 0125fb0 #5 2023-07-04 22:22:09 ~8 min tests 📄log

Copy link
Contributor

@J-Son89 J-Son89 left a comment

Choose a reason for hiding this comment

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

great stuff @ulisesmac !

@status-im-auto
Copy link
Member

70% of end-end tests have passed

Total executed tests: 33
Failed tests: 10
Passed tests: 23
IDs of failed tests: 702732,703133,702851,703086,702894,702850,702807,702731,702808,702958 

Failed tests (10)

Click to expand
  • Rerun failed tests

  • Class TestCommunityMultipleDeviceMerged:

    1. test_community_mark_all_messages_as_read, id: 703086

    Device 1: Find `Button` by `accessibility id`: `mark-as-read`
    Device 1: Tap on found: Button

    critical/test_public_chat_browsing.py:838: in test_community_mark_all_messages_as_read
        self.errors.verify_no_errors()
    base_test_case.py:182: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     New messages counter is not shown in home > Commmunity element
    



    Device sessions

    2. test_community_contact_block_unblock_offline, id: 702894

    Device 2: Text is Delivered
    Device 1: Looking for a message by text: Hurray! unblocked

    critical/test_public_chat_browsing.py:811: in test_community_contact_block_unblock_offline
        self.errors.verify_no_errors()
    base_test_case.py:182: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Messages from blocked user is not cleared in public chat
    



    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_pin_messages, id: 702731

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Pin feature is in development]]

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133

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

    critical/test_public_chat_browsing.py:391: in test_restore_multiaccount_with_waku_backup_remove_switch
        shown_name_text = chat.user_name_text_new_UI.text
    ../views/base_element.py:391: in text
        text = self.find_element().text
    ../views/base_element.py:80: in find_element
        raise NoSuchElementException(
     Device 1: Text by xpath: `//*[@content-desc='user-avatar']/../following-sibling::android.widget.TextView` is not found on the screen
    



    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851

    Test setup failed: medium/test_activity_center.py:14: in prepare_devices
        self.drivers, self.loop = create_shared_drivers(2)
    base_test_case.py:308: in create_shared_drivers
        test_suite_data.current_test.testruns[-1].jobs[drivers[i].session_id] = i + 1
     '_asyncio.Future' object has no attribute 'session_id'
    



    2. test_activity_center_contact_request_decline, id: 702850

    Test setup failed: medium/test_activity_center.py:14: in prepare_devices
        self.drivers, self.loop = create_shared_drivers(2)
    base_test_case.py:308: in create_shared_drivers
        test_suite_data.current_test.testruns[-1].jobs[drivers[i].session_id] = i + 1
     '_asyncio.Future' object has no attribute 'session_id'
    



    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_admin_notification_accept_swipe, id: 702958

    Device 1: Looking for activity center element: 'user2'
    Device 1: Find Button by xpath: //*[contains(@text, 'user2')]/ancestor::*[@content-desc='activity']//*[@content-desc="activity-title"]

    medium/test_activity_center.py:331: in test_activity_center_admin_notification_accept_swipe
        if reply_element.title.text != 'Join request':
    ../views/base_element.py:209: in text
        return self.find_element().text
    ../views/base_element.py:80: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//*[contains(@text, 'user2')]/ancestor::*[@content-desc='activity']//*[@content-desc="activity-title"]` is not found on the screen
    



    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_pin_messages, id: 702732

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Pin feature is in development]]

    2. test_group_chat_join_send_text_messages_push, id: 702807

    Device 3: Find Button by accessibility id: skip-identifiers
    Device 2: Find Button by accessibility id: skip-identifiers

    Test setup failed: critical/chats/test_group_chat.py:154: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:646: in run_until_complete
        return future.result()
    __init__.py:44: in run_in_parallel
        returns.append(await k)
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    ../views/sign_in_view.py:239: in create_user
        self.identifiers_button.wait_and_click(30)
    ../views/base_element.py:403: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:135: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 1: Button by accessibility id:`skip-identifiers` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    3. test_group_chat_offline_pn, id: 702808

    Test setup failed: critical/chats/test_group_chat.py:154: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:646: in run_until_complete
        return future.result()
    __init__.py:44: in run_in_parallel
        returns.append(await k)
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    ../views/sign_in_view.py:239: in create_user
        self.identifiers_button.wait_and_click(30)
    ../views/base_element.py:403: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:135: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 1: Button by accessibility id:`skip-identifiers` is not found on the screen after wait_for_visibility_of_element
    



    Passed tests (23)

    Click to expand

    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_delete_via_long_press_relogin, id: 702784
    Device sessions

    4. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    5. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    6. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    7. test_1_1_chat_edit_message, id: 702855
    Device sessions

    8. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_navigation_jump_to, id: 702936
    Device sessions

    3. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    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_mentions_push_notification, id: 702786
    Device sessions

    5. test_community_message_delete, id: 702839
    Device sessions

    6. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    7. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    8. test_community_message_edit, id: 702843
    Device sessions

    9. test_community_leave, id: 702845
    Device sessions

    10. test_community_unread_messages_badge, id: 702841
    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

    @status-im-auto
    Copy link
    Member

    50% of end-end tests have passed

    Total executed tests: 2
    Failed tests: 1
    Passed tests: 1
    
    IDs of failed tests: 702958 
    

    Failed tests (1)

    Click to expand
  • Rerun failed tests

  • Class TestActivityMultipleDevicePR:

    1. test_activity_center_admin_notification_accept_swipe, id: 702958

    Device 1: Looking for activity center element: 'user2'
    Device 1: Find `Button` by `xpath`: `//*[contains(@text, 'user2')]/ancestor::*[@content-desc='activity']//*[@content-desc="activity-title"]`

    medium/test_activity_center.py:331: in test_activity_center_admin_notification_accept_swipe
        if reply_element.title.text != 'Join request':
    ../views/base_element.py:209: in text
        return self.find_element().text
    ../views/base_element.py:80: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//*[contains(@text, 'user2')]/ancestor::*[@content-desc='activity']//*[@content-desc="activity-title"]` is not found on the screen
    



    Device sessions

    Passed tests (1)

    Click to expand

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    @VolodLytvynenko
    Copy link
    Contributor

    Hi @ulisesmac thank you for PR. No issues from my side. Ready to be merged

    @ulisesmac ulisesmac force-pushed the 16111-toast-animation-&-dismiss branch from 3dc5ce4 to 0125fb0 Compare July 4, 2023 22:13
    @ulisesmac ulisesmac merged commit ca0915c into develop Jul 4, 2023
    2 checks passed
    @ulisesmac ulisesmac deleted the 16111-toast-animation-&-dismiss branch July 4, 2023 22:25
    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.

    Toasts - UI Fixes - dismiss (android issue) and exit animation
    4 participants