Page MenuHomePhabricator

QTE: Investigate support of CampaignEvents extension on iOS & Android apps
Open, MediumPublic

Description

Background:

We want to investigate the current state of the CampaignEvents extension on the Android & iOS apps, so that any critical issues can be surfaced, prioritized, and addressed. We also want to learn about issues that may be of medium or lower importance as well, so we can determine what next steps to take with them.

Acceptance Criteria:

Event Timeline

Android (Google Pixel 9 and Samsung Galaxy S25)

❌ Event pages are not searchable on the android app. If you search for anything in the Event namespace it will not display

Special:AllEvents
Events tab - ❌ Filtering does not work, filters do not persist on searchCommunities tab - ❌ does not switch to communites tab
Screen Recording 2025-08-19 at 2.51.12 PM.gif (1×808 px, 2 MB)
Screen Recording 2025-08-19 at 3.03.42 PM.gif (1×808 px, 2 MB)

When already logged into the app, clicking on Special:GenerateInvitationList and Special:MyInvitationLists will ask the user to re-authenticate, and then will fail. I have tried being logged in

Special:GenerateInvitationList, Special:MyInvitationLists
❌ auth reroute failing (screenshot)auth reroute failing (gif)
Screenshot 2025-08-19 at 3.21.38 PM.png (1×816 px, 422 KB)
Screen Recording 2025-08-19 at 3.30.12 PM.gif (1×808 px, 538 KB)

Some other pages that I have confirmed have the same issue with the authentication flow: Special:EmailUser, Special:BotPasswords, Special:Preferences

Login did work a few days later, so I was able to test this before the auth issue above started happening again:

✅ Special:MyInvitationLists✅ Special:InvitationList/{x}
Screenshot 2025-08-22 at 12.17.03 PM.png (1×858 px, 429 KB)
Screenshot 2025-08-22 at 12.17.52 PM.png (1×818 px, 637 KB)

This worked for a while but then I checked again and I was unable to access any of the invitation list pages. So I am not sure if Special:GenerateInvitationList will work or not because these pages are intermittently failing or not allowing access. I am still able to access these lists on the web version.

❌ Special:GenerateInvitationList and Special:MyInvitationLists
Screen Recording 2025-08-22 at 5.21.12 PM.gif (1×808 px, 1 MB)

If you go to an Event page from Special:AllEvents that is for a different language wiki that you are currently on in the app, there is no way to register for the event on the Event page. It doesn't redirect to the web app, or the correct language wiki so the user can register on the wikipedia app. example I used when logged in to English or Igbo wikis.

❌ Event page screenshotEvent page gif
Screenshot 2025-08-22 at 5.48.32 PM.png (1×804 px, 757 KB)
Screen Recording 2025-08-22 at 5.50.38 PM.gif (835×404 px, 2 MB)

Note though that if the event is on meta, it will open the browser version, and the user can register.

If the event has ended, then no header is shown. example

Event ended, no header shown
Screenshot 2025-08-22 at 6.03.34 PM.png (1×816 px, 672 KB)

I am unable to test Special:EnableEventRegistration currently because the IP address is blocked for that page for browserstack android app. I'm trying to get that unblocked.

Tested on iPhone 13 mini:

For iOS, things are mostly working. No issues on Special:GenerateInvitatationList, Special:MyInvitationLists, Special:InvitationList/{x}, Special:EditEventRegistration, or Special:AllEvents

✅ Special:EnableEventRegistration✅ Special:GenerateInvitationList, MyInvitationLists, InvitationList/{x}
(also see the issue mentioned below re: transparent header)Maybe cache holding on to older version of Special:MyInvitationLists? Otherwise working correctly
ScreenRecording_08-27-2025 13-33-35_1.gif (960×443 px, 3 MB)
ScreenRecording_08-27-2025 15-20-54_1.gif (960×443 px, 1 MB)

A few issues though:

When I create an event and enable event registration all from iOS, I am able to successfully enable an event registration (Special:EnableEventReigstration) the registration header is not displaying on the event page. But I can successfully see it on the web version, and it is showing up in Special:MyEvents as well. I am wondering if this is a cacheing issue with the Event namespace on the device?

❌ header not displaying on iOS after enabling event✅ header displaying correctly on web version of same event
IMG_2106.PNG (2×1 px, 154 KB)
Screenshot 2025-08-27 at 2.27.58 PM.png (1×3 px, 372 KB)

Registering for events is working correctly on iOS, whether it is on the wiki that the user is currently on in the app or not:

✅ registering for event on same wiki as app✅ registering for event on different wiki from app
7091F014-ACAB-4ABD-8D1E-055FC14F6E1F.png (2×1 px, 242 KB)
1A2C3A49-5FB5-4AB5-8CC4-FDB7FA3549DF.png (2×1 px, 221 KB)

A UX issue I want to flag but ultimately it doesn't affect functionality.

When searching for Special:AllEvents, and then clicking to go to Special:AllEvents, there is a lag where the app flashes for a moment what I believe is the home page, and then displays a blank page while Special:AllEvents is loading:

ScreenRecording_08-27-2025 00-30-09_1 2.gif (1×886 px, 702 KB)


Here's a potential UI issue. When scrolling on Special:EventDetails/{x} (and also occurs on Special:MyInvitationLists and Special:InvitationList/{x}, the top header becomes transparent, but there is still a border around it.

❓ note transparent border at top on scroll
ScreenRecording_08-27-2025 13-35-29_1.gif (1×620 px, 3 MB)

My recommendation:
Make sure all filters and both tabs are working on Special:AllEvents
Allow users to click through from Special:AllEvents event list to specific events
Allow users to register for that event, regardless if it is on the same wiki that the user is currently on or not. This is working correctly on iOS, but not android currently.

Other pages can either be disabled or kick out to the web version, though note the auth issue for kicking out to web version in the android app. Might be better to just disable other pages.

@ifried see T400773#11112222 for android and T400773#11126367 for iphone testing results

ifried renamed this task from [placeholder] Investigate support of CampaignEvents extension on iOS & Android apps to QTE: Investigate support of CampaignEvents extension on iOS & Android apps.Aug 29 2025, 8:10 PM
ifried updated the task description. (Show Details)

Thank you so much for this thorough analysis and list of recommendations, @vaughnwalters! It is so helpful.

@JTannerWMF & @Seddon: The Connection team has now completed our analysis of the state of the CampaignEvents extension in the Android & iOS apps (see T400773#11112222 for Android and T400773#11126367 for iOS). Overall, things seem to be mostly working well in iOS (with a few issues), but there are some bigger issues in Android that are probably worth prioritizing to fix soon, since they block some basic user flows.

Our QTE, Vaughn, has provided a great run-down of the top issues and priorities to fix, which I agree with, which are:

  • Priority 1: Allow users to click through from Special:AllEvents event list to specific events. Allow users to register for that event, regardless if it is on the same wiki that the user is currently on or not. This is working correctly on iOS, but not on Android. What is going on here is that, if someone clicks on an event that is on a wiki that they're not currently on, they *should* be redirected to that wiki event page with a "Register" button, but that's not currently happening. Instead, no "Register" button displays on the event page. So, they are prevented from joining the event. Since it involves the basic ability to register for an event, it's high priority for us.
  • Priority 2: Make sure all filters and both tabs are working on Special:AllEvents. This is important because the Collaboration List is a tool to find events and WikiProjects that interest you. Right now, some core pieces of the experience (applying search filters to find events, seeing WikiProjects in the Communities tab) are not working for Android users.

He also wrote, which I agree with: Other pages can either be disabled or kick out to the web version, though note the auth issue for kicking out to web version in the android app. Might be better to just disable other pages.

Generally speaking, I think it makes sense to ensure that any basic elements of the participant experience (i.e., finding an event to join, going to the event page, and registering for the event) should work properly on the apps. However, the organizer workflows (such as enabling registering, generating an invitation list, etc) are more complex and less common, so I think it is okay if those are supported in the mobile web/desktop versions. I am curious to hear your thoughts on potential next steps, and I am happy to answer any questions you have. Thanks in advance for taking a look.

Hi @ABorbaWMF! I am just quickly checking in on the status of this work and if there have been any developments. Thanks in advance!

@ifried, thanks for checking in on this. After review, we decided to add the events extension to the list of sites that we open on the device browser rather than native app view.