<feed xmlns='http://www.w3.org/2005/Atom'>
<title>feedreader.git/app/src/main/java/org/terst/feedreader/data/ArticleSaving.kt, branch master</title>
<subtitle>FeeDreader — personal Android RSS reader
</subtitle>
<id>https://git.terst.org/feedreader.git/atom?h=master</id>
<link rel='self' href='https://git.terst.org/feedreader.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.terst.org/feedreader.git/'/>
<updated>2026-08-22T00:55:10+00:00</updated>
<entry>
<title>Extract shared saveArticleToStash helper (dedupe 5 copies)</title>
<updated>2026-08-22T00:55:10+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-08-22T00:55:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/feedreader.git/commit/?id=b3aa6845a7eaaade61eab71291a25b5ea2b79bd5'/>
<id>urn:sha1:b3aa6845a7eaaade61eab71291a25b5ea2b79bd5</id>
<content type='text'>
The build-a-StashClient-and-branch-on-the-result dance was
independently copy-pasted at 5 call sites (ShareReceiverActivity,
ReaderScreen x2, LinkReaderScreen x2). StashSaveOutcome carries the
exact snackbar text plus the artifact id, as a sealed class so a
caller that cares about the Saved/AlreadySaved distinction can still
pattern-match instead of parsing the message back apart.

Not yet adopted at any call site -- follow-up commits switch each one
over.
</content>
</entry>
<entry>
<title>Collapsible folders, long-press link menu, YouTube thumbnails, strip more Ars sequel chrome</title>
<updated>2026-07-24T03:28:31+00:00</updated>
<author>
<name>Peter Stone</name>
<email>thepeterstone@gmail.com</email>
</author>
<published>2026-07-24T03:28:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.terst.org/feedreader.git/commit/?id=72f76cc41ae406e00a4dd9d448e2b552f9a6baaa'/>
<id>urn:sha1:72f76cc41ae406e00a4dd9d448e2b552f9a6baaa</id>
<content type='text'>
- Feed list: folders now collapse (start collapsed, with a per-folder unread
  count so collapsing doesn't hide "is there anything new")
- Long-pressing a link inside an article shows an action menu (open in
  browser, share, save to Stash, save for later) instead of WebView's
  default text-selection popup -- confirmed live end to end, including the
  Stash/save-for-later paths creating a real standalone article
- New shared ensureStandaloneArticle() helper (data/ArticleSaving.kt),
  factored out of ShareReceiverActivity, now also used by the long-press menu
- YouTube iframe embeds become tap-to-open thumbnails (JS is off in the
  reader WebView, so the real player never worked anyway); tapping one goes
  straight to the YouTube app/browser instead of our own article-extraction
  pipeline
- Fixed back navigation through a chain of links-within-links: each hop was
  stacking a new backstack entry, so back stepped through the chain one link
  at a time instead of returning straight to the source article. Confirmed
  live: A -&gt; link -&gt; B -&gt; link -&gt; C, one back-press now goes straight to A
- Extended the &lt;header&gt; chrome-stripping from last round: also strip
  &lt;footer&gt;, an author bio card, and a "Most Read" trending-stories widget --
  confirmed live one of the latter showed up as a giant unrelated photo plus
  an empty numbered list (its lazy-loaded items never populate in this
  hidden, off-screen extraction WebView)

Co-Authored-By: Claude Sonnet 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL
</content>
</entry>
</feed>
