Skip to content

feat(settings): apply current character theme to all character cards - #1156

Open
3316891527 wants to merge 1 commit into
AAswordman:devfrom
3316891527:feat/theme-apply-to-all-character-cards
Open

feat(settings): apply current character theme to all character cards#1156
3316891527 wants to merge 1 commit into
AAswordman:devfrom
3316891527:feat/theme-apply-to-all-character-cards

Conversation

@3316891527

Copy link
Copy Markdown
Contributor

变更说明 / Description

Fixes #1154

Theme settings are stored per character card in DataStore (character_card_theme_<id>_). Editing many cards one by one is the current workflow. This change adds a confirmation action on the theme editor that copies the currently selected character card theme onto every other character card.

The write path reuses the existing visual theme snapshot (writeVisualThemeValues). Background, fonts, and user avatars are included because they already belong to that snapshot. Character-card identity keys (custom_ai_avatar_uri, custom_chat_title) stay on each card. Global display preferences are unchanged. Group themes are out of scope; the action is only shown when the editor target is a character card.

No SQLite schema change and no DataStore migration are required. Existing per-card prefixes are overwritten in place.

实现 / Implementation

  • UserPreferencesManager.applyVisualThemeToCharacterCards() writes the current visual snapshot to every listed character-card prefix in one DataStore edit.
  • ActivePromptManager.applyVisualThemeToAllCharacterCards() collects all character card IDs (including the default card) and runs that write under the existing theme transition lock.
  • Theme editor footer adds “Apply to all character cards”, with a confirmation dialog. Confirming first saves the current draft, then broadcasts it.
  • Localized confirmation copy: the current option overwrites every character card and cannot be undone.

验证 / Verification

Fork CI is triggered on feat/theme-apply-to-all-character-cards before this PR (android-tests.yml, android-build.yml). Tests are not a merge gate if they fail on the known upstream JVM compile errors.

Add a confirmation action on the theme editor that copies the selected
character card visual theme onto every other character card. Background,
fonts, and user avatars are included because they already belong to the
theme snapshot. Character-card identity keys stay on each card.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant