Add a Blog post loading page#5316
Open
geekygecko wants to merge 2 commits into
Open
Conversation
Collaborator
Generated by 🚫 Danger |
Contributor
There was a problem hiding this comment.
Pull request overview
Adds an intermediate “feed found / loading first episode” experience for blog-to-podcast creation, so users can see the followed feed and navigate once the podcast is ready.
Changes:
- Adds localized strings and Compose UI for the new Found state.
- Updates AddBlogViewModel to emit navigation events, wait for podcast creation, and poll for the first episode.
- Updates fragment wiring and ViewModel tests for the new flow.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
modules/services/localization/src/main/res/values/strings.xml |
Adds user-facing strings for the new found/loading page. |
modules/features/profile/src/test/kotlin/au/com/shiftyjelly/pocketcasts/profile/blogs/AddBlogViewModelTest.kt |
Updates existing tests and adds coverage for episode count and podcast wait behavior. |
modules/features/profile/src/main/java/au/com/shiftyjelly/pocketcasts/profile/blogs/BlogsFragment.kt |
Collects podcast navigation events and passes new callbacks into the add-blog page. |
modules/features/profile/src/main/java/au/com/shiftyjelly/pocketcasts/profile/blogs/AddBlogViewModel.kt |
Adds Found state, navigation event flow, subscription waiting, and episode polling. |
modules/features/profile/src/main/java/au/com/shiftyjelly/pocketcasts/profile/blogs/AddBlogPage.kt |
Renders the new feed-found card, loading message, go-to-podcast button, and previews. |
Comments suppressed due to low confidence (1)
modules/features/profile/src/main/java/au/com/shiftyjelly/pocketcasts/profile/blogs/AddBlogViewModel.kt:174
- This polling path ignores the Boolean returned by refreshPodcastFeed. In PodcastManagerImpl, a true result means the refresh API reported EpisodeFound, but the actual podcast refresh is started asynchronously, so countEpisodesByPodcast can still be 0 immediately afterward. That can leave users on the loading page and trigger another 20-second poll even after the first episode is ready.
podcastManager.refreshPodcastFeed(podcast)
val count = podcastManager.countEpisodesByPodcast(podcast.uuid)
if (count > 0) {
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This change adds a loading state while the blog is having the post text converted to audio.
Fixes https://linear.app/a8c/issue/POC-621/android-add-a-loading-state-on-the-podcast-page
Testing Instructions
debugvariantScreenshots / Video
Screen.Recording.2026-05-18.at.10.39.54.pm.mov
Checklist
./gradlew spotlessApplyto automatically apply formatting/linting)modules/services/localization/src/main/res/values/strings.xmlI have tested any UI changes...