deckerst / aves

Aves is a gallery and metadata explorer app, built for Android with Flutter.
BSD 3-Clause "New" or "Revised" License
2.77k stars 106 forks source link

Separate excludes when browsing for files / using the Explorer view #1216

Open Terrance opened 1 month ago

Terrance commented 1 month ago

Is your feature request related to a problem? Please describe.

I currently use Aves as my image selection intent handler (my file manager app doesn't provide one; the only other provider is an image editor), which works fine for most uses. However, I like to have various "noisy" folders hidden (e.g. downloads) but occasionally need to select images from them.

Describe the solution you'd like

A few possibilities come to mind:

The Explorer view feels like a reasonable place to show all albums (perhaps with some indication / greying out of albums normally hidden in other views), but any of the above would work for me.

Describe alternatives you've considered

Currently I've just unhidden things, but it makes the Albums view rather cluttered (e.g. one of the folders I would normally have hidden but occasionally need to select from is organised into various subfolders, which all appears as their own albums mixed in with real albums I want to use more day-to-day) -- #538 would help with that.

Additional context

I'm aware Aves is not a file manager, but the intent handler is there and (for me at least) I tend to need/want different subsets of my media library when browsing in the gallery vs. selecting media for a different app.

deckerst commented 1 month ago

The Explorer view feels like a reasonable place to show all albums (perhaps with some indication / greying out of albums normally hidden in other views), but any of the above would work for me.

This suggestion is interesting, as showing additional folders here do not significantly clutter the view the same as it does elsewhere. However, let's say you open a folder via the explorer that way, then you get to select items in the Collection page, and this becomes tricky to decide what to show here. Hiding allows much more fine-grained filtering than simply hiding a folder.

Same goes for the exclusion segregation suggestion, because eventually users will be back on the Collection page to actually select items.

I believe that it's easy enough to toggle hidden filters and paths on and off as needed via the Settings > Privacy > Hidden items.[^1] Have you considered using these toggles when you actually need to browse hidden items?

[^1]: I've just realized that hidden filters can be toggled but not hidden paths! I should make those the same way...

deckerst commented 1 month ago

I've just realized that hidden filters can be toggled but not hidden paths! I should make those the same way...

Done. And hidden path filters are now listed with the others, so it's one tap less to reach and toggle them.

Terrance commented 1 month ago

toggle hidden filters and paths on and off as needed

I hadn't realised these were toggleable once added to the list -- that would probably do, though it's a little clunky:

Filters wouldn't work well for my hierarchical folders as I'd have to keep ignoring new subfolders, though with the above fix I could just exclude the root as a path and toggle that as needed.

let's say you open a folder via the explorer that way, then you get to select items in the Collection page, and this becomes tricky to decide what to show here

If you choose a "leaf" folder (i.e. one with no children) from Explorer that would otherwise be hidden, we can just show its contents.

It looks like selecting a folder with children (i.e. one with the hierarchy icon) already works differently here vs. selecting the corresponding album: the former includes subfolders, the latter does not. I'd therefore be inclined to allow it to display all files and ignore hidden filters in this case too. If that search selection is removed, the normal hidden filters apply again.

deckerst commented 1 month ago

If you choose a "leaf" folder (i.e. one with no children) from Explorer that would otherwise be hidden, we can just show its contents.

Let's say you don't like seeing videos in Aves, so you hide them. You also hide a folder but you want to see that folder the way you suggest. When getting visible, I'm sure you expect to see the contents of that folder without the videos. That's what I meant by fine-grained filtering. Items can be hidden in many ways, by path, type, location, tags, and combinations of these.

Anyway, I have an idea that would solve your problem, be transparent to users who do not need it, and do not require segregation or lengthy explanation. It's a combination of 1) your suggestion regarding showing in the explorer paths with hidden content, 2) detection in the Collection page of empty content and matching hidden filters, adding ad hoc toggles right there (these toggles would be for the session only).

Terrance commented 1 month ago

Items can be hidden in many ways, by path, type, location, tags, and combinations of these.

I suspect my perception is somewhat skewed by the "typical" gallery app design, which tends to treat hiding folders (and which tends to come with a temporary "show hidden folders" button) and filtering the current view (by date, type, or whatever else) as two largely separate features.

Here, everything is a filter in a unified search, which is powerful but indeed leads to the ambiguity you're describing when they're combined. I was imagining the combination of a) hidden paths not applying in the Explorer view, and b) hidden paths not applying to an album/path search filter (that is, if you explicitly choose a path, it overrules hidden paths). Any other searches/filters would apply as normal on top of that, and the albums would be hidden outside of the Explorer view so (in theory) you wouldn't be able to select one in the first place.

It's a combination of 1) your suggestion regarding showing in the explorer paths with hidden content, 2) detection in the Collection page of empty content and matching hidden filters, adding ad hoc toggles right there (these toggles would be for the session only).

In any case, this sounds like it will work too, so I will wait and see what it looks like. 🙂