eurofurence / ef-app_ios

iOS version of the official Eurofurence app
MIT License
5 stars 1 forks source link

Improve the app's ability to show just-posted announcements #491

Open ShezHsky opened 2 years ago

ShezHsky commented 2 years ago

During EF 26 there were a few reports of announcement notifications deep-linking to the "Expired announcement" view, even though they'd literally just been advertised. It was confirmed some of these devices had low-power mode enabled so would not have pre-emptively loaded content via the app delegate's application(_:didReceiveRemoteNotification:fetchCompletionHandler:) delegate callback.

To make this more reliable for EF 27, we should tweak the way announcements are presented so that:

We should also investigate whether shifting the acquisition of content in a notification extension would help improve reliability of background fetches

Fenrikur commented 11 months ago

According to user reports (and own experience), this issue seems to now be happening independently of whether or not the device in question is in low-power mode. When receiving a notification for an announcement, tapping on it to open the app without having opened the app manually to trigger a data refresh will result in the user being informed about the announcement already having expired.

Steps to verify issue:

  1. Tap notification for announcement shortly after it arrives.
  2. App will show that the announcement has already expired or been deleted.
  3. Return to News view of app and pull down to refresh.
  4. Announcement will appear in list and can be opened in detail view.

Steps to verify it actually works when data has been refreshed:

  1. Receive notification about new announcement.
  2. Open app directly instead of tapping notification and trigger data refresh.
  3. Announcement should appear in News view.
  4. Leave app (e.g. to Home screen) and tap announcement notification.
  5. App correctly opens to announcement detail view.

Thanks for Wilk (Telegram), Faye (Ticket) and others for reporting this.