Skip to content

feat: add custom theme accent controls (R554) - #567

Merged
ryacub merged 1 commit into
mainfrom
codex/r554-custom-theme-controls
Mar 19, 2026
Merged

feat: add custom theme accent controls (R554)#567
ryacub merged 1 commit into
mainfrom
codex/r554-custom-theme-controls

Conversation

@ryacub

@ryacub ryacub commented Mar 19, 2026

Copy link
Copy Markdown
Owner

Ticket

Objective

  • Add custom theme accent controls (swatches + picker) for AppTheme.CUSTOM with safe persistence, clear reset behavior, and immediate theme refresh.

Scope

  • Make AppTheme.CUSTOM visible/selectable in appearance theme options.
  • Add custom accent controls shown only when custom theme is selected:
    • curated swatches
    • custom color picker dialog
    • reset accent action
  • Persist accent via customThemeAccentSeed with opaque-alpha normalization.
  • Ensure picker apply/cancel semantics and session handling avoid stale canceled state on reopen.
  • Add test coverage for theme visibility, normalization, picker semantics, reset, flow persistence, and integration-style Android UI flow.

Non-goals

  • No third-party color picker dependency.
  • No docs/migration scope expansion beyond PR notes.

Files Changed

  • app/src/main/java/eu/kanade/domain/ui/model/AppTheme.kt
  • app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt
  • app/src/main/java/eu/kanade/presentation/more/settings/widget/AppThemePreferenceWidget.kt
  • app/src/main/java/eu/kanade/presentation/more/settings/widget/CustomThemeAccentPreferenceWidget.kt
  • i18n/src/commonMain/moko-resources/base/strings.xml
  • app/src/test/java/eu/kanade/domain/ui/UiPreferencesTest.kt
  • app/src/test/java/eu/kanade/presentation/more/settings/widget/AppThemePreferenceWidgetTest.kt
  • app/src/test/java/eu/kanade/presentation/more/settings/widget/CustomThemeAccentPreferenceWidgetTest.kt
  • app/src/test/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreenThemeFlowTest.kt
  • app/src/androidTest/java/eu/kanade/presentation/more/settings/widget/CustomThemeAccentPreferenceWidgetAndroidTest.kt
  • app/src/androidTest/java/eu/kanade/presentation/more/settings/widget/ThemeAppearanceFlowAndroidTest.kt
  • app/build.gradle.kts

Verification

  • Commands run:
    • ./gradlew spotlessCheck
    • ./gradlew :app:compileDebugKotlin
    • ./gradlew :app:testDebugUnitTest --tests "eu.kanade.presentation.more.settings.widget.AppThemePreferenceWidgetTest" --tests "eu.kanade.presentation.more.settings.widget.CustomThemeAccentPreferenceWidgetTest" --tests "eu.kanade.domain.ui.UiPreferencesTest" --tests "eu.kanade.presentation.more.settings.screen.SettingsAppearanceScreenThemeFlowTest"
    • ./gradlew :app:compileDebugAndroidTestKotlin
  • Results:
    • All listed commands pass locally.
  • Not tested:
    • Instrumentation execution on emulator/device (connectedDebugAndroidTest) was not run in this environment.

Risk

  • Primary risk is UI behavior drift in appearance settings; mitigated by unit tests + Android test coverage for theme section flow and picker semantics.

SLO Impact

  • No expected runtime SLO impact.

Rollback

  • Revert commit df549a05e to restore previous appearance-settings behavior and remove custom accent controls.

Release Notes

  • Added custom theme accent controls in Appearance settings with swatches, a custom color picker, and reset behavior.

Checklist

  • Naming conventions followed (use "Rayniyomi" in user-facing text, see naming conventions)
  • Branch rebased on latest main and verification re-run (see rebase policy)
  • New coroutine scopes have documented owner and cancellation path
  • No new runBlocking on UI/main thread paths

Definition of Done (DoD)

  • Acceptance criteria met and non-goals respected
  • Verification matrix completed (Risk Tier: T2)
  • Self-review completed
  • Rebased on latest main and revalidated (mandatory for merge)
  • Sprint board updated (branch, commit, checks, PR link)
  • Release notes drafted (if applicable)

@ryacub
ryacub enabled auto-merge (squash) March 19, 2026 11:34
@ryacub
ryacub merged commit 8be8673 into main Mar 19, 2026
6 checks passed
ryacub pushed a commit that referenced this pull request Mar 19, 2026
Version bump type: fork build
Auto-generated after merging PR #567: feat: add custom theme accent controls (R554)
@ryacub
ryacub deleted the codex/r554-custom-theme-controls branch March 21, 2026 10:04
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.

R554: settings UX — add custom theme controls (accent picker + reset)

1 participant