Repository navigation
Feature/file manager - #52
Merged
Merged
Conversation
Adds a Tools menu entry that opens a file manager dialog for browsing device storage over ADB, uploading files via the OS file picker, downloading to the save location, and creating, renaming, and deleting entries. Remote paths are shell-quoted, and the ls parser handles both toybox and legacy toolbox output formats with unit tests.
Downloads previously always landed in the save location, which reset to the default folder on every launch and could only be changed from the main screen. - Persist the save location with shared_preferences so it survives restarts. A stored folder that is missing at launch falls back to the default for the session but is kept, since it may be on a drive or share that is not mounted yet. - Add an "Ask each time" option that prompts for a destination on every download, and a per-file "Download to..." action for one-off overrides, reachable from an overflow button or a right-click menu. - Show a destination bar in the file manager stating where the next download will land, with inline Change and Open folder actions. - "Open containing folder" after a download now opens the folder the file actually went to rather than the save location. - Use xdg-open on Linux; the opener previously fell back to macOS `open` on every non-Windows platform.
Collaborator
Author
|
Confirmed working on mac as well. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add a device file manager
Adds a Tools → File Manager entry that browses device storage over ADB, with
uploads, downloads, and basic file operations.
File manager
/sdcard, with an editable path field,quick-jump chips (sdcard, Download, DCIM, Movies), and a refresh action.
folders stay grouped above files in both directions.
files and folders, and create, rename, or delete entries. Rename and delete
are reachable from row buttons, an overflow menu, or a right-click menu.
ls -laoutput is parsed for both toybox and legacy toolbox formats,including symlink targets and entries with no size or timestamp.
Download destinations
shared_preferencesso it survivesrestarts. A stored folder that is missing at launch falls back to the default
for that session but is kept, since it may live on a drive or share that is
not mounted yet.
and a per-file "Download to…" action handles one-off overrides.
land, with inline Change and Open folder actions.
actually went to, not the save location.
Also included
.gitattributesnormalizing line endings to LF.added a tooltip showing the full save path.
Testing
flutter test test/device_file_parser_test.dart— 14 tests covering toybox andtoolbox
lsparsing, symlink handling, all three sort columns in bothdirections, missing-metadata fallbacks, shell quoting, path joining/traversal,
and size formatting. All pass.
Manual verification of the dialog itself (upload, download, rename, delete,
"Ask each time") was done against my Peloton Bike with the Windows Client
Notes for reviewers
downloads work via
Adb.downloadFile.shared_preferences: ^2.5.5.