pocket-casts-ios icon indicating copy to clipboard operation
pocket-casts-ios copied to clipboard

Add filter chip for subscription status - WIP

Open aidano opened this issue 3 years ago • 6 comments

Fixes #

This fixes https://github.com/Automattic/pocket-casts-ios/issues/438 by allowing the user to filter by podcast subscription status (All | Subscribed | Not Subscribed )

Due to some naming challenges that this functionality introduces, while the code is fully functional in my testing, and should be very close to production-ready (pending any review feedback), the UX is not.

The primary challenge is confusion around the naming and related functionality of the All Your Podcasts filter chip versus this one (Any Podcast / Subscribed / Not Subscribed): it's too similar and will likely introduce user confusion.

Maybe someone on the Automattic team can chime in with thoughts or ideas.

To test

  • Subscribe to a podcast
  • Download an episode from that podcast
  • Download an episode from a podcast to which you're not subscribed
  • Create a filter for 'Downloaded' Download status
  • Filter by subscription status using the right-most filter chip

The below screenshots and video provide more context based on the above test scenario.

1) Filtering by Subscribed

Filtering by Subscribed Filtering by Subscribed

2) Filtering by Not Subscribed

Filtering by Not Subscribed Filtering by Not Subscribed

3) Filtering by All

Filtering by All Filtering by All

Video of a Playlist of Unplayed, Downloaded Podcasts, Filtering by Subscription Status

https://user-images.githubusercontent.com/621864/198107003-6e55af77-8d15-483b-ba17-db6e8a198f74.mp4

Checklist

This is a WIP due to the UX nuances introduced and as such is not ready for the below checklist items.

  • [ ] I have considered if this change warrants user-facing release notes and have added them to CHANGELOG.md if necessary.
  • [ ] I have considered adding unit tests for my changes.
  • [ ] I have updated (or requested that someone edit) the spreadsheet to reflect any new or changed analytics.

aidano avatar Oct 26 '22 16:10 aidano

CLA assistant check
All committers have signed the CLA.

CLAassistant avatar Oct 26 '22 16:10 CLAassistant

Hey @aidano, thanks for your contribution.

Could you please add images/videos showing the changes you added to this PR? This helps a lot so other people can chime in with their thoughts without necessarily having to build the code.

leandroalonso avatar Oct 26 '22 16:10 leandroalonso

@leandroalonso Sure thing. I've edited the original comment to contain some screenshots and a demo of the filter being used in a playlist.

aidano avatar Oct 26 '22 18:10 aidano

Thanks for taking the time with this contribution. We might have to consider some other issues before accepting this change:

  • The idea behind filters was it only displayed subscribed podcasts. Allowing unsubscribed podcasts could raise new issues, such as how would remove an unsubscribed podcast from a filter if you are no longer interested in it.
  • I don’t believe we sync all unsubscribed podcasts so two mobile devices with the same filter won’t look the same which might cause confusion and support issues.
  • We would need to make sync server code changes to support this first.
  • If you just open a podcast in discover without playing an episode on Android it adds it to your database as unsubscribed.

geekygecko avatar Oct 26 '22 22:10 geekygecko

Thanks for taking the time to outlay the challenges with this. While navigating the code more, I did gain a sense that there are some systemic challenges around making episodes from unsubscribed podcasts a 1st class citizen, so it's not a big surprise.

That said, I would love it if there was a path to allowing these unsubscribed episodes to be treated largely the same in the app as subscribed episodes, so I hope there are others who feel motivated to contribute to a wider effort if that's needed.

Some comments regarding the specific challenges you raised:

The idea behind filters was it only displayed subscribed podcasts. Allowing unsubscribed podcasts could raise new issues, such as how would remove an unsubscribed podcast from a filter if you are no longer interested in it.

I may be misunderstanding the nomenclature and functionality but I thought filters were for podcast episodes rather than podcasts. But understood that there may be, for example, some special logic needed to deal with non-subscribed podcast episodes. Swiping left to archive an episode in the filter I implemented works just fine on iOS in my testing, FWIW.

I don’t believe we sync all unsubscribed podcasts so two mobile devices with the same filter won’t look the same which might cause confusion and support issues.

Good point!

We would need to make sync server code changes to support this first.

Understood (presumably for the new filter DB columns, and the above point).

If you just open a podcast in discover without playing an episode on Android it adds it to your database as unsubscribed.

Would you mind elaborating on the issue with this behavior on Android?

aidano avatar Oct 28 '22 01:10 aidano

Would you mind elaborating on the issue with this behavior on Android?

The way Android currently works is that to display the podcast page the podcast and its episodes are added to the database. The process is the same if you are subscribed, unsubscribed, or just browsing the podcast through the discover section. The podcast can be in any of these states, and the user can tap one of the actions on an episode, such as play, and the app will sync the change to their account. Having all the states share the same logic has made it simpler, but I'm open to other ideas on how it could work.

geekygecko avatar Oct 30 '22 23:10 geekygecko

@geekygecko @leandroalonso while I get this is an old issue that wasn't brought forward I would still see the value in a similar option, would it make more sense to put three these three checkbox options under downloads pill,

  • [ ] include loose downloads in filter
  • [ ] include downloaded files in filter
  • [ ] include cloud files in filter

As this would allow those loose files being included but am I missing something on either platform 🤔 (+ yes it wouldnt match platform to platform but as its under downloads the intent is clear)

I think theirs also a need for a folder filter pill by the way (sorry if I repeat myself) with the option to have the sort order to be based on the folder position basically enabling podcast grouping in filters which would be a massive enhancement for filters & plus in my opinion 😅

CookieyedCodes avatar May 08 '23 16:05 CookieyedCodes