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: wrong color stroke in profile setting #19815

Conversation

codemaster115
Copy link
Contributor

fixes #19300

Summary

Stroke around the avatar in profile setting is wrong.

Platforms

  • Android
  • iOS

Areas that maybe impacted

Functional
  • 1-1 chats
  • public chats
  • group chats
  • wallet / transactions
  • dapps / app browsing
  • account recovery
  • new account
  • user profile updates
  • networks
  • mailservers
  • fleet
  • bootnodes

Steps to test

  1. Open the profile settings by tapping the avatar picture oon the top-left of the screen
  2. Scroll the profile settings

Before and after screenshots comparison

Simulator Screenshot - iPhone 13 - 2024-04-26 at 05 28 52

status: ready

@status-im-auto
Copy link
Member

status-im-auto commented Apr 26, 2024

Jenkins Builds

Click to see older builds (40)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ be012d7 #1 2024-04-26 12:34:23 ~4 min tests 📄log
✔️ be012d7 #1 2024-04-26 12:35:55 ~6 min android-e2e 🤖apk 📲
✔️ be012d7 #1 2024-04-26 12:36:58 ~7 min android 🤖apk 📲
✔️ be012d7 #1 2024-04-26 12:39:07 ~9 min ios 📱ipa 📲
✔️ 0786f96 #2 2024-04-26 13:42:44 ~4 min tests 📄log
✔️ 0786f96 #2 2024-04-26 13:45:03 ~6 min android 🤖apk 📲
✔️ 0786f96 #2 2024-04-26 13:45:30 ~7 min android-e2e 🤖apk 📲
✔️ 0786f96 #2 2024-04-26 13:46:20 ~8 min ios 📱ipa 📲
✔️ d8e793f #3 2024-04-29 13:10:18 ~4 min tests 📄log
✔️ d8e793f #3 2024-04-29 13:11:59 ~5 min android-e2e 🤖apk 📲
✔️ d8e793f #3 2024-04-29 13:12:56 ~6 min android 🤖apk 📲
✔️ d8e793f #3 2024-04-29 13:14:25 ~8 min ios 📱ipa 📲
✔️ 29e52c5 #4 2024-04-29 13:19:12 ~4 min tests 📄log
✔️ 29e52c5 #4 2024-04-29 13:21:08 ~6 min android 🤖apk 📲
✔️ 29e52c5 #4 2024-04-29 13:21:50 ~6 min android-e2e 🤖apk 📲
✔️ 29e52c5 #4 2024-04-29 13:23:22 ~8 min ios 📱ipa 📲
c2bb94e #5 2024-04-29 14:15:21 ~3 min tests 📄log
✔️ c2bb94e #5 2024-04-29 14:17:26 ~5 min android-e2e 🤖apk 📲
✔️ c2bb94e #5 2024-04-29 14:18:02 ~6 min android 🤖apk 📲
✔️ c2bb94e #5 2024-04-29 14:19:52 ~8 min ios 📱ipa 📲
✔️ f8647a8 #6 2024-04-30 09:16:19 ~4 min tests 📄log
✔️ f8647a8 #6 2024-04-30 09:19:49 ~7 min android-e2e 🤖apk 📲
✔️ f8647a8 #6 2024-04-30 09:19:58 ~8 min android 🤖apk 📲
✔️ f8647a8 #6 2024-04-30 09:20:19 ~8 min ios 📱ipa 📲
✔️ a6f1fc7 #8 2024-04-30 15:16:11 ~4 min tests 📄log
✔️ a6f1fc7 #8 2024-04-30 15:17:07 ~5 min android 🤖apk 📲
✔️ a6f1fc7 #8 2024-04-30 15:17:14 ~6 min android-e2e 🤖apk 📲
✔️ a6f1fc7 #8 2024-04-30 15:19:44 ~8 min ios 📱ipa 📲
✔️ 2362c34 #11 2024-04-30 20:00:57 ~3 min tests 📄log
✔️ 2362c34 #11 2024-04-30 20:04:02 ~6 min android-e2e 🤖apk 📲
✔️ 2362c34 #11 2024-04-30 20:04:11 ~7 min android 🤖apk 📲
✔️ 2362c34 #11 2024-04-30 20:05:34 ~8 min ios 📱ipa 📲
✔️ e4f8d59 #12 2024-05-01 12:12:55 ~3 min tests 📄log
✔️ e4f8d59 #12 2024-05-01 12:16:05 ~7 min android-e2e 🤖apk 📲
✔️ e4f8d59 #12 2024-05-01 12:16:08 ~7 min android 🤖apk 📲
✔️ e4f8d59 #12 2024-05-01 12:17:24 ~8 min ios 📱ipa 📲
✔️ 67fc0eb #13 2024-05-01 18:01:54 ~4 min tests 📄log
✔️ 67fc0eb #13 2024-05-01 18:03:34 ~5 min android-e2e 🤖apk 📲
✔️ 67fc0eb #13 2024-05-01 18:04:30 ~6 min android 🤖apk 📲
✔️ 67fc0eb #13 2024-05-01 18:06:13 ~8 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 67682d6 #14 2024-05-01 18:11:31 ~3 min tests 📄log
✔️ 67682d6 #14 2024-05-01 18:13:28 ~5 min android 🤖apk 📲
✔️ 67682d6 #14 2024-05-01 18:14:11 ~6 min android-e2e 🤖apk 📲
✔️ 67682d6 #14 2024-05-01 18:21:03 ~13 min ios 📱ipa 📲
✔️ c724220 #15 2024-05-02 12:39:05 ~4 min tests 📄log
✔️ c724220 #15 2024-05-02 12:41:44 ~6 min android-e2e 🤖apk 📲
✔️ c724220 #15 2024-05-02 12:41:55 ~7 min android 🤖apk 📲
✔️ c724220 #15 2024-05-02 12:44:39 ~9 min ios 📱ipa 📲

@codemaster115 codemaster115 force-pushed the 19300-wrong-color-stroke-around-the-avatar-in-profile-settings-android branch from be012d7 to 0786f96 Compare April 26, 2024 13:37
Copy link
Contributor

@ibrkhalil ibrkhalil left a comment

Choose a reason for hiding this comment

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

Thank you for the great work!

@ibrkhalil ibrkhalil moved this from REVIEW to E2E Tests in Pipeline for QA Apr 27, 2024
@status-im-auto
Copy link
Member

96% of end-end tests have passed

Total executed tests: 52
Failed tests: 0
Expected to fail tests: 2
Passed tests: 50
IDs of expected to fail tests: 703495,703503 

Expected to fail tests (2)

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

Passed tests (50)

Click to expand

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

1. test_links_open_universal_links_from_chat, id: 704613
Device sessions

2. test_links_deep_links, id: 702775
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 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 TestGroupChatMultipleDeviceMergedNewUI:

1. test_group_chat_pin_messages, id: 702732
Device sessions

2. test_group_chat_send_image_save_and_share, id: 703297
Device sessions

3. test_group_chat_reactions, id: 703202
Device sessions

4. test_group_chat_join_send_text_messages_push, id: 702807
Device sessions

5. test_group_chat_offline_pn, id: 702808
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 TestWalletMultipleDevice:

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

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

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

@codemaster115 codemaster115 force-pushed the 19300-wrong-color-stroke-around-the-avatar-in-profile-settings-android branch 2 times, most recently from 29e52c5 to c2bb94e Compare April 29, 2024 14:11
@VolodLytvynenko VolodLytvynenko self-assigned this Apr 29, 2024
@VolodLytvynenko VolodLytvynenko moved this from E2E Tests to IN TESTING in Pipeline for QA Apr 29, 2024
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.

I understand it's a bit tricky because the border needs to be both blurred and transparent, which can be challenging to achieve. Simulating the border color to match the background also seems difficult. Overall, LGTM :) nice work

@VolodLytvynenko VolodLytvynenko force-pushed the 19300-wrong-color-stroke-around-the-avatar-in-profile-settings-android branch from c2bb94e to f8647a8 Compare April 30, 2024 09:11
src/status_im/navigation/view.cljs Outdated Show resolved Hide resolved
@VolodLytvynenko
Copy link
Contributor

VolodLytvynenko commented Apr 30, 2024

Hey @codemaster115 . Thank you for PR. Take a look at the found issue

PR_ISSUE 1: Wrong UI on shell screens when light mode is enabled

Actual result:

Activity Center
image
Sync QR generation page
image
Wallet share QR page
image

Expected result:

Activity Center
Sync QR generation page
Wallet share QR page

@VolodLytvynenko VolodLytvynenko moved this from IN TESTING to CONTRIBUTOR in Pipeline for QA Apr 30, 2024
@codemaster115 codemaster115 force-pushed the 19300-wrong-color-stroke-around-the-avatar-in-profile-settings-android branch from 4357344 to a6f1fc7 Compare April 30, 2024 15:10
@flexsurfer flexsurfer moved this from CONTRIBUTOR to E2E Tests in Pipeline for QA Apr 30, 2024
@status-im-auto
Copy link
Member

90% of end-end tests have passed

Total executed tests: 52
Failed tests: 3
Expected to fail tests: 2
Passed tests: 47
IDs of failed tests: 727230,702782,703391 
IDs of expected to fail tests: 703495,703503 

Failed tests (3)

Click to expand
  • Rerun failed tests

  • Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    Device 1: Long press on `AssetElement`
    Device 1: Find `EditBox` by `accessibility id`: `address-text-input`

    critical/test_wallet.py:123: in test_wallet_send_asset_from_drawer
        self.wallet_1.send_asset_from_drawer(address=self.receiver['address'], asset_name='Ether',
    ../views/wallet_view.py:104: in send_asset_from_drawer
        self.address_text_input.send_keys(address)
    ../views/base_element.py:377: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: EditBox by accessibility id: `address-text-input` 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 TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782

    Device 1: Tap on found: SendMessageButton
    Device 2: Looking for a message by text: Test with link: https://status.im/ here should be nothing unusual.

    critical/chats/test_1_1_public_chats.py:149: in test_1_1_chat_emoji_send_reply_and_open_link
        self.chat_2.chat_element_by_text(url_message).wait_for_element(20)
    ../views/base_element.py:129: in wait_for_element
        raise TimeoutException(
     Device `2`: `ChatElementByText` by` xpath`: `//*[starts-with(@text,'Test with link: https://status.im/ here should be nothing unusual.')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']` is not found on the screen after wait_for_element
    



    Device sessions

    2. test_1_1_chat_send_image_save_and_share, id: 703391

    Device 2: Find Button by accessibility id: image-0
    Device 2: Click system back button

    critical/chats/test_1_1_public_chats.py:458: in test_1_1_chat_send_image_save_and_share
        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))]))
     Not expected image is shown to the receiver.
    



    Device sessions

    Expected to fail tests (2)

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

    Passed tests (47)

    Click to expand

    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

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links, id: 702775
    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 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_text_message_delete_push_disappear, id: 702733
    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_pin_messages, id: 702731
    Device sessions

    6. 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 TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_pin_messages, id: 702732
    Device sessions

    2. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    3. test_group_chat_reactions, id: 703202
    Device sessions

    4. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    5. test_group_chat_offline_pn, id: 702808
    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 TestWalletMultipleDevice:

    1. test_wallet_send_eth, id: 727229

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

    @codemaster115
    Copy link
    Contributor Author

    Hey @codemaster115 . Thank you for PR. Take a look at the found issue

    PR_ISSUE 1: Wrong UI on shell screens when light mode is enabled

    Actual result:

    Activity Center image Sync QR generation page image Wallet share QR page image

    Expected result:

    Activity Center Sync QR generation page Wallet share QR page

    @VolodLytvynenko Please check again. Thanks

    @codemaster115 codemaster115 force-pushed the 19300-wrong-color-stroke-around-the-avatar-in-profile-settings-android branch from 5923c84 to 94fc8bc Compare April 30, 2024 19:56
    @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 TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    @VolodLytvynenko
    Copy link
    Contributor

    Hi @codemaster115 thank you for quick issue fix :) No issues from my side

    @Francesca-G could you please take a look current PR?

    @VolodLytvynenko VolodLytvynenko moved this from E2E Tests to IN TESTING in Pipeline for QA May 1, 2024
    @VolodLytvynenko VolodLytvynenko moved this from IN TESTING to Design review in Pipeline for QA May 1, 2024
    @codemaster115 codemaster115 force-pushed the 19300-wrong-color-stroke-around-the-avatar-in-profile-settings-android branch from 2362c34 to e4f8d59 Compare May 1, 2024 12:08
    Copy link

    @Francesca-G Francesca-G left a comment

    Choose a reason for hiding this comment

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

    Stoke color looks fixed, but now it seems like the alignment between the avatar picture and the name is off

    As you can see here:

    Screenshot 2024-05-01 alle 15 02 32

    Design:

    Screenshot 2024-05-01 alle 15 02 51

    @codemaster115 codemaster115 force-pushed the 19300-wrong-color-stroke-around-the-avatar-in-profile-settings-android branch from e4f8d59 to 67fc0eb Compare May 1, 2024 17:57
    @Francesca-G Francesca-G moved this from Design review to MERGE in Pipeline for QA May 2, 2024
    @codemaster115 codemaster115 force-pushed the 19300-wrong-color-stroke-around-the-avatar-in-profile-settings-android branch from 67682d6 to c724220 Compare May 2, 2024 12:34
    @codemaster115 codemaster115 merged commit 94ab27b into develop May 2, 2024
    6 checks passed
    Pipeline for QA automation moved this from MERGE to DONE May 2, 2024
    @codemaster115 codemaster115 deleted the 19300-wrong-color-stroke-around-the-avatar-in-profile-settings-android branch May 2, 2024 12:45
    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.

    Wrong color stroke around the avatar in Profile settings [Android]
    7 participants