Repository navigation
Release 1.8.0 - #170
Merged
Merged
Release 1.8.0#170
Conversation
SessionManager now keeps every signed-in account as a JSON list in DataStore, while the existing single-account keys mirror the active one so current readers (auth interceptor, notification worker, FCM) are unchanged. Sessions from before this change are folded into the list. AccountSessionCoordinator owns sign-in, switching, and sign-out: it moves FCM registration between accounts, clears notification state, and wipes the Apollo cache so viewer-specific data doesn't leak. Signing out with other accounts stored promotes the next one. Settings gets a switcher button at the right of the profile header that opens a dropdown of the other accounts plus "Add Account". Account changes reset navigation and also clear saved bottom-tab back stacks, which restoreState would otherwise bring back with the previous account's data. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
List items are rendered as ParagraphStyle ranges, and Compose already breaks lines at every paragraph boundary. The "\n" the parser wrote between items was laid out as its own empty paragraph, so each item got a blank line under it. This showed up in PostCard, whose default preview uses this flat rendering path, and not in PostDetail, which renders lists as separate blocks. Drop the one separator newline at each paragraph end. Items are now contiguous, nested lists no longer gain a gap, and a list keeps one blank line before and after the surrounding paragraphs. HtmlListLayoutTest measures real line counts with native graphics, since the parsed text alone can't show this kind of bug. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Wrap HtmlContent in a SelectionContainer so post bodies are selectable everywhere they render: PostCard (including reply and quote previews), PostDetail, and article bodies, lists, headings, and code blocks. The text rendered outside HtmlContent gets the same treatment: translated text, post titles in PostCard and PostDetail, and the title and summary in ArticleCard. HtmlClickableText now claims long presses with a no-op handler. Without it, releasing a long press to select text also counted as a tap and opened the post or followed a link. HtmlContentSelectionTest covers the tap side: a long press doesn't open the post, while taps still open it, follow links, and reach the card behind a selectable title. Robolectric can't observe the selection itself, so that needs checking on a device. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The selection menu in notes and articles gets a "Share" item that shares the selected text, quoted, under the article's title in 『』 and followed by the post URL. Shares are sized to fit a single post on X (weighted 280, URLs as 23, CJK/Hangul/emoji as 2): a quote too long for that keeps its first and last words around "(...)", cutting by characters when the text has no spaces. Compose doesn't expose the selected text to menu items, so Share runs SelectionContainer's own Copy item with a capturing LocalClipboard in place. The selection reaches the share sheet without touching the system clipboard. The share button now shares the link directly: 『title』 and the URL for articles, the bare URL for notes. Reply cards in PostDetail get the button as well. The share-sheet intent that was copy-pasted across eight screens is now the single sharePlainText helper, and the HTML-to-text step of the two translate paths is the shared htmlToPlainText. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
📒 Files selected for processing (33)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
Summary
1.8.0 adds account switching, selectable post text and sharing of selected text. It also fixes extra spacing in bullet lists.
Account switcher (
5264ccc)SessionManagerstores every signed-in account. The old single-account keys still hold whichever account is active, so code that reads them is unchanged. An existing login joins the list automatically on update.AccountSessionCoordinatormoves FCM registration to the new account and clears notification state and the Apollo cache, so the previous account's data doesn't leak.restoreState.Bullet list spacing (
acb8e0b)ParagraphStyleboundary, so the separator\nthe parser added between items became an empty paragraph.HtmlListLayoutTestchecks real line counts with native graphics, because the parsed text alone can't show this bug.Selectable text (
ca49a97)Sharing (
41c66ae)『title』and the URL; notes share the bare URL.(...), cutting by characters when the text has no spaces.LocalClipboardin place. The system clipboard is never touched.sharePlainText.Version (
f97bac6)versionCode14,versionName1.8.0Test plan
./gradlew :app:testDebugUnitTest: 260 tests pass./gradlew :app:lintDebug: 0 errors🤖 Generated with Claude Code