status-mobile icon indicating copy to clipboard operation
status-mobile copied to clipboard

feat_: implement onLowMemory and onTrimMemory for android

Open qfrank opened this issue 7 months ago • 10 comments

Summary

this PR might help fixing issue #22463 when switch Status App in background, onLowMemory / onTrimMemory might be invoked, we get a chance to release some memory back to OS and keep our App stay alive longer rather than being killed. this PR also added getHistoricalProcessExitReasons

relate status-go PR

logcat log that shows getHistoricalProcessExitReasons works:

2025-05-09 20:03:01.379 18950-18950/im.status.ethereum.debug I/MainApplication: Historical process exit reasons (last 5):
2025-05-09 20:03:01.379 18950-18950/im.status.ethereum.debug I/MainApplication: Exit reason #1:
2025-05-09 20:03:01.379 18950-18950/im.status.ethereum.debug I/MainApplication:   Process: com.google.android.webview:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:0
2025-05-09 20:03:01.379 18950-18950/im.status.ethereum.debug I/MainApplication:   Reason: 10
2025-05-09 20:03:01.379 18950-18950/im.status.ethereum.debug I/MainApplication:   Timestamp: 1746791035537
2025-05-09 20:03:01.379 18950-18950/im.status.ethereum.debug I/MainApplication:   Description: remove task
2025-05-09 20:03:01.379 18950-18950/im.status.ethereum.debug I/MainApplication:   Importance: 400
2025-05-09 20:03:01.379 18950-18950/im.status.ethereum.debug I/MainApplication:   PSS: 11132 KB
2025-05-09 20:03:01.379 18950-18950/im.status.ethereum.debug I/MainApplication:   RSS: 98092 KB

Testing notes

see if PR build would keep our App stay alive longer in the background, if you can make Android system to trigger onLowMemory or onTrimMemory without using am that would be great! I haven't be able to reproduce ): However, when Status is in the background, you can run adb shell am send-trim-memory 22304 COMPLETE to trigger onLowMemory / onTrimMemory manually. 22304 should be replaced with actual pid of Status.

Platforms

  • Android

Steps to test

  • Open Status and login
  • Keep Status running in the background
  • Wait for some time and try to switch Status back

status: ready.

qfrank avatar Apr 23 '25 10:04 qfrank

Jenkins Builds

Click to see older builds (16)
:grey_question: Commit :hash: Finished (UTC) Duration Platform Result
:heavy_check_mark: 6e9116e3 #1 2025-04-23 10:59:05 ~8 min tests :page_facing_up:log
:heavy_check_mark: 6e9116e3 #1 2025-04-23 11:02:20 ~11 min android-e2e :robot:apk :calling:
:heavy_check_mark: 6e9116e3 #1 2025-04-23 11:03:09 ~12 min android :robot:apk :calling:
:heavy_check_mark: 6e9116e3 #1 2025-04-23 11:05:09 ~14 min ios :iphone:ipa :calling:
:heavy_check_mark: ae01e601 #2 2025-04-24 02:32:13 ~5 min tests :page_facing_up:log
:heavy_check_mark: ae01e601 #2 2025-04-24 02:36:47 ~9 min android-e2e :robot:apk :calling:
:heavy_check_mark: ae01e601 #2 2025-04-24 02:37:20 ~10 min android :robot:apk :calling:
:heavy_check_mark: ae01e601 #2 2025-04-24 02:38:12 ~11 min ios :iphone:ipa :calling:
:heavy_check_mark: 09625ff8 #3 2025-05-09 12:22:35 ~5 min tests :page_facing_up:log
:heavy_check_mark: 09625ff8 #3 2025-05-09 12:27:06 ~9 min android-e2e :robot:apk :calling:
:heavy_check_mark: 09625ff8 #3 2025-05-09 12:27:46 ~10 min android :robot:apk :calling:
:heavy_check_mark: 09625ff8 #3 2025-05-09 12:29:33 ~12 min ios :iphone:ipa :calling:
:heavy_check_mark: 0115348a #4 2025-05-19 11:55:06 ~5 min tests :page_facing_up:log
:x: 0115348a #4 2025-05-19 11:59:41 ~9 min android-e2e :page_facing_up:log
:x: 0115348a #4 2025-05-19 11:59:41 ~9 min android :page_facing_up:log
:heavy_check_mark: 0115348a #4 2025-05-19 12:02:30 ~12 min ios :iphone:ipa :calling:
:grey_question: Commit :hash: Finished (UTC) Duration Platform Result
:heavy_check_mark: 3c94a83f #5 2025-05-19 12:20:35 ~4 min tests :page_facing_up:log
:heavy_check_mark: 3c94a83f #5 2025-05-19 12:24:22 ~8 min android-e2e :robot:apk :calling:
:heavy_check_mark: 3c94a83f #5 2025-05-19 12:25:19 ~9 min android :robot:apk :calling:
:heavy_check_mark: 3c94a83f #5 2025-05-19 12:30:31 ~14 min ios :iphone:ipa :calling:
:heavy_check_mark: b9ab48b4 #6 2025-05-20 10:47:50 ~5 min tests :page_facing_up:log
:heavy_check_mark: b9ab48b4 #6 2025-05-20 10:50:45 ~8 min android :robot:apk :calling:
:heavy_check_mark: b9ab48b4 #6 2025-05-20 10:52:40 ~10 min android-e2e :robot:apk :calling:
:heavy_check_mark: b9ab48b4 #6 2025-05-20 10:56:44 ~14 min ios :iphone:ipa :calling:

status-im-auto avatar Apr 23 '25 10:04 status-im-auto

Tried running this PR build on Redmi 14R 5G with login status in background but didn't enable notification. After 1 hour, it's been killed with :

04-24 09:16:13.828  2385  3182 I ActivityManager: Killing 12177:im.status.ethereum.pr/u0a291 (adj 901): camera boost

checked go logs, it seems onLowMemory and onTrimMemory hasn't been invoked.

to avoid android OS thinking Status as Cached Process, I'll try another around with enabling notification. When enabling notification, a foreground service will be created, in this case we should not see adj 901 anymore

qfrank avatar Apr 24 '25 02:04 qfrank

Tried running this PR build on Redmi 14R 5G with login status in background but didn't enable notification. After 1 hour, it's been killed with :

04-24 09:16:13.828  2385  3182 I ActivityManager: Killing 12177:im.status.ethereum.pr/u0a291 (adj 901): camera boost

checked go logs, it seems onLowMemory and onTrimMemory hasn't been invoked.

to avoid android OS thinking Status as Cached Process, I'll try another around with enabling notification. When enabling notification, a foreground service will be created, in this case we should not see adj 901 anymore

in case of notification enabled, no killing after 5+ hours, switch Status back to foreground normally

qfrank avatar Apr 24 '25 10:04 qfrank

@qfrank Hey! what is the state of the current PR? should it be moved to Review?

churik avatar May 12 '25 15:05 churik

100% of end-end tests have passed

Total executed tests: 22
Failed tests: 0
Expected to fail tests: 0
Passed tests: 22
Not executed tests: 2
IDs of not executed tests: 702731,742910 

Not executed tests (2)

Click to expand
  • Rerun not executed tests
  • Passed tests (22)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    Class TestWalletOneDeviceTwo:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestWalletMultipleDevice:

    1. test_send_eth[Status Network Sepolia-0.0002], id: 727229
    Device sessions

    2. test_wallet_send_erc20_from_drawer[Optimism Sepolia-USD Coin-USDC-2-0.01], id: 727230
    Device sessions

    3. test_send_eth[Arbitrum Sepolia-0.0001], id: 742015
    Device sessions

    4. test_wallet_send_erc20_from_drawer[Sepolia-USD Coin-USDC-2-0.01], id: 742016
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_delete, id: 702839
    Device sessions

    2. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    3. test_community_one_image_send_reply_set_reaction, id: 702859
    Device sessions

    4. test_community_message_edit, id: 702843
    Device sessions

    Class TestWalletCollectibles:

    1. test_wallet_send_collectible, id: 741840
    Device sessions

    2. test_wallet_collectibles_balance, id: 741839
    Device sessions

    3. test_wallet_collectible_send_from_expanded_info_view, id: 741841
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    2. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    Class TestProfileMultipleDevices:

    1. test_profile_change_profile_photo, id: 741969
    Device sessions

    2. test_profile_change_username, id: 741968
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_swap_flow_mainnet, id: 741555
    Device sessions

    2. test_wallet_balance_mainnet, id: 740490
    Device sessions

    3. test_wallet_bridge_flow_mainnet, id: 741612
    Device sessions

    4. test_wallet_send_flow_mainnet, id: 741554
    Device sessions

    status-im-auto avatar May 19 '25 10:05 status-im-auto

    @qfrank Hey! what is the state of the current PR? should it be moved to Review?

    Hi @churik , I think it would be better to wait getting approval on corresponding status-go PR, then we're ready to test :)

    qfrank avatar May 19 '25 10:05 qfrank

    Nice work @qfrank! Just a quick note, GC tweaks can also impact CPU. Have you checked if there's any spike in CPU usage caused by the forced GC?

    There are some minor comments in the status-go PR, but LGTM overall 🚀

    put Status into background, cpu usage is around 6%, after adb shell am send-trim-memory $PID COMPLETE, cpu usage goes up to 20%, but the duration of invocation is very short, around 78.223385ms on my device @ilmotta

    qfrank avatar May 20 '25 02:05 qfrank

    Hi @qfrank !

    Thanks for your PR. Can you please rebase go and mobile PR and also update files in mobile brunch so they have the same commits?

    mariia-skrypnyk avatar May 20 '25 09:05 mariia-skrypnyk

    Hi @qfrank !

    Thanks for your PR. Can you please rebase go and mobile PR and also update files in mobile brunch so they have the same commits?

    Done :) @mariia-skrypnyk

    qfrank avatar May 20 '25 10:05 qfrank

    88% of end-end tests have passed

    Total executed tests: 88
    Failed tests: 8
    Expected to fail tests: 3
    Passed tests: 77
    
    IDs of failed tests: 703202,703133,742945,742942,702733,741841,702782,703194 
    
    IDs of expected to fail tests: 702844,742944,741924 
    

    Failed tests (8)

    Click to expand
  • Rerun failed tests

  • Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_profile_switch, id: 703133

    Device 1: Tap on found: Button
    # STEP: Check that removed user is not shown in the list anymore
    communities/test_community.py:241: in test_restore_multiaccount_with_waku_backup_remove_profile_switch
        self.errors.verify_no_errors()
    base_test_case.py:207: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Device 1: zQ3...dWXh5 was not restored as a contact from waku backup!
    E    Device 1: zQ3...Vacac was not restored as a contact from waku backup!
    E    Device 1: admin_open was not restored from waku-backup!!
    E    Device 1: member_open was not restored from waku-backup!!
    E    Device 1: admin_closed was not restored from waku-backup!!
    E    Device 1: member_closed was not restored from waku-backup!!
    



    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_text_message_delete_push_disappear, id: 702733

    Device 2: Find Text by xpath: //*[starts-with(@text,'smth I should edit')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']//*[@content-desc='message-status']/android.widget.TextView
    Device 2: Text is Sent
    private_chats/test_one_to_one_chat.py:490: in test_1_1_chat_text_message_delete_push_disappear
        self.chat_2.chat_element_by_text(message_after_edit_1_1).wait_for_status_to_be("Delivered")
    ../views/chat_view.py:178: 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

    2. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782

    Device 2: Looking for a message by text: Test with link: https://status.im/ here should be nothing unusual.
    Device 2: Find 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']
    private_chats/test_one_to_one_chat.py:160: in test_1_1_chat_emoji_send_reply_and_open_link
        self.chat_2.set_reaction(url_message)
    ../views/chat_view.py:700: in set_reaction
        element.wait_for_element()
    ../views/base_element.py:121: in wait_for_element
        raise TimeoutException(
     Device `2`: `Button` by` accessibility id`: `reaction-thumbs-up` is not found on the screen after wait_for_element
    



    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_reactions, id: 703202

    Device 3: Adding one more 'thumbs-up' reaction or removing an added one
    Device 3: Wait for element Button for max 30s and click when it is available
    private_chats/test_group_chat.py:119: in test_group_chat_reactions
        self.chats[2].add_remove_same_reaction(emoji="thumbs-up")
    ../views/chat_view.py:708: in add_remove_same_reaction
        element.wait_and_click()
    ../views/base_element.py:100: 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 3: Button by accessibility id:`emoji-reaction-2` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    Class TestWalletConnectSignTransactions:

    1. test_wallet_connect_multiple_profiles, id: 742942

    Device 1: Find Button by xpath: //*[@text='BRIDGE']
    Device 1: Tap on found: Button
    wallet/test_wallet_connect.py:301: in test_wallet_connect_multiple_profiles
        self.errors.verify_no_errors()
    base_test_case.py:207: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Device 1: Error message 'Bridge.status.network requires an unsupported network' doesn't appear when signing bridge transaction with a wrong profile
    



    Device sessions

    Class TestWalletConnectLoggedOut:

    1. test_wallet_connect_logged_out, id: 742945

    ## Sign in (password: qwerty1234)
    Device 1: Getting username card by 'shrz2hxDtxjiJZWdt7Dx'
    wallet/test_wallet_connect.py:342: in test_wallet_connect_logged_out
        self.sign_in_view.sign_in(user_name=self.username)
    ../views/sign_in_view.py:140: in sign_in
        self.get_user_profile_by_name(user_name).click()
    ../views/sign_in_view.py:153: in get_user_profile_by_name
        raise NoSuchElementException(msg="User %s is not found!" % username)
     User shrz2hxDtxjiJZWdt7Dx is not found!; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception; also Unexpected Alert is shown: 'kotlin.UninitializedPropertyAccessException: lateinit property utils has not been initialized'
    



    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_several_images_send_reply, id: 703194

    Device 2: Trying to access images (image container) inside message with text 'gallery'
    Device 2: Find ImageContainer by xpath: //*[starts-with(@text,'gallery')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']//*[@content-desc="image-container"]
    communities/test_community.py:426: in test_community_several_images_send_reply
        if (image.is_element_differs_from_template("images_gallery.png", 5) and
    ../views/base_element.py:267: in is_element_differs_from_template
        difference = ImageChops.difference(self.image, self.template)
    ../views/base_element.py:245: in image
        return Image.open(BytesIO(base64.b64decode(self.find_element().screenshot_as_base64)))
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 2: ImageContainer by xpath: `//*[starts-with(@text,'gallery')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']//*[@content-desc="image-container"]` 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
    



    Device sessions

    Class TestWalletCollectibles:

    1. test_wallet_collectible_send_from_expanded_info_view, id: 741841

    Device 1: Find CollectibleItemElement by xpath: //*[@content-desc='collectible-list-item']//*[contains(@text,'Glitch Punks')]/../..
    Device 1: Find CollectibleItemElement by xpath: //*[@content-desc='collectible-list-item']//*[contains(@text,'Glitch Punks')]/../..
    wallet/test_collectibles.py:159: in test_wallet_collectible_send_from_expanded_info_view
        self.wallet_view.get_collectible_element('Glitch Punks').scroll_and_click()
    ../views/base_element.py:209: in scroll_and_click
        self.scroll_to_element(direction=direction)
    ../views/base_element.py:204: in scroll_to_element
        raise NoSuchElementException(
     Device 1: CollectibleItemElement by xpath: `//*[@content-desc='collectible-list-item']//*[contains(@text,'Glitch Punks')]/../..` 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
    



    Device sessions

    Expected to fail tests (3)

    Click to expand

    Class TestWalletConnectSignTransactions:

    1. test_wallet_connect_sign_request_when_logged_out, id: 742944

    Device 1: Tap on found: LogInButton
    ## Signed in successfully!
    wallet/test_wallet_connect.py:317: in test_wallet_connect_sign_request_when_logged_out
        pytest.fail(
     Transaction request modal is not shown when making a sign request with fully closed Status app 
    

    [[Sign modal doesn't appear when logged out, https://github.com/status-im/status-mobile/issues/22586]]

    Device sessions

    Class TestCommunityMultipleDeviceMergedThree:

    1. test_community_mobile_data_and_wi_fi_only_fetching, id: 741924

    Device 2: Click until ChatMessageInput by accessibility id: chat-message-input will be presented
    Device 2: Looking for a message by text: message text 2
    communities/test_community.py:1324: in test_community_mobile_data_and_wi_fi_only_fetching
        self.errors.verify_no_errors()
    base_test_case.py:207: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Device 2: Message 'message text 2' in community, which is sent when receiver was offline, is received using mobile data 
    

    [[Community message can be fetched from offline when using mobile data]]

    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844

    Device 2: Find EmojisNumber by xpath: //*[starts-with(@text,'https://m.youtube.com/watch?v=Je7yErjEVt4')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']/../..//*[@content-desc='emoji-reaction-4']/android.widget.TextView[2]
    Device 2: Element EmojisNumber text is equal to 1
    communities/test_community.py:656: in test_community_links_with_previews_github_youtube_twitter_gif_send_enable
        self.errors.verify_no_errors()
    base_test_case.py:207: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Device 1: No preview is loaded for url https://youtu.be/Je7yErjEVt4
    E    Device 1: No preview is loaded for url https://www.youtube.com/watch?v=XN-SVmuJH2g&list=PLbrz7IuP1hrgNtYe9g6YHwHO6F3OqNMao
    E    Device 1: No preview is loaded for url https://m.youtube.com/watch?v=Je7yErjEVt4 
    

    [[Youtube links preview is not loaded on LambdaTest emulators, needs investigation]]

    Device sessions

    Passed tests (77)

    Click to expand

    Class TestWalletOneDeviceTwo:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestWalletOneDeviceThree:

    1. test_wallet_swap_dai_snt_real_tx, id: 742063
    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 TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    Class TestWalletConnectSignTransactions:

    1. test_wallet_connect_reject_sign_in_request, id: 742943
    Device sessions

    2. test_wallet_connect_sign_transaction, id: 742901
    Device sessions

    Class TestFallbackMultipleDevice:

    1. test_fallback_add_key_pair, id: 741054
    Device sessions

    2. test_fallback_sync_with_error, id: 740220
    Device sessions

    3. test_fallback_with_correct_seed_phrase, id: 740221
    Device sessions

    4. test_fallback_validate_seed_phrase, id: 740222
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_swap_flow_mainnet, id: 741555
    Device sessions

    2. test_wallet_balance_mainnet, id: 740490
    Device sessions

    3. test_wallet_bridge_flow_mainnet, id: 741612
    Device sessions

    4. test_wallet_send_flow_mainnet, id: 741554
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_leave, id: 702845
    Device sessions

    2. test_community_mentions_push_notification, id: 702786
    Device sessions

    3. test_community_markdown_support, id: 702809
    Device sessions

    4. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    5. test_community_join_when_node_owner_offline, id: 703629
    Device sessions

    Class TestAndroid12:

    1. test_create_account_android_12, id: 741806
    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_push_emoji, id: 702813
    Device sessions

    6. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    Class TestWalletCustomParamOneDevice:

    1. test_send_snt_custom_tx_params, id: 742910
    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_unread_messages_badge, id: 702841
    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_edit_delete_message_when_offline, id: 704615
    Device sessions

    8. test_community_message_edit, id: 702843
    Device sessions

    9. test_community_one_image_send_reply_set_reaction, id: 702859
    Device sessions

    Class TestAndroid13:

    1. test_create_account_android_13, id: 741807
    Device sessions

    Class TestProfileOneDevice:

    1. test_profile_back_up_seed_phrase_validation, id: 741966
    Device sessions

    2. test_profile_change_currency, id: 741967
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

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

    1. test_wallet_send_erc20_from_drawer[Optimism Sepolia-USD Coin-USDC (EVM)-2-0.01], id: 727230
    Device sessions

    2. test_send_eth[Arbitrum Sepolia-0.0001], id: 742015
    Device sessions

    3. test_send_eth[Status Network Sepolia-0.0002], id: 727229
    Device sessions

    4. test_wallet_send_erc20_from_drawer[Sepolia-USD Coin-USDC (EVM)-2-0.01], id: 742016
    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_community_undo_delete_message, id: 702869
    Device sessions

    4. test_community_mute_community_and_channel, id: 703382
    Device sessions

    5. test_community_discovery, id: 703503
    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    2. test_activity_center_mentions, id: 702957
    Device sessions

    3. test_activity_centre_contact_request_receiver_offline, id: 741809
    Device sessions

    Class TestWalletConnectDifferentNetworks:

    1. test_wallet_connect_testnet_dapp, id: 742899
    Device sessions

    2. test_wallet_connect_mainnet_dapp, id: 742900
    Device sessions

    Class TestWalletConnectBaseChecks:

    1. test_wallet_connect_disconnect, id: 742897
    Device sessions

    2. test_wallet_connect_decline_and_select_account, id: 742898
    Device sessions

    Class TestCommunityMultipleDeviceMergedThree:

    1. test_community_send_message_from_offline, id: 741925
    Device sessions

    2. test_community_messaging_on_mobile_data, id: 741926
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links_profile, id: 702775
    Device sessions

    3. test_deep_links_communities, id: 739307
    Device sessions

    Class TestProfileMultipleDevices:

    1. test_profile_change_accent_color, id: 741971
    Device sessions

    2. test_profile_change_profile_photo, id: 741969
    Device sessions

    3. test_profile_allow_new_contact_requests_toggle, id: 741972
    Device sessions

    4. test_profile_change_username, id: 741968
    Device sessions

    5. test_profile_set_bio, id: 741970
    Device sessions

    Class TestWalletCollectibles:

    1. test_wallet_send_collectible, id: 741840
    Device sessions

    2. test_wallet_collectibles_balance, id: 741839
    Device sessions

    status-im-auto avatar May 20 '25 21:05 status-im-auto