Skip to content

πŸ’‘ Feature Requests & Suggestions (Compiled from APK Analysis + Usage)Β #1

@TheDreDay1000

Description

@TheDreDay1000

Hi! I've been testing VscoLoader v4.3.2 and dug into the APK to get a better picture of the internals. A lot of the scaffolding for some of these already exists in the codebase β€” surfacing it in the UI would go a long way. Grouping everything here so it's easy to triage.


πŸ“‚ 1. Download History / Log Screen

There's no way to review what was previously downloaded inside the app. A simple history screen showing filename, URL source, timestamp, and file status (exists / deleted) would be really useful β€” especially when downloading a lot of profiles or collections over multiple sessions.

Nice to have: tap a history entry β†’ open the file directly or copy the source URL.


πŸ“ 2. Custom Save Location Picker

A folderPath reference exists in the code but there's no UI to configure it. An option in Settings to pick the download folder (using ACTION_OPEN_DOCUMENT_TREE) would give users control over where files land β€” useful for users with multiple storage volumes or specific folder structures.


πŸ” 3. Download Queue / In-Progress Status UI

The app has a full queue system internally (DownloadService, chunk handling, playlist segments), but there's no visible queue management screen. Adding a simple list of in progress and pending downloads with per-item cancel and retry buttons would make it much easier to manage heavy sessions (e.g., downloading a large VSCO collection).


πŸ”„ 4. Retry Failed Downloads

When a download fails (network drop, bad URL, server error), there's currently no retry option surfaced in the UI. A Retry button in the error notification or a failed-item list would help a lot, especially for M3U8/chunked downloads that can fail mid-stream.


πŸ“‹ 5. Clipboard Auto-Detect on App Open

When launching the app, automatically detect if the clipboard contains a VSCO URL (vsco.co/, vsco.co/p/, shortlinks) and pre-fill the URL field. This removes the manual paste step for the most common workflow: copy link β†’ open app β†’ download.


πŸ“€ 6. Open / Share Downloaded File After Download

A shareDownloadedFile method exists in the codebase but there's no user-facing trigger for it. After a download completes, the notification or an in-app prompt could offer:

  • Open β€” launch the file in the default photo/video viewer
  • Share β€” send the file via Android share sheet

🎬 7. HLS / M3U8 Quality Selection

The app already handles M3U8 playlist downloads (extractUrlsFromM3u, multi-stream support). When a VSCO video has multiple quality streams in the playlist, allow the user to pick the preferred resolution (e.g., Original / High / Medium) rather than always grabbing the default.


πŸ“¦ 8. Batch Download (Multiple URLs at Once)

Currently only one URL can be queued at a time via paste or share intent. Two ways to improve this:

  • Accept multiple URLs via the Android multi-share intent
  • Add a text-area input where the user can paste several VSCO URLs (one per line) and kick them all off

πŸŒ™ 9. Dark Mode / Material You Theme Toggle

Material 3 components are fully integrated, and dynamic color support is present in the dependency tree. A Settings β†’ Theme option (Light / Dark / Follow System) and ideally Material You dynamic color would make the app feel polished on modern Android. Right now there's no visible theme toggle.


πŸ“„ 10. Filename Preservation / Template

Downloaded files currently use auto-generated names. An option to use the original VSCO post ID or a custom filename template (e.g., {username}_{postid}_{date}) would make the library much easier to organize, especially for bulk profile downloads.


πŸ”” 11. Notification Channel Fine-Tuning

The app requests REQUEST_IGNORE_BATTERY_OPTIMIZATIONS on install, which triggers a system dialog that can feel intrusive. Consider making this opt-in from a Settings screen with an explanation ("Enable for faster background downloads") rather than requesting it automatically.


πŸ“± 12. Android 11+ Scoped Storage Compatibility

The manifest currently sets requestLegacyExternalStorage = true and uses READ_EXTERNAL_STORAGE / WRITE_EXTERNAL_STORAGE. On Android 11+ (API 30+), the recommended path is either:

  • Use MediaStore to write to DCIM / Pictures (no special permission needed)
  • Or use ACTION_OPEN_DOCUMENT_TREE + persistedUriPermission for a user-chosen folder

This would also allow removing the legacy storage flag and the broad storage permissions, which improves Play Store compatibility and avoids permission dialogs on newer devices.


πŸ“‹ 13. In-App Version & Changelog

No version number or changelog is visible inside the app. Adding a simple About screen (or a version entry in Settings) showing the current version and a link to the GitHub Releases page makes it easier for users to know if they're up to date (especially important for Obtainium users).


Thanks for the solid app β€” the core download flow is clean and the share intent integration works great. These are mostly polish and QoL additions rather than bugs. Happy to test any of these if implemented!

@mvxGREEN

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions