MediaRescue | Find files your phone forgets about

MediaRescue | Find files your phone forgets about

Find, browse, preview, and manage your forgotten media and files.

Date Published
August 23, 2026
Tech Stack
FlutterKotlin

MediaRescue

MediaRescue is an open-source Android storage and media rescue app built with Flutter. It helps users find media and files buried inside folders that traditional gallery apps often miss.

📥 Download

Download the latest APK from GitHub Releases.

Note: MediaRescue is currently in Google Play closed testing and will be available publicly on the Play Store soon.

🔗 Links

🚀 Features

  • Full device storage scanning
  • Gallery view for discovered media
  • Browse folders and subfolders
  • Search scanned files
  • Image, video, audio, and PDF previews
  • Full-screen video playback
  • Audio next and previous controls
  • Large file detection
  • Cleanup suggestions
  • Suggested Gallery folders
  • Smart Filters
  • Filter files by type
  • Filter files by size
  • Filter files by modified date
  • Filter files by storage location
  • Filter hidden files
  • Combine multiple filters
  • Filter indexed files without rescanning storage
  • Shared storage support
  • Removable SD card support
  • Offline-first design
  • Modern Android interface
  • Local file processing

🎯 Purpose

Android storage restrictions and deeply nested application directories can make files difficult to find.

MediaRescue provides a dedicated storage scanner and file browser to help users locate media and other files hidden inside their device storage.

v1.0.3 — Immersive Media Preview & Rescue Experience

Added: Immersive Media Viewer (TikTok/Reels-style preview with one-gesture rescue)

  • Brand-new vertically scrollable media viewer used everywhere the app previews images or videos (Gallery grid & list, Browse, Search). Swipe up for the next file, down for the previous one; each item fills the screen with smooth page snapping and nearby preloading — distant videos are released from memory.
  • Header shows a position indicator (23 / 1482), the filename (truncated with its extension preserved, e.g. vacation_video_from_bamyan...mp4) and the actual Modified date.
  • Gestures:
    • Tap — play/pause the video with a brief fading indicator (no permanent play button).
    • Double tapRescue: copies the original file (with size verification) to the configured rescue destination, indexes the copy with Android's MediaScanner so it appears in gallery apps, shows a tasteful "✓ Rescued" flash (this is rescue — not a like), then asks Keep Original / Delete Original. The original is only deleted after the rescued copy is verified to exist; a failed deletion never loses data.
    • Long press — actions menu: Rescue, File information, Share, Open File Location, Delete (with confirmation). The menu is suppressed while the edge-hold speed gesture is active.
    • Edge hold — press & hold the left/right edge of a video (two ~48 dp zones) for a temporary 2× speed boost with a "2×" indicator; releasing restores the user-selected playback speed.
    • Pinch in/out (video)clean fullscreen: fades away the filename, rescue and info chrome, keeping only play/pause, seek bar, durations and speed. Pinch out restores everything. A fullscreen button is also available for discoverability.
    • Pinch zoom/pan (images) — normal photo_view zoom; zooming pauses vertical feed paging until the image is restored, so the two gestures never fight.
  • Video player: seek bar with immediate timestamp updates (seeking never restarts playback), play/pause button, current/total duration, playback speed selector (0.5× / 1× / 1.5× / 2×, default 1×) and correct playback state when swiping between videos.
  • Controls auto-hide after inactivity and reappear on tap; the media stays the focus.
  • One-time player tour: on the first video preview a 6-step guided tour explains swiping, tap to play/pause, double-tap rescue, edge hold 2×, pinch fullscreen and long-press actions. The system back button closes the tour first, and a help button in the video controls restarts it anytime. Shown only once (persisted natively via SharedPreferences through the storage channel).
  • File information sheet: filename, size, resolution, duration, format, MIME type, frame rate, bitrate, audio details, original path, modified/creation dates — when Android can provide them; otherwise "Unavailable". Never crashes.
  • Broken/unsupported media shows "Unable to preview this file." — Rescue, Info and other actions still work.
  • The system back button closes overlays first (tour → clean fullscreen → viewer) and returns to the previous MediaRescue screen instead of exiting the app.

Added: Rescue Destination System (Settings)

  • New Rescue Destination settings: one destination for everything, or per-type destinations for Images (Pictures/MediaRescue), Videos (Movies/MediaRescue), Audio (Music/MediaRescue) and Other (Documents/MediaRescue), each independently changeable.
  • The preview always asks the rescue system for the correct destination — nothing is hard-coded in the viewer.

Fixed: Gallery indexing after copy/move

  • Files copied or moved by MediaRescue are now explicitly handed to MediaScannerConnection.scanFile() (with MIME type) once the operation finishes, so rescued/moved media appears in normal gallery apps immediately — previously it could take minutes or require touching the file in an external file manager first.

Improved: Open File Location

  • Now opens the phone's built-in file manager directly at the file's folder using a properly encoded DocumentsContract directory URI with EXTRA_INITIAL_URI, with explicit DocumentsUI and generic file-manager fallbacks.

🔎 Smart Filters

MediaRescue v1.0.2 introduces Smart Filters, allowing users to quickly narrow down thousands of discovered files without rescanning the filesystem.

Filter Types

  • Images
  • Videos
  • Audio
  • Documents
  • PDFs
  • Archives
  • Hidden files
  • File size
  • Modified date
  • Storage location

File Size Filters

  • Any
  • 10 MB

  • 100 MB

  • 500 MB

  • 1 GB

Modified Date Filters

  • Any
  • Today
  • Last 7 days
  • Last 30 days
  • Older than 1 year

Storage Location Filters

  • Internal Storage
  • SD Card

Combinable Filters

Filters can be combined to create precise results.

For example:

Type = Video
AND Size > 500 MB
AND Modified > 1 year
AND Hidden = true

Filtering Architecture

Filters operate on the existing indexed FileItem data instead of triggering another filesystem scan.

text Scanner ↓ FileItem List ↓ FilterEngine ↓ Filtered Results ↓ UI

The scanner already provides metadata such as:

  • Path
  • Name
  • Size
  • MIME type
  • Modified date

This allows filtering to happen quickly after the initial scan.

🎵 Media Playback

MediaRescue includes an integrated audio player with next and previous controls.

Audio playback works from:

  • Browse
  • Large Files
  • Search

The player receives the available audio files from the current folder and allows users to move between them without manually returning to the file list.

🎬 Video Playback

Video previews use dedicated top-level routes.

  • Full-screen video playback
  • Bottom navigation is hidden while watching videos
  • App bar remains available with the back button and file name
  • Video playback stops when leaving the preview screen
  • Video sound stops when leaving the preview screen
  • Route observation provides additional playback safety

🖼️ Gallery

The Gallery provides a dedicated way to browse discovered media.

Suggested folders include:

  • Android
  • DCIM
  • Pictures
  • Download
  • Movies
  • Music
  • Documents
  • WhatsApp

Selecting a suggested folder scans the folder and its subfolders and displays the discovered files through the same Gallery workflow.

🔍 Search

Users can search through scanned files without performing another storage scan.

Search results open files through dedicated preview routes for:

  • Images
  • Videos
  • Audio
  • PDFs

Returning from a preview brings the user back to the Search screen.

📂 Browser

The Browser provides manual folder navigation similar to Android file manager applications.

Users can:

  • Browse folders
  • Browse subfolders
  • Open files
  • Navigate through storage manually
  • Open media using the appropriate preview screen

🧹 Cleanup Suggestions

The Home screen provides quick links to useful file discovery and cleanup areas.

  • Large video files → Large Files
  • Many images → Gallery
  • Unknown files → Browser

📦 Large Files

MediaRescue detects large files and provides a dedicated Large Files screen.

Users can inspect large files and open them using the appropriate preview screen.

Back navigation from the Large Files screen returns to Home.

🔒 Privacy

MediaRescue is designed around local processing. Files are scanned and displayed directly on the device without uploading personal files to a remote server.

MediaRescue processes discovered file metadata locally to provide scanning, searching, filtering, browsing, and preview functionality.

🛠️ Tech Stack

  • Flutter
  • Dart
  • Kotlin
  • Android SDK
  • Gradle
  • Material Design
  • Git
  • GitHub

🧪 Testing

MediaRescue is currently available through Google Play closed testing as part of the preparation for its public release.

Testing covers:

  • Storage scanning
  • File discovery
  • Gallery
  • Smart Filters
  • Search
  • File browsing
  • Audio playback
  • Video playback
  • Image previews
  • PDF previews
  • Large file detection
  • Navigation
  • Storage locations

👨‍💻 Development

MediaRescue was developed independently, covering:

  • Android application development
  • Flutter development
  • Dart development
  • Kotlin development
  • Storage and file management
  • File scanning
  • Recursive folder scanning
  • File metadata indexing
  • File filtering
  • Media playback
  • File previews
  • UI/UX design
  • Android storage permissions
  • Release signing
  • Google Play deployment
  • Privacy documentation
  • Closed testing

📄 License

MediaRescue is released under the MIT License.