From 3abd4d0cfd54fe928270dc5f0349cbe4076c6822 Mon Sep 17 00:00:00 2001 From: cdricms <36056008+cdricms@users.noreply.github.com> Date: Fri, 24 Jul 2026 19:42:40 +0200 Subject: [PATCH 1/2] build(apple): flag raw string literals in SwiftUI initializers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The typed-resource rules missed a bare string literal passed as the leading arg of a view initializer (e.g. Label("send_stop_sharing", …)), which is an implicit LocalizedStringKey. Add a rule covering Text/Label/Button/Section/Picker/etc. (empty labels allowed). Fixes the two dynamic-content Text sites it surfaced by switching them to Text(verbatim:). --- apple/.swiftlint.yml | 7 +++++++ apple/VniDrop/Features/Send/TransferDetailsView.swift | 2 +- apple/VniDrop/UI/Components/Components.swift | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/apple/.swiftlint.yml b/apple/.swiftlint.yml index 1614011..b9a3f8e 100644 --- a/apple/.swiftlint.yml +++ b/apple/.swiftlint.yml @@ -25,3 +25,10 @@ custom_rules: regex: 'system(Name|Image):\s*"' message: "Use SFSafeSymbols: Image(systemSymbol:) or systemSymbol:." severity: warning + raw_swiftui_string_literal: + name: "Raw SwiftUI string" + # A non-empty string literal as the leading arg of a view initializer is an + # implicit LocalizedStringKey. Empty labels (e.g. Picker("", …)) are allowed. + regex: '\b(Text|Label|Button|Toggle|Link|NavigationLink|Section|Picker|Stepper|TextField|SecureField|DisclosureGroup|Menu|GroupBox)\("[^"]' + message: "Pass a typed L10n.* accessor (or Text(verbatim:)), not a raw string literal." + severity: warning diff --git a/apple/VniDrop/Features/Send/TransferDetailsView.swift b/apple/VniDrop/Features/Send/TransferDetailsView.swift index 534133a..b0358fc 100644 --- a/apple/VniDrop/Features/Send/TransferDetailsView.swift +++ b/apple/VniDrop/Features/Send/TransferDetailsView.swift @@ -112,7 +112,7 @@ private struct DetailDestination: View { } Spacer() if count > 0 { - Text("\(count)") + Text(verbatim: "\(count)") .font(.footnote) .foregroundStyle(.secondary) } diff --git a/apple/VniDrop/UI/Components/Components.swift b/apple/VniDrop/UI/Components/Components.swift index eb0dc4e..4fb2c0f 100644 --- a/apple/VniDrop/UI/Components/Components.swift +++ b/apple/VniDrop/UI/Components/Components.swift @@ -42,7 +42,7 @@ struct ProgressRow: View { label.font(.subheadline).lineLimit(1) Spacer() if let progress { - Text("\(Int(progress * 100))%").font(.caption).foregroundStyle(.secondary) + Text(verbatim: "\(Int(progress * 100))%").font(.caption).foregroundStyle(.secondary) } } if let detail { From 319af6f2dedb0486f0bdd77126a2a165404a17e5 Mon Sep 17 00:00:00 2001 From: cdricms <36056008+cdricms@users.noreply.github.com> Date: Fri, 24 Jul 2026 19:58:29 +0200 Subject: [PATCH 2/2] fix(l10n): align notification/storage descriptions with KMP behavior The merge kept this branch's reworded notifications_description and storage_delete_transfers_description over master's, but the merged KMP code is master's, so its FoundationComposeTest assertions (and the shipped KMP copy) expect master's wording. Restore both to master's committed text (pulling the storage one from master's XML, since master's own strings.json was stale for it). Verified the two failing KMP Compose tests pass locally. --- localization/strings.json | 36 +++++++++---------- .../composeResources/values-de/strings.xml | 4 +-- .../composeResources/values-es/strings.xml | 4 +-- .../composeResources/values-fr/strings.xml | 4 +-- .../composeResources/values-it/strings.xml | 4 +-- .../composeResources/values-nl/strings.xml | 4 +-- .../composeResources/values-pl/strings.xml | 4 +-- .../composeResources/values-pt/strings.xml | 4 +-- .../composeResources/values-ru/strings.xml | 4 +-- .../composeResources/values/strings.xml | 4 +-- 10 files changed, 36 insertions(+), 36 deletions(-) diff --git a/localization/strings.json b/localization/strings.json index 9b0c084..072ecce 100644 --- a/localization/strings.json +++ b/localization/strings.json @@ -1771,15 +1771,15 @@ "notifications_description": { "context": "Settings > Notifications: explanation of what notifications are used for.", "translations": { - "en": "Get notified about transfer activity while VniDrop is in the background.", - "fr": "Soyez averti de l’activité des transferts lorsque VniDrop est en arrière-plan.", - "es": "Reciba avisos sobre la actividad de las transferencias cuando VniDrop está en segundo plano.", - "it": "Ricevi avvisi sull’attività dei trasferimenti quando VniDrop è in background.", - "de": "Werden Sie über Übertragungsaktivitäten benachrichtigt, während VniDrop im Hintergrund läuft.", - "pt": "Seja notificado sobre a atividade das transferências enquanto o VniDrop está em segundo plano.", - "pl": "Otrzymuj powiadomienia o aktywności transferów, gdy VniDrop działa w tle.", - "nl": "Ontvang meldingen over overdrachtsactiviteit terwijl VniDrop op de achtergrond draait.", - "ru": "Получайте уведомления об активности передач, пока VniDrop работает в фоне." + "en": "Get notified about new receive requests while VniDrop is in the background.", + "fr": "Soyez averti des nouvelles demandes de réception lorsque VniDrop est en arrière-plan.", + "es": "Reciba avisos sobre nuevas solicitudes de recepción cuando VniDrop está en segundo plano.", + "it": "Ricevi avvisi sulle nuove richieste di ricezione quando VniDrop è in background.", + "de": "Werden Sie über neue Empfangsanfragen benachrichtigt, während VniDrop im Hintergrund läuft.", + "pt": "Seja notificado sobre novos pedidos de receção enquanto o VniDrop está em segundo plano.", + "pl": "Otrzymuj powiadomienia o nowych prośbach o odbiór, gdy VniDrop działa w tle.", + "nl": "Ontvang meldingen over nieuwe ontvangstverzoeken terwijl VniDrop op de achtergrond draait.", + "ru": "Получайте уведомления о новых запросах на получение, пока VniDrop работает в фоне." } }, "notifications_enabled_message": { @@ -3831,15 +3831,15 @@ "storage_delete_transfers_description": { "context": "Settings > Storage: confirmation body for deleting all transfer records.", "translations": { - "en": "This clears all sent and received transfer records from your history. Your received files are not deleted. Cached shared content that is no longer needed is reclaimed automatically, which may take a little time. This can’t be undone.", - "fr": "Cela efface de votre historique tous les enregistrements de transferts envoyés et reçus. Vos fichiers reçus ne sont pas supprimés. Le contenu partagé mis en cache qui n’est plus nécessaire est récupéré automatiquement, ce qui peut prendre un peu de temps. Cette action est irréversible.", - "es": "Esto borra de su historial todos los registros de transferencias enviadas y recibidas. Sus archivos recibidos no se eliminan. El contenido compartido en caché que ya no se necesita se recupera automáticamente, lo que puede tardar un poco. Esto no se puede deshacer.", - "it": "Questo cancella dalla cronologia tutti i record dei trasferimenti inviati e ricevuti. I file ricevuti non vengono eliminati. Il contenuto condiviso nella cache che non serve più viene recuperato automaticamente, operazione che può richiedere un po’ di tempo. Questa azione non può essere annullata.", - "de": "Dadurch werden alle Datensätze gesendeter und empfangener Übertragungen aus Ihrem Verlauf gelöscht. Ihre empfangenen Dateien werden nicht gelöscht. Nicht mehr benötigte zwischengespeicherte freigegebene Inhalte werden automatisch bereinigt; dies kann etwas dauern. Dies kann nicht rückgängig gemacht werden.", - "pt": "Isto elimina do histórico todos os registos de transferências enviadas e recebidas. Os ficheiros recebidos não são eliminados. O conteúdo partilhado em cache que já não é necessário é recuperado automaticamente, o que pode demorar algum tempo. Esta ação não pode ser anulada.", - "pl": "Spowoduje to usunięcie z historii wszystkich rekordów wysłanych i odebranych transferów. Odebrane pliki nie zostaną usunięte. Niepotrzebna już zawartość udostępniona w pamięci podręcznej jest odzyskiwana automatycznie, co może chwilę potrwać. Tej operacji nie można cofnąć.", - "nl": "Hiermee worden alle records van verzonden en ontvangen overdrachten uit uw geschiedenis gewist. Uw ontvangen bestanden worden niet verwijderd. Gedeelde inhoud in de cache die niet meer nodig is, wordt automatisch opgeruimd; dit kan enige tijd duren. Dit kan niet ongedaan worden gemaakt.", - "ru": "Это удалит из истории все записи об отправленных и полученных передачах. Полученные файлы не удаляются. Кэшированное общее содержимое, которое больше не требуется, освобождается автоматически; это может занять некоторое время. Это действие нельзя отменить." + "en": "This clears all sent and received transfer records from your history and immediately reclaims unused transfer cache. Ongoing transfers and received files are not deleted. This can’t be undone.", + "fr": "Cela efface tous les transferts envoyés et reçus de l’historique et libère immédiatement le cache inutilisé. Les transferts en cours et les fichiers reçus ne sont pas supprimés. Cette action est irréversible.", + "es": "Esto borra del historial todos los registros de transferencias enviadas y recibidas y libera inmediatamente la caché de transferencia no utilizada. Las transferencias en curso y los archivos recibidos no se eliminan. Esto no se puede deshacer.", + "it": "Elimina dalla cronologia tutti i trasferimenti inviati e ricevuti e libera immediatamente la cache inutilizzata. I trasferimenti in corso e i file ricevuti non vengono eliminati. Questa azione non può essere annullata.", + "de": "Dadurch werden alle Datensätze gesendeter und empfangener Übertragungen aus Ihrem Verlauf gelöscht und nicht benötigter Übertragungscache sofort freigegeben. Laufende Übertragungen und empfangene Dateien werden nicht gelöscht. Dies kann nicht rückgängig gemacht werden.", + "pt": "Isto elimina do histórico todas as transferências enviadas e recebidas e liberta imediatamente a cache não utilizada. As transferências em curso e os ficheiros recebidos não são eliminados. Esta ação não pode ser anulada.", + "pl": "Usuwa z historii wszystkie wysłane i odebrane transfery oraz natychmiast zwalnia nieużywaną pamięć podręczną. Trwające transfery i odebrane pliki nie są usuwane. Tej operacji nie można cofnąć.", + "nl": "Hiermee worden alle verzonden en ontvangen overdrachten uit de geschiedenis gewist en wordt ongebruikte overdrachtscache direct vrijgemaakt. Lopende overdrachten en ontvangen bestanden worden niet verwijderd. Dit kan niet ongedaan worden gemaakt.", + "ru": "Это удалит из истории все отправленные и полученные передачи и немедленно освободит неиспользуемый кэш. Текущие передачи и полученные файлы не удаляются. Это действие нельзя отменить." } }, "storage_app_data": { diff --git a/shared/src/commonMain/composeResources/values-de/strings.xml b/shared/src/commonMain/composeResources/values-de/strings.xml index a1a464e..34946ab 100644 --- a/shared/src/commonMain/composeResources/values-de/strings.xml +++ b/shared/src/commonMain/composeResources/values-de/strings.xml @@ -118,7 +118,7 @@ Senden Einstellungen Netzwerk - Werden Sie über Übertragungsaktivitäten benachrichtigt, während VniDrop im Hintergrund läuft. + Werden Sie über neue Empfangsanfragen benachrichtigt, während VniDrop im Hintergrund läuft. Mitteilungen aktiviert. Mitteilungen erlauben Mitteilungen sind für VniDrop deaktiviert. Sie können sie in den Einstellungen aktivieren. @@ -246,7 +246,7 @@ Auf diesem Gerät Speicher freigeben Alle Übertragungen löschen - Dadurch werden alle Datensätze gesendeter und empfangener Übertragungen aus Ihrem Verlauf gelöscht. Ihre empfangenen Dateien werden nicht gelöscht. Nicht mehr benötigte zwischengespeicherte freigegebene Inhalte werden automatisch bereinigt; dies kann etwas dauern. Dies kann nicht rückgängig gemacht werden. + Dadurch werden alle Datensätze gesendeter und empfangener Übertragungen aus Ihrem Verlauf gelöscht und nicht benötigter Übertragungscache sofort freigegeben. Laufende Übertragungen und empfangene Dateien werden nicht gelöscht. Dies kann nicht rückgängig gemacht werden. App-Daten Wird gelöscht… Übertragungsdaten umfassen Ihren Verlauf und zwischengespeicherte Inhalte aktiver Freigaben. Nicht mehr benötigter Cache wird nach dem Löschen der Datensätze automatisch bereinigt; dies kann etwas dauern. Empfangene Dateien werden für diese Übersicht erfasst, aber hier niemals gelöscht. diff --git a/shared/src/commonMain/composeResources/values-es/strings.xml b/shared/src/commonMain/composeResources/values-es/strings.xml index 2e3c80e..a663eeb 100644 --- a/shared/src/commonMain/composeResources/values-es/strings.xml +++ b/shared/src/commonMain/composeResources/values-es/strings.xml @@ -118,7 +118,7 @@ Enviar Ajustes Red - Reciba avisos sobre la actividad de las transferencias cuando VniDrop está en segundo plano. + Reciba avisos sobre nuevas solicitudes de recepción cuando VniDrop está en segundo plano. Notificaciones activadas. Permitir notificaciones Las notificaciones están desactivadas para VniDrop. Puede activarlas en Ajustes. @@ -246,7 +246,7 @@ En este dispositivo Liberar espacio Eliminar todas las transferencias - Esto borra de su historial todos los registros de transferencias enviadas y recibidas. Sus archivos recibidos no se eliminan. El contenido compartido en caché que ya no se necesita se recupera automáticamente, lo que puede tardar un poco. Esto no se puede deshacer. + Esto borra del historial todos los registros de transferencias enviadas y recibidas y libera inmediatamente la caché de transferencia no utilizada. Las transferencias en curso y los archivos recibidos no se eliminan. Esto no se puede deshacer. Datos de la aplicación Eliminando… Los datos de transferencia incluyen su historial y el contenido en caché de los recursos compartidos activos. La caché innecesaria se recupera automáticamente tras eliminar los registros, lo que puede tardar un poco. Los archivos recibidos se registran para este resumen, pero nunca se eliminan aquí. diff --git a/shared/src/commonMain/composeResources/values-fr/strings.xml b/shared/src/commonMain/composeResources/values-fr/strings.xml index 1583d2d..884f55f 100644 --- a/shared/src/commonMain/composeResources/values-fr/strings.xml +++ b/shared/src/commonMain/composeResources/values-fr/strings.xml @@ -118,7 +118,7 @@ Envoyer Réglages Réseau - Soyez averti de l’activité des transferts lorsque VniDrop est en arrière-plan. + Soyez averti des nouvelles demandes de réception lorsque VniDrop est en arrière-plan. Notifications activées. Autoriser les notifications Les notifications sont désactivées pour VniDrop. Vous pouvez les activer dans les Réglages. @@ -246,7 +246,7 @@ Sur cet appareil Libérer de l\'espace Supprimer tous les transferts - Cela efface de votre historique tous les enregistrements de transferts envoyés et reçus. Vos fichiers reçus ne sont pas supprimés. Le contenu partagé mis en cache qui n’est plus nécessaire est récupéré automatiquement, ce qui peut prendre un peu de temps. Cette action est irréversible. + Cela efface tous les transferts envoyés et reçus de l’historique et libère immédiatement le cache inutilisé. Les transferts en cours et les fichiers reçus ne sont pas supprimés. Cette action est irréversible. Données de l’app Suppression… Les données de transfert comprennent votre historique et le contenu mis en cache pour les partages actifs. Le cache inutile est récupéré automatiquement après la suppression des enregistrements, ce qui peut prendre un peu de temps. Les fichiers reçus sont suivis pour ce récapitulatif, mais ne sont jamais supprimés ici. diff --git a/shared/src/commonMain/composeResources/values-it/strings.xml b/shared/src/commonMain/composeResources/values-it/strings.xml index af85d35..79c209e 100644 --- a/shared/src/commonMain/composeResources/values-it/strings.xml +++ b/shared/src/commonMain/composeResources/values-it/strings.xml @@ -118,7 +118,7 @@ Invia Impostazioni Rete - Ricevi avvisi sull’attività dei trasferimenti quando VniDrop è in background. + Ricevi avvisi sulle nuove richieste di ricezione quando VniDrop è in background. Notifiche attivate. Consenti le notifiche Le notifiche sono disattivate per VniDrop. Può attivarle in Impostazioni. @@ -246,7 +246,7 @@ Su questo dispositivo Libera spazio Elimina tutti i trasferimenti - Questo cancella dalla cronologia tutti i record dei trasferimenti inviati e ricevuti. I file ricevuti non vengono eliminati. Il contenuto condiviso nella cache che non serve più viene recuperato automaticamente, operazione che può richiedere un po’ di tempo. Questa azione non può essere annullata. + Elimina dalla cronologia tutti i trasferimenti inviati e ricevuti e libera immediatamente la cache inutilizzata. I trasferimenti in corso e i file ricevuti non vengono eliminati. Questa azione non può essere annullata. Dati dell’app Eliminazione… I dati di trasferimento includono la cronologia e il contenuto nella cache per le condivisioni attive. La cache non necessaria viene recuperata automaticamente dopo la rimozione dei record, operazione che può richiedere un po’ di tempo. I file ricevuti vengono monitorati per questo riepilogo, ma non sono mai eliminati qui. diff --git a/shared/src/commonMain/composeResources/values-nl/strings.xml b/shared/src/commonMain/composeResources/values-nl/strings.xml index 93fe872..c97faf5 100644 --- a/shared/src/commonMain/composeResources/values-nl/strings.xml +++ b/shared/src/commonMain/composeResources/values-nl/strings.xml @@ -118,7 +118,7 @@ Versturen Instellingen Netwerk - Ontvang meldingen over overdrachtsactiviteit terwijl VniDrop op de achtergrond draait. + Ontvang meldingen over nieuwe ontvangstverzoeken terwijl VniDrop op de achtergrond draait. Meldingen ingeschakeld. Meldingen toestaan Meldingen zijn uitgeschakeld voor VniDrop. U kunt ze inschakelen in Instellingen. @@ -246,7 +246,7 @@ Op dit apparaat Ruimte vrijmaken Alle overdrachten verwijderen - Hiermee worden alle records van verzonden en ontvangen overdrachten uit uw geschiedenis gewist. Uw ontvangen bestanden worden niet verwijderd. Gedeelde inhoud in de cache die niet meer nodig is, wordt automatisch opgeruimd; dit kan enige tijd duren. Dit kan niet ongedaan worden gemaakt. + Hiermee worden alle verzonden en ontvangen overdrachten uit de geschiedenis gewist en wordt ongebruikte overdrachtscache direct vrijgemaakt. Lopende overdrachten en ontvangen bestanden worden niet verwijderd. Dit kan niet ongedaan worden gemaakt. Appgegevens Verwijderen… Overdrachtsgegevens omvatten uw geschiedenis en inhoud in de cache voor actieve shares. Onnodige cache wordt automatisch opgeruimd nadat overdrachtsrecords zijn verwijderd; dit kan enige tijd duren. Ontvangen bestanden worden voor dit overzicht bijgehouden, maar hier nooit verwijderd. diff --git a/shared/src/commonMain/composeResources/values-pl/strings.xml b/shared/src/commonMain/composeResources/values-pl/strings.xml index aa4c09f..33ae2cd 100644 --- a/shared/src/commonMain/composeResources/values-pl/strings.xml +++ b/shared/src/commonMain/composeResources/values-pl/strings.xml @@ -118,7 +118,7 @@ Wyślij Ustawienia Sieć - Otrzymuj powiadomienia o aktywności transferów, gdy VniDrop działa w tle. + Otrzymuj powiadomienia o nowych prośbach o odbiór, gdy VniDrop działa w tle. Powiadomienia włączone. Zezwól na powiadomienia Powiadomienia są wyłączone dla VniDrop. Możesz je włączyć w Ustawieniach. @@ -246,7 +246,7 @@ Na tym urządzeniu Zwolnij miejsce Usuń wszystkie transfery - Spowoduje to usunięcie z historii wszystkich rekordów wysłanych i odebranych transferów. Odebrane pliki nie zostaną usunięte. Niepotrzebna już zawartość udostępniona w pamięci podręcznej jest odzyskiwana automatycznie, co może chwilę potrwać. Tej operacji nie można cofnąć. + Usuwa z historii wszystkie wysłane i odebrane transfery oraz natychmiast zwalnia nieużywaną pamięć podręczną. Trwające transfery i odebrane pliki nie są usuwane. Tej operacji nie można cofnąć. Dane aplikacji Usuwanie… Dane transferu obejmują historię oraz zawartość w pamięci podręcznej dla aktywnych udostępnień. Niepotrzebna pamięć podręczna jest odzyskiwana automatycznie po usunięciu rekordów, co może chwilę potrwać. Odebrane pliki są śledzone na potrzeby tego podsumowania, ale nigdy nie są tu usuwane. diff --git a/shared/src/commonMain/composeResources/values-pt/strings.xml b/shared/src/commonMain/composeResources/values-pt/strings.xml index 1c17822..8f7cd15 100644 --- a/shared/src/commonMain/composeResources/values-pt/strings.xml +++ b/shared/src/commonMain/composeResources/values-pt/strings.xml @@ -118,7 +118,7 @@ Enviar Definições Rede - Seja notificado sobre a atividade das transferências enquanto o VniDrop está em segundo plano. + Seja notificado sobre novos pedidos de receção enquanto o VniDrop está em segundo plano. Notificações ativadas. Permitir notificações As notificações estão desativadas para o VniDrop. Pode ativá-las nas Definições. @@ -246,7 +246,7 @@ Neste dispositivo Libertar espaço Eliminar todas as transferências - Isto elimina do histórico todos os registos de transferências enviadas e recebidas. Os ficheiros recebidos não são eliminados. O conteúdo partilhado em cache que já não é necessário é recuperado automaticamente, o que pode demorar algum tempo. Esta ação não pode ser anulada. + Isto elimina do histórico todas as transferências enviadas e recebidas e liberta imediatamente a cache não utilizada. As transferências em curso e os ficheiros recebidos não são eliminados. Esta ação não pode ser anulada. Dados da aplicação A eliminar… Os dados de transferência incluem o histórico e o conteúdo em cache das partilhas ativas. A cache desnecessária é recuperada automaticamente após a remoção dos registos, o que pode demorar algum tempo. Os ficheiros recebidos são acompanhados para este resumo, mas nunca são eliminados aqui. diff --git a/shared/src/commonMain/composeResources/values-ru/strings.xml b/shared/src/commonMain/composeResources/values-ru/strings.xml index 08e9f83..12bc011 100644 --- a/shared/src/commonMain/composeResources/values-ru/strings.xml +++ b/shared/src/commonMain/composeResources/values-ru/strings.xml @@ -118,7 +118,7 @@ Отправить Настройки Сеть - Получайте уведомления об активности передач, пока VniDrop работает в фоне. + Получайте уведомления о новых запросах на получение, пока VniDrop работает в фоне. Уведомления включены. Разрешить уведомления Уведомления отключены для VniDrop. Вы можете включить их в Настройках. @@ -246,7 +246,7 @@ На этом устройстве Освободить место Удалить все передачи - Это удалит из истории все записи об отправленных и полученных передачах. Полученные файлы не удаляются. Кэшированное общее содержимое, которое больше не требуется, освобождается автоматически; это может занять некоторое время. Это действие нельзя отменить. + Это удалит из истории все отправленные и полученные передачи и немедленно освободит неиспользуемый кэш. Текущие передачи и полученные файлы не удаляются. Это действие нельзя отменить. Данные приложения Удаление… Данные передачи включают историю и кэшированное содержимое активных раздач. Ненужный кэш освобождается автоматически после удаления записей; это может занять некоторое время. Полученные файлы учитываются в этой сводке, но никогда не удаляются здесь. diff --git a/shared/src/commonMain/composeResources/values/strings.xml b/shared/src/commonMain/composeResources/values/strings.xml index ed6c6dd..c3c27eb 100644 --- a/shared/src/commonMain/composeResources/values/strings.xml +++ b/shared/src/commonMain/composeResources/values/strings.xml @@ -118,7 +118,7 @@ Send Settings Network - Get notified about transfer activity while VniDrop is in the background. + Get notified about new receive requests while VniDrop is in the background. Notifications enabled. Allow notifications Notifications are turned off for VniDrop. You can enable them in Settings. @@ -246,7 +246,7 @@ On this device Free up space Delete all transfers - This clears all sent and received transfer records from your history. Your received files are not deleted. Cached shared content that is no longer needed is reclaimed automatically, which may take a little time. This can’t be undone. + This clears all sent and received transfer records from your history and immediately reclaims unused transfer cache. Ongoing transfers and received files are not deleted. This can’t be undone. App data Deleting… Transfer data includes your history and cached content for active shares. Unneeded cache is reclaimed automatically after transfer records are removed, which may take a little time. Received files are tracked for this summary but are never deleted here.