feat(apple): streamline the Storage screen and fix stuck usage

Redesign the Storage screen for clarity: an "On this device" usage header with a
manual Refresh control, symbol-led action buttons, and a caption under each action
spelling out exactly what it does (Free up space = temp + trash, non-destructive;
Delete all transfers = clears history + cached share content, keeps received
files).

Fix the summary sticking on "Calculating…": it loaded only on .onAppear and bailed
when opened before the core finished its async launch, leaving the loading branch
showing with nothing running (only a manual refresh recovered it). loadStorageUsage
now waits for the core to become ready before reading usage, distinguishes a real
failure (retry) from loading, loads via .task, and can be refreshed on demand. Use
plain button styling with explicit tints so pressing an action no longer flips the
label to the white selection highlight.
This commit is contained in:
2026-07-24 14:07:31 +02:00
parent 677c3ce47f
commit e22e395efc
12 changed files with 224 additions and 39 deletions

View File

@@ -206,6 +206,11 @@
<string name="storage_cleaning">Wird bereinigt…</string>
<string name="storage_cleanup_busy">Beende aktive Übertragungen, bevor du Speicher freigibst</string>
<string name="storage_cleanup_freed">%1$s freigegeben</string>
<string name="storage_delete_transfers_caption">Löscht deinen Sende- und Empfangsverlauf sowie die zwischengespeicherten Freigabeinhalte der App. Empfangene Dateien auf dem Datenträger bleiben erhalten.</string>
<string name="storage_free_up_space_caption">Entfernt temporäre Dateien und Reste früherer Übertragungen. Deine Übertragungen und empfangenen Dateien bleiben erhalten.</string>
<string name="storage_refresh">Aktualisieren</string>
<string name="storage_unavailable">Die Speichernutzung ist noch nicht verfügbar</string>
<string name="storage_usage_header">Auf diesem Gerät</string>
<string name="storage_free_up_space">Speicher freigeben</string>
<string name="storage_delete_transfers">Alle Übertragungen löschen</string>
<string name="storage_delete_transfers_description">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.</string>

View File

@@ -206,6 +206,11 @@
<string name="storage_cleaning">Limpiando…</string>
<string name="storage_cleanup_busy">Finaliza las transferencias activas antes de liberar espacio</string>
<string name="storage_cleanup_freed">Se liberó %1$s</string>
<string name="storage_delete_transfers_caption">Borra tu historial de envíos y recepciones y el contenido compartido en caché de la app. Los archivos recibidos en el disco se conservan.</string>
<string name="storage_free_up_space_caption">Elimina los archivos temporales y los restos de transferencias anteriores. Tus transferencias y archivos recibidos se conservan.</string>
<string name="storage_refresh">Actualizar</string>
<string name="storage_unavailable">El uso de almacenamiento aún no está disponible</string>
<string name="storage_usage_header">En este dispositivo</string>
<string name="storage_free_up_space">Liberar espacio</string>
<string name="storage_delete_transfers">Eliminar todas las transferencias</string>
<string name="storage_delete_transfers_description">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.</string>

View File

@@ -206,6 +206,11 @@
<string name="storage_cleaning">Nettoyage…</string>
<string name="storage_cleanup_busy">Terminez les transferts en cours avant de libérer de l\'espace</string>
<string name="storage_cleanup_freed">%1$s libéré</string>
<string name="storage_delete_transfers_caption">Efface votre historique d\'envois et de réceptions ainsi que le contenu de partage mis en cache par l\'app. Les fichiers reçus sur le disque sont conservés.</string>
<string name="storage_free_up_space_caption">Supprime les fichiers temporaires et les résidus des transferts précédents. Vos transferts et fichiers reçus sont conservés.</string>
<string name="storage_refresh">Actualiser</string>
<string name="storage_unavailable">L\'utilisation du stockage n\'est pas encore disponible</string>
<string name="storage_usage_header">Sur cet appareil</string>
<string name="storage_free_up_space">Libérer de l\'espace</string>
<string name="storage_delete_transfers">Supprimer tous les transferts</string>
<string name="storage_delete_transfers_description">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 nest plus nécessaire est récupéré automatiquement, ce qui peut prendre un peu de temps. Cette action est irréversible.</string>

View File

@@ -206,6 +206,11 @@
<string name="storage_cleaning">Pulizia…</string>
<string name="storage_cleanup_busy">Completa i trasferimenti attivi prima di liberare spazio</string>
<string name="storage_cleanup_freed">Liberati %1$s</string>
<string name="storage_delete_transfers_caption">Cancella la cronologia di invii e ricezioni e i contenuti di condivisione memorizzati dall\'app. I file ricevuti sul disco vengono mantenuti.</string>
<string name="storage_free_up_space_caption">Rimuove i file temporanei e i residui dei trasferimenti precedenti. I tuoi trasferimenti e i file ricevuti vengono mantenuti.</string>
<string name="storage_refresh">Aggiorna</string>
<string name="storage_unavailable">L\'utilizzo dello spazio non è ancora disponibile</string>
<string name="storage_usage_header">Su questo dispositivo</string>
<string name="storage_free_up_space">Libera spazio</string>
<string name="storage_delete_transfers">Elimina tutti i trasferimenti</string>
<string name="storage_delete_transfers_description">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.</string>

View File

@@ -206,6 +206,11 @@
<string name="storage_cleaning">Opschonen…</string>
<string name="storage_cleanup_busy">Voltooi actieve overdrachten voordat je ruimte vrijmaakt</string>
<string name="storage_cleanup_freed">%1$s vrijgemaakt</string>
<string name="storage_delete_transfers_caption">Wist je verzend- en ontvangstgeschiedenis en de gecachte deelinhoud van de app. Ontvangen bestanden op schijf blijven behouden.</string>
<string name="storage_free_up_space_caption">Verwijdert tijdelijke bestanden en resten van eerdere overdrachten. Je overdrachten en ontvangen bestanden blijven behouden.</string>
<string name="storage_refresh">Vernieuwen</string>
<string name="storage_unavailable">Opslaggebruik is nog niet beschikbaar</string>
<string name="storage_usage_header">Op dit apparaat</string>
<string name="storage_free_up_space">Ruimte vrijmaken</string>
<string name="storage_delete_transfers">Alle overdrachten verwijderen</string>
<string name="storage_delete_transfers_description">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.</string>

View File

@@ -206,6 +206,11 @@
<string name="storage_cleaning">Czyszczenie…</string>
<string name="storage_cleanup_busy">Zakończ aktywne transfery przed zwolnieniem miejsca</string>
<string name="storage_cleanup_freed">Zwolniono %1$s</string>
<string name="storage_delete_transfers_caption">Czyści historię wysyłania i odbierania oraz zapisane w pamięci podręcznej udostępniane treści. Odebrane pliki na dysku zostają zachowane.</string>
<string name="storage_free_up_space_caption">Usuwa pliki tymczasowe i pozostałości po wcześniejszych transferach. Twoje transfery i odebrane pliki zostają zachowane.</string>
<string name="storage_refresh">Odśwież</string>
<string name="storage_unavailable">Wykorzystanie pamięci nie jest jeszcze dostępne</string>
<string name="storage_usage_header">Na tym urządzeniu</string>
<string name="storage_free_up_space">Zwolnij miejsce</string>
<string name="storage_delete_transfers">Usuń wszystkie transfery</string>
<string name="storage_delete_transfers_description">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ąć.</string>

View File

@@ -206,6 +206,11 @@
<string name="storage_cleaning">A limpar…</string>
<string name="storage_cleanup_busy">Conclui as transferências ativas antes de libertar espaço</string>
<string name="storage_cleanup_freed">Libertado %1$s</string>
<string name="storage_delete_transfers_caption">Limpa o teu histórico de envios e receções e o conteúdo de partilha em cache da app. Os ficheiros recebidos no disco são mantidos.</string>
<string name="storage_free_up_space_caption">Remove ficheiros temporários e resíduos de transferências anteriores. As tuas transferências e ficheiros recebidos são mantidos.</string>
<string name="storage_refresh">Atualizar</string>
<string name="storage_unavailable">A utilização do armazenamento ainda não está disponível</string>
<string name="storage_usage_header">Neste dispositivo</string>
<string name="storage_free_up_space">Libertar espaço</string>
<string name="storage_delete_transfers">Eliminar todas as transferências</string>
<string name="storage_delete_transfers_description">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.</string>

View File

@@ -206,6 +206,11 @@
<string name="storage_cleaning">Очистка…</string>
<string name="storage_cleanup_busy">Завершите активные передачи перед освобождением места</string>
<string name="storage_cleanup_freed">Освобождено %1$s</string>
<string name="storage_delete_transfers_caption">Очищает историю отправки и получения и кэшированное содержимое общих ресурсов. Полученные файлы на диске сохраняются.</string>
<string name="storage_free_up_space_caption">Удаляет временные файлы и остатки прошлых передач. Ваши передачи и полученные файлы сохраняются.</string>
<string name="storage_refresh">Обновить</string>
<string name="storage_unavailable">Данные об использовании хранилища пока недоступны</string>
<string name="storage_usage_header">На этом устройстве</string>
<string name="storage_free_up_space">Освободить место</string>
<string name="storage_delete_transfers">Удалить все передачи</string>
<string name="storage_delete_transfers_description">Это удалит из истории все записи об отправленных и полученных передачах. Полученные файлы не удаляются. Кэшированное общее содержимое, которое больше не требуется, освобождается автоматически; это может занять некоторое время. Это действие нельзя отменить.</string>

View File

@@ -206,6 +206,11 @@
<string name="storage_cleaning">Cleaning up…</string>
<string name="storage_cleanup_busy">Finish active transfers before freeing up space</string>
<string name="storage_cleanup_freed">Freed %1$s</string>
<string name="storage_delete_transfers_caption">Clears your send and receive history and the app\'s cached share content. Received files on disk are kept.</string>
<string name="storage_free_up_space_caption">Removes temporary files and leftover trash from earlier transfers. Your transfers and received files are kept.</string>
<string name="storage_refresh">Refresh</string>
<string name="storage_unavailable">Storage usage isn\'t available yet</string>
<string name="storage_usage_header">On this device</string>
<string name="storage_free_up_space">Free up space</string>
<string name="storage_delete_transfers">Delete all transfers</string>
<string name="storage_delete_transfers_description">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 cant be undone.</string>