Open brentsimmons opened 5 years ago
Also note: this should be undoable, like the other mark-read commands.
This is something I've wanted to have lately. I think this issue is a good candidate for a beginner wanting to learn Mac programming a little better. It is also something that someone wanting to contribute to iOS could do.
I envision this working quite differently on iOS. I think it would go well in the context menu for Accounts.
I'd like to propose an alternate UI that would be more flexible and work well on both iOS and macOS. (Since we don't have an Article menu on iOS.)
I'd like to add a context menu item in the context menu for the Sidebar. This menu item would be available for All Unread, Account, Folders, and Feeds. On macOS this menu should also be added to the Article menu.
Mark Older as Read in "Feed Name"
This context menu would expand a submenu with the following options:
(These are the same durations that BazQux uses for this function. I'm not married to them.)
The "Mark Older" item should only be available if there are unread articles in the selected item. I can't think of a way to efficiently restrict the duration submenu, so we would always have to show all options.
The reason that I would like Catch Up to work more granularly than at the Account level is because different feeds have articles that age differently. For example a news feed has articles that are only relevant for a few days. But a developer blog has articles that can be relevant for years.
Another example is that I have a folder called Racing that has some very old, but still relevant articles about Road Racing. But if I get behind on my Twitter feeds in my Twitter folder, I would want to catch those up without marking my Racing articles as read.
I also think being able to select duration is useful. Maybe I have time to catch up on 2 or 3 days of Twitter posts and would like to do that instead of just saving 1 day.
Good proposal. I agree. Let’s do it. 👍
What do you think about changing the Mark All as Read icon? I think that since our Mark as Read icon is the open circle, that the Mark All as Read and Mark Older as Read could use the open circle with arrows in it to denote direction of the marking. For Mark Older as Read the arrow direction would depend on the sort order. For Mark All as Read it would have arrows in both directions.
Here are the icons:
Here is the proposed Mark All as Read change in action:
Note: we shouldn't need to define any new entries in AppAssets
The markAboveAsReadImage
and markBelowAsReadImage
already exist. They are currently just triangles though and would be better served as arrows I believe. Changing them to arrows also allows us to change the markAllAsReadImage
to something that better shows the relationship between the different Mark functions.
That’s a good idea — I like it. Let’s do it.
Should we add Mark Above as Read and Mark Below as Read to the Mac toolbar? (As not default.)
Yeah, I'll add those toolbar items.
@vincode-io is this what we're thinking?
How about this for iOS?
Instead of "Catch Up" use "Mark Older Than". It is more consistent with our current labels.
We should also use a submenu on iOS instead of a dialog.
Better?
We're getting closer.
I think the menu option should read Mark Older Than as Read in "Accidentally in Code" though. It doesn't really roll off the tongue, but it matches our other Mark menu options better.
We're getting closer.
I think the menu option should read Mark Older Than as Read in "Accidentally in Code" though. It doesn't really roll off the tongue, but it matches our other Mark menu options better.
Don't forget the icon. You should use AppAssets.markAboveAsReadImage
or AppAssets.markBelowAsReadImage
depending on the sort direction of the Timeline.
That looks really good!
Very nice!
Here’s the tricky part — and I’m not sure if it’s do-able or not:
The truncated feed name should still have the right double quotes, as in: “Accidentall…”
instead of “Accidental…
I can't see how this could be done in a UIMenu. You would have to be able to compute the truncation based on the runtime menu width as the menu is laid out. There just doesn't seem to be anywhere in UIMenu to hook into to do this.
Do we actually need to mention the feed title?
In the surrounds of a context menu, the feed title is right at the top/bottom...
I don't think the name of the Feed name needs to be there. We don't have it on the Mac and it just makes the menu look more cluttered on iOS.
I would like to remove the Feed name from both Mark Older Than and Mark All.
Agreed — let’s remove the feed name from Mark Older Than and Mark All.
Agreed — let’s remove the feed name from Mark Older Than and Mark All.
👍 this will be incorporated in my PR when it’s ready
We probably want to remove the Feed name from the Timeline context menu's Mark All as Read to be consistent.
Forget what I typed above. We need the Feed name on the Timeline context menu because there may be multiple Feeds in a Smart Feed or a Folder.
@brentsimmons Now that we've made our Mark All as Read icons more consistent, I noticed an inconsistency with the Next Unread icon. It uses the open circle which we use to denote read articles. Shouldn't it be a closed circle since we are searching for unread circle?
Suggested change:
Forget my suggestion about changing the Next Unread icon. I tried it on the Mac and it looked weird. It gave the impression that it was in an toggled on state, like one of our filters. Not good.
Reopening because this needs additional verification.
Catch Up…
Goes at the bottom of the Article menu. Displays a sheet:
Catch Up Mark everything as read older than today in selected accounts: [checkbox] On My Mac [checkbox] FeedBin etc.
[Cancel] [Catch Up]
If the [Catch Up] button is clicked, then it does what it says: marks everything as read older than today in the selected accounts.
Note: the [Catch Up] button is enabled when one or more accounts is enabled.
The list of accounts could be in a scrollable table view, with four lines (good guess?) showing at a time.
The checkbox defaults to unchecked for each account. This way there’s no accidental catching up.