pocket-casts-android
pocket-casts-android copied to clipboard
Why dose Archive status sync before Starred Status?
I ask because my starred podcasts keep getting archived tho I never want them too(I want to keep the download), maby it's because I rarely have and iOS & watch in the mix too -once every 2+ weeks watch more frequent- but it's a bit of a pain point even tho auto archive for starred is disabled all devices
Is this still an issue?
@geekygecko I think it is yes, I still have files that get deleted from iOS to Android because archive syncs first
Seems that the call to episodeManager.archive(episode, playbackManager, sync = false) at line 890 internally doesn't take on account if episode was / wasn't started and cleans up right away. If compared with archivePlayedEpisode function that one checks for episode being stared. So indeed looks like something that should be relatively easy to fix. Will pick up one free evening if there is no takers..
https://github.com/Automattic/pocket-casts-android/blob/1585aad387eb28883f61ba8d48224c81883e3080/modules/services/repositories/src/main/java/au/com/shiftyjelly/pocketcasts/repositories/sync/PodcastSyncProcess.kt#L869-L894
If you could that would be great and greatly appreciated, you probably should check the iOS side too that would be good to make sure the behavior is consistent on both sides 🙂
Hi @CookieyedCodes I've started with adding test case and realised that current app behaviour is to delete download on Archive (even if episode is Starred), marking it Played for when auto archive is off will retain download. Thus when during sync an episode reports archived it's expected behaviour to remove a download.
I'd suspect that auto-archive settings between devices might be out of sync (hence episodes are getting archived on one of your devices)? To keep digging can you please outline steps to replicate and run a check on the setting your end, i.e:
You have devices A and B with podcast subscribed Your global Auto archive is Archive played episodes: After playing, Archive inactive episodes: Never and Include starred episodes: Turned off? Do you have podcast specific settings for Auto archive? Do both devices have above 2 set to the same?
So far I've checked:
- if starred flag does get passed on between devices (it does on phones, can you please check on you watches)?
- auto archive settings of podcast sync (no these doesn't sync, so that might be a gap if your settings are on podcast level)
- auto archive settings on app (global) level sync (no these doesn't sync, so again it might be a diversion is devices setup that leads to unexpected behaviour)
So my global is set the same on both devices as shown above, on iOS I only use global, on Android I have like 5 podcasts that use local episode limits but the other settings aren't different and global, whats fascinating is starred dose transfer because on iOS/watch will not delete an episode if it's starred but from iOS to Android it will, my thoughts is because it syncs archived/mark as played first by looking at the listening history on Android but it's not checking starred before it syncs this deleting the episode, android to web dose work correctly tho so hmmmmm
Apple watch settings follow iOS from my understanding as stars tend do get kept
Another thing to note it's only the first time, Android (downloaded starred)>iOS (archived and starred)>android(not downloaded archived & starred) So I download it again on Android and then back and forth it remembers and doesn't rearchived So you can see why this is annoying me hmmmmm
I was looking around sync and to be fair can't spot bug. On initial login the logic is slightly off (i.e. if you got archived episodes already, downloads will be removed right away, even if episodes are starred server (other device) side - as it's second sync that will bring starred), but that isn't your issue. I haven't yet looked to what's being posted to server on sync, might be that starred and finished episodes are somehow becoming archived too.. otherwise, hard to see where the archived status would come from. Anyway, time allowing will keep pondering. By the way latest versions brought some wear improvements so maybe it's actually fixed? ;-)