
MediaRescue | Find files your phone forgets about
Find, browse, preview, and manage your forgotten media and files.
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
- GitHub: https://github.com/everythingfreee/MediaRescue
- Google Play: https://play.google.com/store/apps/details?id=com.shaheer.mediarescue.mediarescue
- Status: Closed Testing
- Version:
1.0.3 - License: MIT
🚀 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 tap — Rescue: 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_viewzoom; 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
SharedPreferencesthrough 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
DocumentsContractdirectory URI withEXTRA_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
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.