mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 02:29:55 +02:00
feat(apple): local notifications for transfer lifecycle events
Adds background notifications for the "the thing you were waiting for is
done" moments, alongside the existing incoming-approval-request one:
- a receive finished downloading (receive -> done)
- a receive failed / was interrupted (receive -> failed)
- a share you own failed (send -> failed)
- a receiver finished downloading your share (receiver status completed)
A new TransferNotificationCoordinator observes core state + signals and
publishes these; the decision of which moments notify is a pure function
(plannedTransferNotifications / plannedReceiverNotifications), unit-tested
independently. The first state snapshot only primes existing history as seen
so launch doesn't spam.
Notification permission is now the single source of truth. The in-app
notifications toggle and its decoupled UserDefaults preference are gone;
the Settings section shows an "Allow notifications" button that requests the
OS permission (or deep-links to Settings once decided), and notifications
gate purely on `permission == .granted`.
macOS delivery fixes:
- add a UNUserNotificationCenterDelegate so banners present even while the
app is active (the app window is usually open on macOS)
- present-when-active on macOS, suppress-when-foregrounded on iOS
- reserve the notification id before awaiting publish: the CombineLatest
fired several times and re-added the same identifier, which macOS
coalesces into a silent update with no banner
- LocalNotificationService seeds its permission at init so gating can't
race a not-yet-refreshed .notDetermined
Eight localized title/body strings added (apple-only); the shared
notifications_description copy is generalized from "receive requests" to
"transfer activity".
This commit is contained in:
@@ -117,7 +117,7 @@
|
||||
<string name="nav_send">Senden</string>
|
||||
<string name="nav_settings">Einstellungen</string>
|
||||
<string name="network_title">Netzwerk</string>
|
||||
<string name="notifications_description">Werden Sie über neue Empfangsanfragen benachrichtigt, während VniDrop im Hintergrund läuft.</string>
|
||||
<string name="notifications_description">Werden Sie über Übertragungsaktivitäten benachrichtigt, während VniDrop im Hintergrund läuft.</string>
|
||||
<string name="notifications_enabled_message">Mitteilungen aktiviert.</string>
|
||||
<string name="notifications_local_title">Mitteilungen erlauben</string>
|
||||
<string name="notifications_permission_denied">Mitteilungen sind für VniDrop deaktiviert. Sie können sie in den Einstellungen aktivieren.</string>
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<string name="nav_send">Enviar</string>
|
||||
<string name="nav_settings">Ajustes</string>
|
||||
<string name="network_title">Red</string>
|
||||
<string name="notifications_description">Reciba avisos sobre nuevas solicitudes de recepción cuando VniDrop está en segundo plano.</string>
|
||||
<string name="notifications_description">Reciba avisos sobre la actividad de las transferencias cuando VniDrop está en segundo plano.</string>
|
||||
<string name="notifications_enabled_message">Notificaciones activadas.</string>
|
||||
<string name="notifications_local_title">Permitir notificaciones</string>
|
||||
<string name="notifications_permission_denied">Las notificaciones están desactivadas para VniDrop. Puede activarlas en Ajustes.</string>
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<string name="nav_send">Envoyer</string>
|
||||
<string name="nav_settings">Réglages</string>
|
||||
<string name="network_title">Réseau</string>
|
||||
<string name="notifications_description">Soyez averti des nouvelles demandes de réception lorsque VniDrop est en arrière-plan.</string>
|
||||
<string name="notifications_description">Soyez averti de l’activité des transferts lorsque VniDrop est en arrière-plan.</string>
|
||||
<string name="notifications_enabled_message">Notifications activées.</string>
|
||||
<string name="notifications_local_title">Autoriser les notifications</string>
|
||||
<string name="notifications_permission_denied">Les notifications sont désactivées pour VniDrop. Vous pouvez les activer dans les Réglages.</string>
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<string name="nav_send">Invia</string>
|
||||
<string name="nav_settings">Impostazioni</string>
|
||||
<string name="network_title">Rete</string>
|
||||
<string name="notifications_description">Ricevi avvisi sulle nuove richieste di ricezione quando VniDrop è in background.</string>
|
||||
<string name="notifications_description">Ricevi avvisi sull’attività dei trasferimenti quando VniDrop è in background.</string>
|
||||
<string name="notifications_enabled_message">Notifiche attivate.</string>
|
||||
<string name="notifications_local_title">Consenti le notifiche</string>
|
||||
<string name="notifications_permission_denied">Le notifiche sono disattivate per VniDrop. Può attivarle in Impostazioni.</string>
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<string name="nav_send">Versturen</string>
|
||||
<string name="nav_settings">Instellingen</string>
|
||||
<string name="network_title">Netwerk</string>
|
||||
<string name="notifications_description">Ontvang meldingen over nieuwe ontvangstverzoeken terwijl VniDrop op de achtergrond draait.</string>
|
||||
<string name="notifications_description">Ontvang meldingen over overdrachtsactiviteit terwijl VniDrop op de achtergrond draait.</string>
|
||||
<string name="notifications_enabled_message">Meldingen ingeschakeld.</string>
|
||||
<string name="notifications_local_title">Meldingen toestaan</string>
|
||||
<string name="notifications_permission_denied">Meldingen zijn uitgeschakeld voor VniDrop. U kunt ze inschakelen in Instellingen.</string>
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<string name="nav_send">Wyślij</string>
|
||||
<string name="nav_settings">Ustawienia</string>
|
||||
<string name="network_title">Sieć</string>
|
||||
<string name="notifications_description">Otrzymuj powiadomienia o nowych prośbach o odbiór, gdy VniDrop działa w tle.</string>
|
||||
<string name="notifications_description">Otrzymuj powiadomienia o aktywności transferów, gdy VniDrop działa w tle.</string>
|
||||
<string name="notifications_enabled_message">Powiadomienia włączone.</string>
|
||||
<string name="notifications_local_title">Zezwól na powiadomienia</string>
|
||||
<string name="notifications_permission_denied">Powiadomienia są wyłączone dla VniDrop. Możesz je włączyć w Ustawieniach.</string>
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<string name="nav_send">Enviar</string>
|
||||
<string name="nav_settings">Definições</string>
|
||||
<string name="network_title">Rede</string>
|
||||
<string name="notifications_description">Seja notificado sobre novos pedidos de receção enquanto o VniDrop está em segundo plano.</string>
|
||||
<string name="notifications_description">Seja notificado sobre a atividade das transferências enquanto o VniDrop está em segundo plano.</string>
|
||||
<string name="notifications_enabled_message">Notificações ativadas.</string>
|
||||
<string name="notifications_local_title">Permitir notificações</string>
|
||||
<string name="notifications_permission_denied">As notificações estão desativadas para o VniDrop. Pode ativá-las nas Definições.</string>
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<string name="nav_send">Отправить</string>
|
||||
<string name="nav_settings">Настройки</string>
|
||||
<string name="network_title">Сеть</string>
|
||||
<string name="notifications_description">Получайте уведомления о новых запросах на получение, пока VniDrop работает в фоне.</string>
|
||||
<string name="notifications_description">Получайте уведомления об активности передач, пока VniDrop работает в фоне.</string>
|
||||
<string name="notifications_enabled_message">Уведомления включены.</string>
|
||||
<string name="notifications_local_title">Разрешить уведомления</string>
|
||||
<string name="notifications_permission_denied">Уведомления отключены для VniDrop. Вы можете включить их в Настройках.</string>
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<string name="nav_send">Send</string>
|
||||
<string name="nav_settings">Settings</string>
|
||||
<string name="network_title">Network</string>
|
||||
<string name="notifications_description">Get notified about new receive requests while VniDrop is in the background.</string>
|
||||
<string name="notifications_description">Get notified about transfer activity while VniDrop is in the background.</string>
|
||||
<string name="notifications_enabled_message">Notifications enabled.</string>
|
||||
<string name="notifications_local_title">Allow notifications</string>
|
||||
<string name="notifications_permission_denied">Notifications are turned off for VniDrop. You can enable them in Settings.</string>
|
||||
|
||||
Reference in New Issue
Block a user