Notifications

Be aware of the following terminology used below.
– By “Notification”, an iOS notification is meant. They appear in the iOS/iPadOS Notification Centre.
– A “CrewLink notification” is a pending (waiting for confirmation) CrewLink roster change issued by the airline.

Notifications are sent for:
1. Pending CrewLink notifications
2. CrewLink validity End date changes

Let’s call these two actions “Notification check”. The notification check always does both actions in one go. Are there any pending CrewLink notifications, and did the CrewLink validity End date change?

When does a Notification check trigger?
1. Automatic – Rostoics uses the iOS background fetch (BF) framework, which is active when the app is in background (id est app is not active). To avoid hammering the servers, Notification checks are spaced by at least 15 minutes (as of this writing – hardcoded, might change in the future). This doesn’t mean that BF fires every 15 minutes. The spacing could be hours, depending on battery life, user’s habits regarding his device as well as the app, the time of the day, network quality, … Basically, BF is a blackbox. Apple doesn’t reveal details when it triggers. BF tries to optimise in terms of battery life and users need/wish to have updated information available when requested (some kind of simple artificial intelligence).
2. Manual – Because of the somewhat random behaviour of BF, server checks also fire when the app is starting up from suspended mode (meaning when the app doesn’t run in background, meaning the app was terminated).
3. Manual – On top, notifications can also be forced while the app is running by using the Pull-to-refresh feature from the Info tab.

The Info tab shows when (date & time) the last Notification check took place (“Last notif. check”). The “CrewLink validity End date” is shown right below (date only).

Badge icons are used to show the user on the Home screen is there are any notifications. “1” can either be a pending CrewLink notification or a change in CrewLink validity End date. Check in the iOS/iPadOS which one fired. “2” means both were triggered simultaneously. They appear the as grouped notifications in the Notification Centre.

When are the badge icons reset?
– Pending Crewlink notifications:
— when confirmed.
— anytime automatic or manual Notification checks don’t find a pending CrewLink notification (anymore).
— when Reset settings (Settings tab) is used.
– CrewLink validity End date changes
— after a successful download of a roster, using the CrewLink validity End date is used as End date.

News & Updates
==============
02.08.2019 : Rostoics 1.0.0-5 released (AppStore)
      code : Manage tab
             Start date / End date order algorithm changed.
      code : Manage tab
             rostoics (DH) server basename format including version & build.
             (e.g. 1564685846623_iOS-0-0.4-4.pdf)
      code : TLCs tab
             TLC background download (if required) and local storage.
      code : TLCs tab
             TLC view reloaded if changing connectivity from offline to online.
             real-time update if data becomes available.
29.07.2019 : Rostoics 0.0.3-3 released (beta testers only)
       fix : Manage tab
             'Generate calendar events' button bug w/ partial import.
       fix : Settings tab > Misc section > About
             text ident formatting corrected.
    change : Settings tab > Privacy section >
             'Show own details in TLC list' radio button removed.
       add : Manage tab
             'Download today's roster' button added.
24.07.2019 : Rostoics 0.0.2-2 released (beta testers only)
       fix : Manage tab
             'Generate calendar events' code now shows proper SVProgressHUDs.
       add : statusOnline code implemented using delegates.
       add : TLCs tab
             enable/disable implemented as per statusOnline.
       add : Info tab
             'User authenticated' implemented.
      code : skipped TLCs implemented.
02.07.2019 : Rostoics 0.0.1-1 released (beta testers only)
             first release.