Skip to content

[#22580] Help community owners to make their community visible #22590

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

Open
wants to merge 15 commits into
base: develop
Choose a base branch
from

Conversation

ulisesmac
Copy link
Contributor

fixes #22580

Summary

This PR adds an info-box for community owners that helps them to increase the visibility of their community.

Review notes

Additionally, this PR improved the performance UI and UX for the community overview screen. why? Because I previously reworked this screen but didn't have enough time to have things on shape, since now this screen has been modified to add the info-box, it was a good moment to improve it.

This PR:
✅ Fixed the safe-area top on Android devices
✅ Improved the perceived rendering time by delaying some components (introduced render-after based on delay-render that accepts an amount of ms to delay the rendering).
E.g. The cover image is rendered first (this avoids pushing a white screen to the user), then the navigation bar, the logo, and 150ms later (in the middle of the opening animation that lasts 300ms), the flat-list with the channels.
✅ Fixed the interaction when scrolling to the collapsed/expanded versions, previously it was hardcoded as a gesture of 150, now the user actually scrolls on the real height and it feels better.

Check this video testing on a real device:

  • 😄 It's a development build, so a prod. build should perform even better.
  • 😞 It's running on a Galaxy Z fold 6, a high-end Android phone, on Emulators it also looked very smooth, and that's also my expectation on iOS, but I don't expect something great on low-end Android phones.
community-overview-demo.mp4

Testing notes

As long as this PR doesn't break the community overview (e.g. on iOS or on certain Android devices) I think the PR review can focus on and the actual feature: the info-box.

Platforms

  • Android
  • iOS

status: ready

@ulisesmac ulisesmac requested review from ilmotta and seanstrom May 16, 2025 06:58
@ulisesmac ulisesmac self-assigned this May 16, 2025
@status-github-bot-v2 status-github-bot-v2 bot moved this to CONTRIBUTOR in Pipeline for QA May 16, 2025
@ulisesmac ulisesmac moved this from CONTRIBUTOR to REVIEW in Pipeline for QA May 16, 2025
Comment on lines 28 to +29
(defn- content
[{:keys [theme type button-label on-button-press message]}]
[{:keys [theme type button-label on-button-press message button-icon-right]}]
Copy link
Contributor Author

Choose a reason for hiding this comment

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

We needed an icon for the info-box's button (:i/external), here it adds the parameter

@status-im-auto
Copy link
Member

status-im-auto commented May 16, 2025

Jenkins Builds

Click to see older builds (8)
Commit #️⃣ Finished (UTC) Duration Platform Result
164dc62 #1 2025-05-16 07:02:53 ~3 min tests 📄log
✔️ 164dc62 #1 2025-05-16 07:09:02 ~9 min android-e2e 🤖apk 📲
✔️ 164dc62 #1 2025-05-16 07:09:28 ~10 min android 🤖apk 📲
✔️ 164dc62 #1 2025-05-16 07:11:27 ~12 min ios 📱ipa 📲
f25f028 #2 2025-05-16 07:22:17 ~3 min tests 📄log
✔️ f25f028 #2 2025-05-16 07:26:00 ~7 min android-e2e 🤖apk 📲
✔️ f25f028 #2 2025-05-16 07:27:48 ~9 min android 🤖apk 📲
✔️ f25f028 #2 2025-05-16 07:30:05 ~11 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 6250a1c #3 2025-05-19 07:33:18 ~4 min tests 📄log
✔️ 6250a1c #3 2025-05-19 07:38:07 ~9 min android-e2e 🤖apk 📲
✔️ 6250a1c #3 2025-05-19 07:38:33 ~10 min android 🤖apk 📲
✔️ 6250a1c #3 2025-05-19 07:40:44 ~12 min ios 📱ipa 📲
✔️ 45c4904 #5 2025-05-20 05:41:20 ~4 min tests 📄log
✔️ 45c4904 #5 2025-05-20 05:45:13 ~8 min android-e2e 🤖apk 📲
✔️ 45c4904 #5 2025-05-20 05:46:02 ~9 min android 🤖apk 📲
✔️ 45c4904 #5 2025-05-20 05:49:29 ~12 min ios 📱ipa 📲

Comment on lines 198 to 199
(defn render-after
[{:keys [_ms] :as opts} & children]
(delay-render (into [:<>] children) opts))

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is expected to be used as a component (delay-render is used as a function), also it receives any amount of children, compared to delay-render that receives a single child.

Sometimes we want to delay a bit more the components, setTimeout with 0 is extremely fast, since our current React version on Android don't batch updates, an option would be use reagent/next-tick or js/RequestAnimationFrame instead.

Since some components need a bigger delay, this render-after component receives an ms key and renders after that period of time. (ms used to match the dispatch-later key from re-frame, so I don't introduce a new concept).

Copy link
Contributor

Choose a reason for hiding this comment

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

Since you provided some useful context here, could you add a docstring to render-after as well @ulisesmac?

delay-render is used as a function

delay-render in the repo is sometimes used as a function and sometimes as a component. Why do you want render-after to use delay-render as a function?

Comment on lines +22 to 25
;; On Android we count the navigation bar page-nav padding top
;; because it isn't overlapped with the safe-area top.
(when platform/android? 12)
safe-area/top)})
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The safe area fix on Android 👀 the community-cover image now is bigger and looks better :)

Comment on lines +76 to +81
(re-frame/reg-sub
:communities/community-members-count
(fn [[_ community-id]]
(re-frame/subscribe [:communities/community-members community-id]))
(fn [members _]
(count members)))
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This was causing a re-render when visiting a community, now it's cached so we are saving one re-render.

As far as I tested, the screen doesn't re-render by external factors not related.

:tags tags
:permissions permissions
:role-permissions? role-permissions?})))
(let [owner? (= memberRole constants/community-member-role-owner)]
Copy link
Contributor Author

Choose a reason for hiding this comment

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

checking for owner, so we add the info-box

Comment on lines -23 to +35
;; NOTE: values compared against `scroll-amount` to trigger animations.
(def expand-header-threshold
"Dragging distance to collapse/extend the community."
150)

(def sheet-displacement-threshold
"Dragging distance to round sheet borders and move the sheet 8 units."
(+ expand-header-threshold 20))
(def snap-header-threshold-factor
"Threshold to automatically move the header to a collapsed/expanded state and avoid an
intermediate state. Applied to `collapse-threshold`."
0.65)

(def text-movement-threshold
"Dragging distance to start the text movement from/to the bottom to/from the right."
(* expand-header-threshold 0.7))
(def navbar-content-threshold-factor
"When the community name and logo start to appear. Applied to sheet-displacement-threshold."
32)

(def info-opacity-threshold
(def info-opacity-threshold-factor
"Dragging distance to appear/disappear the community info (description, tags & stats)."
(* expand-header-threshold 0.5))

(def snap-header-threshold
"Threshold to automatically move the header to a collapsed/expanded state and avoid an
intermediate state."
(* expand-header-threshold 0.75))

(def expand-header-limit
"Max dragging distance where the header animation ends. It works to identify when to
start the flat-list scrolling."
(+ sheet-displacement-threshold 56))
0.5)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

These values were fixed, they implied a constant scroll gesture to collapse the community. but sometimes it felt strange, because a height of 500 was covered with a gesture of 150.

This PR had to move these values to be dynamic, that's why this is changing too much and also the worklets. The benefit is that now the gesture is 1:1 and feels very good

@ulisesmac ulisesmac force-pushed the 22580-help-owners-make-their-community-visible branch from f25f028 to 6250a1c Compare May 19, 2025 07:28
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.

@ulisesmac PR LGTM overall. Also thanks for the code improvements.

The only thing I'm not sure is the UX in iOS. As you can see in the video, it looks worse and always has a long and noticeable delay before the images load. Can you see the same issue?

The Android PR feels slightly better than develop because the flashing is less noticeable, but I had to rewatch multiple times to perceive. This made me question the need for the custom render-after component and if it's worth the trouble, but perhaps the improvements are more noticeable in other Android devices.

Edit: Android video recorded in a Galaxy Tab

Android 2.33

Screen_Recording_20250519_074857_Status.mp4

Android PR

Screen_Recording_20250519_075005_Status.PR.mp4

iOS PR

ScreenRecording_05-19-2025.19-42-12_1.MP4

Comment on lines 198 to 199
(defn render-after
[{:keys [_ms] :as opts} & children]
(delay-render (into [:<>] children) opts))

Copy link
Contributor

Choose a reason for hiding this comment

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

Since you provided some useful context here, could you add a docstring to render-after as well @ulisesmac?

delay-render is used as a function

delay-render in the repo is sometimes used as a function and sometimes as a component. Why do you want render-after to use delay-render as a function?

{:top (- safe-area/top 12) ;; -12 to place the button next to the safe-area
{:top (if platform/android?
safe-area/top
(- safe-area/top 12)) ;; -12 to place the button next to the safe-area
Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I remember this was fine, and that ; was just for comments aligned to the right. I fixed these in the file. Thanks for the reminder,

@ulisesmac
Copy link
Contributor Author

@ilmotta Thank you so much for taking time to test it on Android!

Regarding to the comparison with 2.33 on Android.

The current implementation of the community overview is HEAVIER compared to 2.33, in 2.33 we don't handle gestures, the styles are wrong, there's no way to collapse and expand the community, etc. So, if delay-render (or render-after) is not used, the screen flashes because the current version takes a lot of time to be rendered.

Actually is awesome to know that the current impl. that involves more features and is heavier renders faster than the version with less features.

About iOS..., sadly, I wasn't able to test it, I don't have access to my Macbook 😞 so it's going to be harder to solve it, I'll ask for help within the team if I don't find a solution

@ulisesmac
Copy link
Contributor Author

@ilmotta

Ok, now I saw the iOS video, my linux has problems playing it.

It's very strange to me 🤔 I'm surprised that iOS renders everything SUPER FAST, I'd actually doubt you tested this PR in that video 🤔

In the video, the delay to display the images is not related to the delay-render usage, actually, in the code I prioritize to render the community's cover image first.

So, what's going on?

  • I can see iOS don't cache the images rendered compared to Android.

  • Seems iOS render images at the end, like a low-prio task, maybe it's also related to the push animation performed, maybe that animation holds the thread used to render images 🤔

  • I compared to 2.33 on an iPhone 16 Pro, and the same issue exists, but only in the Status community, maybe because, as I said, iOS don't prioritize the image rendering and this community is heavy to render.

    In the current implementation it's more noticeable because previously (on 2.33) when any image was missing we just left a white space, now I use the community color. IMO this improves the UX, because at least the user sees a consistent color instead of a white space that looks buggy.

**How to improve it?**🤔

  • Trying to use fast-image for iOS.
  • I discard animating a fade from the community color -> cover and logo images, because it just adds complexity.
  • If only happens on very heavy communities, maybe ignore it for a while 🤷‍♂️
  • Trying to remove the delay-render for iOS, since it renders too fast, maybe it's not needed and maybe it improves the UX.

I'd prefer to explore these approaches when I have access to my dev environment for iOS so I can properly address it, or if it's too bad, I'd ask for help within the team.

@ilmotta
Copy link
Contributor

ilmotta commented May 19, 2025

About iOS..., sadly, I wasn't able to test it, I don't have access to my Macbook 😞 so it's going to be harder to solve it, I'll ask for help within the team if I don't find a solution

I'm curious to see how other folks with iOS see the Status community loading and if they always see the banner flash slowly like it does for me. Maybe you can ask a QA or two to check in their iPhones.

The problem does not happen in the other communities @ulisesmac, only the Status community. Would it be a deal breaker to release with this problem only for the Status community in iOS? I don't think so, as long as we can commit to fix in a subsequent release. Currently, in 2.33, it looks even worse IMO because there are a few animation artifacts when the Status community opens which you fixed in this PR.

@ulisesmac
Copy link
Contributor Author

ulisesmac commented May 19, 2025

@ilmotta

These are the white spaces I mentioned before, when the app don't have access to the images:

And an important update on my previous comment:

It's a more general issue! Look at this video (running 2.33)

trim.0DAF14CB-5420-4192-A0A3-B707BC9A49C5.MOV

Even the "discover communities" screen has that problem with its images when we navigate, the status community also presents it, other communities render faster and don't show the issue.

So maybe we can investigate it separately and provide a general solution.

WDYT?

@ilmotta
Copy link
Contributor

ilmotta commented May 19, 2025

It's very strange to me 🤔 I'm surprised that iOS renders everything SUPER FAST, I'd actually doubt you tested this PR in that video 🤔

I understand, but I had tested your PR twice, today, and before in another day where I couldn't finish my PR review.

I have also seen all the issues you recorded above regarding the Status community. Yes, definitely something about the Status community makes things worse.

@ilmotta
Copy link
Contributor

ilmotta commented May 19, 2025

So maybe we can investigate it separately and provide a general solution.

I agree, I shared above as well a few minutes ago, maybe you missed.

The problem does not happen in the other communities @ulisesmac, only the Status community. Would it be a deal breaker to release with this problem only for the Status community in iOS? I don't think so, as long as we can commit to fix in a subsequent release. Currently, in 2.33, it looks even worse IMO because there are a few animation artifacts when the Status community opens which you fixed in this PR.

@ulisesmac ulisesmac force-pushed the 22580-help-owners-make-their-community-visible branch from 6250a1c to 62a23c0 Compare May 20, 2025 05:35
@ulisesmac ulisesmac force-pushed the 22580-help-owners-make-their-community-visible branch from 62a23c0 to 45c4904 Compare May 20, 2025 05:36
@ulisesmac
Copy link
Contributor Author

@ilmotta Comments addressed!
Thank you for the time dedicated, mainly for testing on different devices!

Copy link
Member

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

Thanks for the PR 🙌 , left some minor comments

return useAnimatedStyle(() => {
const firstDisplacement = scrollAmount.value < expandHeaderThreshold;
if (firstDisplacement) {
const isFirstDisplacement = initialState.value === 'expanded' || scrollAmount.value < collapseThreshold.value;
Copy link
Member

Choose a reason for hiding this comment

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

Tiny comment: Maybe we can create a helper function for computing isFirstDisplacement?

Comment on lines +147 to +150
if (initialState.value === 'collapsed') {
opacity = 0;
} else if (initialState.value === 'expanded') {
opacity = 1;
Copy link
Member

Choose a reason for hiding this comment

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

Not sure who is choosing the names for collapsed or expanded (whether it's us or a library), but maybe we can introduce some constants for the strings?

Comment on lines +190 to +198
([content]
(delay-render {:ms 0} content))
([{:keys [ms]} & children]
(let [[render? set-render] (use-state false)]
(use-mount
(fn []
(js/setTimeout #(set-render true) ms)))
(when render?
(into [:<>] children)))))
Copy link
Member

Choose a reason for hiding this comment

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

Nice 👍

@status-im-auto
Copy link
Member

92% of end-end tests have passed

Total executed tests: 88
Failed tests: 4
Expected to fail tests: 3
Passed tests: 81
IDs of failed tests: 741054,742942,741612,741841 
IDs of expected to fail tests: 702844,742944,741924 

Failed tests (4)

Click to expand
  • Rerun failed tests

  • 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/nCan't extract logs!
    



    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/nCan't extract logs!
    



    Device sessions

    Class TestFallbackMultipleDevice:

    1. test_fallback_add_key_pair, id: 741054

    Device 1: Swiping left on element Button
    Device 1: Find Button by xpath: //android.view.ViewGroup[contains(@content-desc,'Imported account')]

    profile/test_fallback.py:209: in test_fallback_add_key_pair
        wallet_1.get_account_element(account_name=imported_key_pair_account_name).swipe_left_on_element()
    ../views/base_element.py:296: in swipe_left_on_element
        location, size = self.get_element_coordinates()
    ../views/base_element.py:289: in get_element_coordinates
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//android.view.ViewGroup[contains(@content-desc,'Imported account')]` 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/nCan't extract logs!/nCan't extract logs!/nCan't extract logs!
    



    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_bridge_flow_mainnet, id: 741612

    Device 1: Find SlideButton by xpath: //*[@resource-id='slide-button-track']
    Device 1: Click system back button

    wallet/test_wallet_mainnet_no_send.py:349: in test_wallet_bridge_flow_mainnet
        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: Base to Optimism: Max fees is not shown before pressing Review Bridge button/nCan't extract logs!
    



    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 /nCan't extract logs!
    

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

    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 /nCan't extract logs!/nCan't extract logs!
    

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

    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 channel, which is sent when receiver was offline, is missed after turning wi-fi on /nCan't extract logs!/nCan't extract logs!
    

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

    Device sessions

    Passed tests (81)

    Click to expand

    Class TestWalletConnectLoggedOut:

    1. test_wallet_connect_logged_out, id: 742945
    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 TestWalletOneDeviceTwo:

    1. test_wallet_add_remove_regular_account, id: 727231
    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 TestWalletCustomParamOneDevice:

    1. test_send_snt_custom_tx_params, id: 742910
    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 TestAndroid12:

    1. test_create_account_android_12, id: 741806
    Device sessions

    Class TestWalletOneDeviceThree:

    1. test_wallet_swap_dai_snt_real_tx, id: 742063
    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_text_message_delete_push_disappear, id: 702733
    Device sessions

    6. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    7. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    8. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    Class TestAndroid13:

    1. test_create_account_android_13, id: 741807
    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 TestCommunityMultipleDeviceMergedThree:

    1. test_community_send_message_from_offline, id: 741925
    Device sessions

    2. test_community_messaging_on_mobile_data, id: 741926
    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 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 TestWalletCollectibles:

    1. test_wallet_send_collectible, id: 741840
    Device sessions

    2. test_wallet_collectibles_balance, id: 741839
    Device sessions

    Class TestFallbackMultipleDevice:

    1. test_fallback_sync_with_error, id: 740220
    Device sessions

    2. test_fallback_with_correct_seed_phrase, id: 740221
    Device sessions

    3. test_fallback_validate_seed_phrase, id: 740222
    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 TestProfileOneDevice:

    1. test_profile_back_up_seed_phrase_validation, id: 741966
    Device sessions

    2. test_profile_change_currency, id: 741967
    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 TestWalletOneDevice:

    1. test_wallet_swap_flow_mainnet, id: 741555
    Device sessions

    2. test_wallet_balance_mainnet, id: 740490
    Device sessions

    3. test_wallet_send_flow_mainnet, id: 741554
    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

    10. test_community_several_images_send_reply, id: 703194
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    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 TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_profile_switch, id: 703133
    Device sessions

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    3. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    4. test_community_undo_delete_message, id: 702869
    Device sessions

    5. test_community_mute_community_and_channel, id: 703382
    Device sessions

    6. test_community_discovery, id: 703503
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_reactions, id: 703202
    Device sessions

    2. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    3. test_group_chat_offline_pn, id: 702808
    Device sessions

    4. test_group_chat_pin_messages, id: 702732
    Device sessions

    5. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    6. test_group_chat_mute_chat, id: 703495
    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

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    None yet
    Projects
    Status: REVIEW
    Development

    Successfully merging this pull request may close these issues.

    Help community owners to make their community visible
    5 participants