Skip to content

[RSM] Smart Bookmarks list UI#5284

Open
sztomek wants to merge 3 commits into
feat/smart-bookmarks-apifrom
feat/smart-bookmarks-ui
Open

[RSM] Smart Bookmarks list UI#5284
sztomek wants to merge 3 commits into
feat/smart-bookmarks-apifrom
feat/smart-bookmarks-ui

Conversation

@sztomek
Copy link
Copy Markdown
Contributor

@sztomek sztomek commented May 8, 2026

Description

This is the last PR on the android-side of changes, where we hook up the enrichment flow and surface the results in the UI, on the bookmarks list. When a new bookmark is created, the app now fires off a background enrichment call if the Smart Bookmarks feature flag is enabled. The enrichment runs after the bookmark is saved, so the user sees no delay.
On the display side, the bookmark row now shows the AI-generated title when the user hasn't manually edited it, with a displayTitle property that picks the right one based on timestamp priority. If an AI summary is available, it appears as a secondary line beneath the title.

An upcoming PR will let us open the enhanced bookmarks to see its details.

Testing Instructions

Since the backend changes are not yet deployed, the best way to test the new ui in action is to manually inject data into the database via Android Studio's Database inspector tool.
Select pocketcasts database then run these queries:
1- SELECT uuid, podcast_id FROM podcast_episodes ORDER BY published_date DESC LIMIT 1 -- remember these Ids!
2-

INSERT INTO bookmarks (uuid, podcast_uuid, episode_uuid, time, created_at, title, title_modified, deleted, deleted_modified, ai_title, ai_summary, ai_title_modified, ai_summary_modified, sync_status, clean_title)                                                                                                      
  VALUES                                                                                                                                                                                                                                                                                                                    
    ('aaaa-0001-test-bookmark-01', '<PODCAST_UUID>', '<EPISODE_UUID>', 120, 1715100000000, 'Bookmark', 1715100000000, 0, 1715100000000, 'The future of open-source AI', 'Discussion about why open-weight models are becoming the default choice for enterprise adoption.', 1715100000001, 1715100000001, 0, 'bookmark'),
    ('aaaa-0002-test-bookmark-02', '<PODCAST_UUID>', '<EPISODE_UUID>', 340, 1715100000000, 'Bookmark', 1715100000000, 0, 1715100000000, 'Latency vs throughput tradeoff', 'Why optimizing for low latency often means sacrificing batch throughput, and when that tradeoff makes sense.', 1715100000001, 1715100000001, 0,  
  'bookmark'),                                                                                                                                                                                                                                                                                                              
    ('aaaa-0003-test-bookmark-03', '<PODCAST_UUID>', '<EPISODE_UUID>', 600, 1715100000000, 'Bookmark', 1715100000000, 0, 1715100000000, NULL, NULL, NULL, NULL, 0, 'bookmark');  

don't forget to overwrite the placeholders <PODCAST_UUID> and <EPISODE_UUID> with actual values from the previous query!

Then just navigate to the bookmarks list to see the results

Screenshots or Screencast

Screenshot_20260508_143348

Checklist

  • If this is a user-facing change, I have added an entry in CHANGELOG.md
  • Ensure the linter passes (./gradlew spotlessApply to automatically apply formatting/linting)
  • I have considered whether it makes sense to add tests for my changes
  • All strings that need to be localized are in modules/services/localization/src/main/res/values/strings.xml
  • Any jetpack compose components I added or changed are covered by compose previews
  • I have updated (or requested that someone edit) the spreadsheet to reflect any new or changed analytics.

Copilot AI review requested due to automatic review settings May 8, 2026 12:35
@sztomek sztomek requested a review from a team as a code owner May 8, 2026 12:36
@sztomek sztomek requested review from MiSikora and removed request for a team May 8, 2026 12:36
@sztomek sztomek added [Type] Feature Adding a new feature. [Area] Bookmarks labels May 8, 2026
@dangermattic
Copy link
Copy Markdown
Collaborator

1 Warning
⚠️ PR is not assigned to a milestone.

Generated by 🚫 Danger

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR completes the Android-side wiring for Smart Bookmarks by triggering an enrichment request after creating a bookmark (when the feature flag is enabled) and surfacing AI-generated titles/summaries in the bookmarks list UI.

Changes:

  • Trigger bookmark enrichment after new bookmark creation when Feature.SMART_BOOKMARKS is enabled.
  • Add Bookmark.displayTitle to choose between user title and AI title for display.
  • Update the bookmark row UI to show displayTitle and an optional AI summary line.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
modules/services/repositories/src/main/java/au/com/shiftyjelly/pocketcasts/repositories/bookmark/BookmarkHelper.kt Triggers enrichment when adding a new bookmark via the helper (e.g., headphones/notification path).
modules/services/model/src/main/java/au/com/shiftyjelly/pocketcasts/models/entity/Bookmark.kt Introduces displayTitle computed property to select user vs AI title.
modules/services/compose/src/main/java/au/com/shiftyjelly/pocketcasts/compose/bookmark/BookmarkRow.kt Uses displayTitle and renders aiSummary as a secondary line when present.
modules/features/player/src/main/java/au/com/shiftyjelly/pocketcasts/player/view/bookmark/BookmarkViewModel.kt Triggers enrichment after saving a newly created bookmark from the player bookmark flow.

Copilot AI review requested due to automatic review settings May 8, 2026 15:01
@sztomek sztomek force-pushed the feat/smart-bookmarks-ui branch from 8958989 to 55703ec Compare May 8, 2026 15:01
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

@sztomek sztomek changed the title [RSM] Smart Bookmarks finish [RSM] Smart Bookmarks list UI May 8, 2026
@sztomek sztomek force-pushed the feat/smart-bookmarks-ui branch from 55703ec to 68a455d Compare May 11, 2026 19:36
@sztomek sztomek force-pushed the feat/smart-bookmarks-api branch from 3f769c9 to 9e9da4a Compare May 11, 2026 19:43
@sztomek sztomek force-pushed the feat/smart-bookmarks-ui branch from 68a455d to b906b00 Compare May 11, 2026 19:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants