mpcjanssen / simpletask-android

GNU General Public License v3.0
545 stars 124 forks source link

Feature request: Hide "context" & "project" for items not shown #790

Open thehungryturnip opened 6 years ago

thehungryturnip commented 6 years ago

Sorry for leaving it as an "issue". Not sure what's the proper way to submit a feature request. Feel free to let me know & I can move it.

Is it possible to add in an option to hide the "contexts" & "projects" from the list when there are no matching tasks visible?

Use cases:

Hope to hear back from you. Thanks for the great app! Definitely my favorite Todo system :)

mpcjanssen commented 6 years ago

When would the lists and tags actually appear/dissappear. If I select a specific list, should all other lists be hidden (there are no tasks matching these lists). I think this is very difficult to make it work intuitively.

Only thing which makes some sense to me is to hide tags that are not displayed if you select certain lists.

thehungryturnip commented 6 years ago

I think the most logical/straightforward way is for the Left Menu (Lists and Tags) to reflect what is visible in the Task List.

e.g. If, after filtering by list A, all tasks visible in the Task List only belong to list A, then list A should be the only one visible. However, if there are List-A tasks that belong to additional lists (a task can theoretically belong to multiple lists), those lists should be visible in the Left Menu.

A more concrete example: (A) Buy black pepper @WholeFoods +Dinner (A) Buy milk @WholeFoods +Breakfast +ForKids (A) File Taxes @Home @Office t:2018-04-01 (B) Defrost meat @Home @Kitchen +Dinner (B) Get mail @Home t:2018-03-01

If I select "@Home" on the Left Menu, the tasks should look like this: (A) File Taxes @Home @Office t:2018-04-01 (B) Defrost meat @Home @Kitchen +Dinner (B) Get mail @Home t:2018-03-01 And "@WholeFoods" should disappear while "@Office" and "@Kitchen" remains. "+Breakfast" and "+ForKids" should disappear, too since they're no longer part of the visible task list. (i.e. What this is saying is that there are no "@Wholefoods", "+Breakfast", or "+ForKids" tasks at "@Home", but there are "@Office" and "@Kitchen" tasks at "@Home".)

If I continue and select "@Office", then the task list should look like this: (A) File Taxes @Home @Office t:2018-04-01 Because this is the only task that's on both "@Home" and "@Office" lists. At this stage, all Tags are hidden because there are no Tags in tasks that are both "@Home" and "@Office".

If I clear filter and select "@WholeFoods", the task list should look like this: (A) Buy black pepper @WholeFoods +Dinner (A) Buy milk @WholeFoods +Breakfast +ForKids "@Home", "@Office", "@Kitchen" should all disappear because there are no home, office, or kitchen tasks at "@WholeFoods". All 3 tags remain because they're still all visible.

If I clear filter and select "hide future tasks", the task list should look like this: (A) Buy black pepper @WholeFoods +Dinner (A) Buy milk @WholeFoods +Breakfast +ForKids (B) Defrost meat @Home @Kitchen +Dinner (B) Get mail @Home t:2018-03-01 And "@Office" would disappear because there are no "@Office" tasks that are visible. (i.e. it's only in a future task.)

If I clear filter and select "+Dinner", the task list should look like this: (A) Buy black pepper @WholeFoods +Dinner (B) Defrost meat @Home @Kitchen +Dinner "@Office", "+ForKids", "+Breakfast" would all disappear. In the left menu I would see "@WholeFoods", "@Home", and "@Kitchen", letting me know those are the 3 lists I need to focus on to complete "+Dinner".

Does this make sense? Sorry for the long post... If there's a gap in my logic I'm happy to chat more! Let me know what you think! :)

smichel17 commented 6 years ago

I was thinking of a simpler version using two-stage filtering — the quick filter drawer would only show lists and tags of tasks that are visible in the active query (saved filter).

This might be enough that the idea above is no longer necessary (and if not, the above could still be implemented on top of two-stage).

thehungryturnip commented 6 years ago

Maybe I didn't make it clear, I think the main filter menu should (continue to) list all Lists and Tags. I'm only referring to the quick access drawer when it comes to hiding Lists and Tags. Are you referring to the drawer on the right when you say "active query (saved filter)"?

I'll have to see your actual implementation to know what you're talking about. I'm happy to wait to see what you come up with :)

My biggest inconvenience right now is that I have "tasks" in there with threshold far into the future and the Lists and Tags are cluttering up the quick filter drawer. (i.e. When I select them I see no tasks.)

smichel17 commented 6 years ago

@boabawhales Don't sweat it; my comment was mostly intended for @mpcjanssen. But, if you're curious, here's the context/implementation details:

Right now there is one active filter at a time. You can modify the filter configuration from the filter activity (the three line menu item next to search) or the quick filter (left) drawer. You can also save filter configurations in the saved filter (right) drawer to quickly return to them later.

Important note there: there's just one filter configuration; all three of methods modify it in the same way. Say I saved an "Inbox" filter for tasks with no lists and a "Shopping" filter for those with @shopping; If I load the inbox filter, open the left drawer, and select @shopping instead of - , I end up in the exact same state as if I'd just loaded the shopping filter. The system can't tell which modifications were made from the quick filter drawer vs by loading a saved filter. Notably, there's no way to clear only the modifications from the quick filter drawer.

We're planning on & in the process of splitting filtering into two stages, where filtering from the quick filter drawer happens on top of a persistent filter from the activity or right drawer. Internally, we're calling the persistent filters queries, since it's confusing to call everything a filter.

I was suggesting that the quick filter drawer should only show lists & tags of whatever tasks are visible in the active query. We could also implement your suggestion on top of that, which would now work better since it's possible to clear the quick filter only.

thehungryturnip commented 6 years ago

Ah. I see. Now I get the clear picture. Thanks! (I actually didn't notice that it was @smichel17 that posted... I thought both replies came from @mpcjanssen ...)

Given your explanation, I still would like to see the lists and tags in the quick filter drawer be dynamically updated with what's visible, not just what's in the active query.

Thanks for considering!