Skip to content

feat(settings): add in-app theme mode override (System/Light/Dark) - #1077

Open
darky wants to merge 7 commits into
torlando-tech:mainfrom
darky:dark-manual
Open

feat(settings): add in-app theme mode override (System/Light/Dark)#1077
darky wants to merge 7 commits into
torlando-tech:mainfrom
darky:dark-manual

Conversation

@darky

@darky darky commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

@greptile-apps

greptile-apps Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR adds a persisted System/Light/Dark appearance override and applies the effective mode across the main UI, theme editor, previews, incoming-call UI, and system bars.

  • Adds ThemeMode persistence and Settings UI controls.
  • Propagates the effective mode through application and incoming-call themes.
  • Keeps incoming-call controls available while loading the persisted preference.
  • Synchronizes theme-editor previews and status/navigation-bar icon appearance.
  • Adds repository, ViewModel, mode-resolution, and incoming-call tests.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
app/src/main/java/network/columba/app/IncomingCallActivity.kt Collects theme mode with an immediate System fallback and synchronizes incoming-call colors and system-bar icon appearance without delaying call controls.
app/src/main/java/network/columba/app/MainActivity.kt Resolves the effective app mode for the root theme and supplies it to both theme-editor destinations.
app/src/main/java/network/columba/app/ui/screens/ThemeEditorScreen.kt Initializes and resynchronizes the preview variant from the effective application mode.
app/src/main/java/network/columba/app/ui/theme/Theme.kt Synchronizes both status-bar and navigation-bar icon brightness with the active color scheme.
app/src/main/java/network/columba/app/repository/SettingsRepository.kt Adds typed DataStore persistence for the System/Light/Dark mode preference.
app/src/main/java/network/columba/app/viewmodel/SettingsViewModel.kt Incorporates persisted theme mode into settings state and exposes the update action.
app/src/main/java/network/columba/app/ui/screens/settings/cards/ThemeSelectionCard.kt Adds localized mode-selection chips and renders color previews using the effective mode.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
    UI[Theme mode chips] --> VM[SettingsViewModel]
    VM --> Repo[SettingsRepository]
    Repo --> DS[Preferences DataStore]
    DS --> State[ThemeMode Flow]
    State --> Main[MainActivity / ColumbaTheme]
    State --> Call[IncomingCallActivity]
    Main --> Editor[Theme editor and preview]
    Main --> Bars[Status and navigation bars]
    Call --> Bars
Loading

Reviews (7): Last reviewed commit: "fix(calls): render incoming controls imm..." | Re-trigger Greptile

Comment thread app/src/main/java/network/columba/app/MainActivity.kt
Comment thread app/src/main/java/network/columba/app/MainActivity.kt
Comment thread app/src/main/java/network/columba/app/IncomingCallActivity.kt
Comment thread app/src/main/java/network/columba/app/IncomingCallActivity.kt Outdated
Comment thread app/src/main/java/network/columba/app/ui/screens/ThemeEditorScreen.kt Outdated
@codecov

codecov Bot commented Aug 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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.

2 participants