Skip to content
sysout.dev

treeger - Trash Delivery

Delivered Trash ownership, recovery safety, retention, and storage-provider limitations.

Delivery Boundary

Delete is the default action for local items and moves them to Trash. It supports one file, multiple files, one folder, multiple folders, and mixed file/folder selections. Deleting a folder moves its full contents as one reversible unit.

Permanent deletion is available only from the Trash screen. It is never offered as a shortcut in an ordinary folder listing.

Storage And Ownership

treeger keeps trashed local items in .treeger-trash at the root of primary shared storage. Each item has a unique directory containing its payload and recovery metadata. The directory is hidden from treeger’s normal browser even when Show hidden files is enabled.

This is an app-managed trash, not a shared contract between file managers. treeger’s Restore, Empty Trash, and retention cleanup operate only on entries registered by treeger. Another file manager with all-files access can still see or modify the hidden directory, and permanently deleting the underlying content from any app affects every app.

Android’s MediaStore trash is limited to indexed media. General document-provider trash support is not consistent across treeger’s API 29+ range. For that reason, content:// compatibility locations do not silently fall back to permanent deletion: treeger explains that Trash is unavailable and leaves the items intact.

Safety And Recovery

  • Delete requires a confirmation, moves the selection to Trash, and offers Snackbar Undo.

  • Multi-item operations report partial failures rather than claiming total success.

  • Restore never overwrites silently. If an original name is occupied, the user chooses Keep both, Replace, or Cancel.

  • Replace temporarily backs up the existing destination and restores that backup if moving the trashed payload fails.

  • Pins and recent-file entries affected by a trashed folder or file are removed from Home and restored with updated paths when the item is restored.

  • A metadata sidecar allows treeger to recover its registry after interruption between the filesystem move and DataStore update.

Retention

The default retention period is 30 days. Settings offers 7 days, 30 days, 90 days, and Never. Cleanup runs when the app starts, after retention changes, and through daily WorkManager scheduling. Expired items are permanently deleted.

Current Limitation

The initial delivery manages local file:// items on primary shared storage. SAF/document-provider trash and removable-volume trash require separate provider capability and device testing and are intentionally deferred.

Restore returns an item to its recorded original folder. If that folder no longer exists or is not writable, the item remains safely in Trash; choosing a different restore destination is deferred to a later interaction pass.