Skip to content

Commit

Permalink
Add theme toggle in settings
Browse files Browse the repository at this point in the history
  • Loading branch information
msasikanth committed Sep 18, 2024
1 parent 8d66b29 commit 9180b09
Show file tree
Hide file tree
Showing 8 changed files with 69 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ val DeTwineStrings =
settingsHeaderBehaviour = "Verhalten",
settingsHeaderFeedback = "Feedback und Fehlerberichte",
settingsHeaderOpml = "OPML",
settingsHeaderTheme = "Theme",
settingsBrowserTypeTitle = "Verwende den In-App-Browser",
settingsBrowserTypeSubtitle =
"Wenn diese Option deaktiviert ist, werden Links in Ihrem Standardbrowser geöffnet.",
Expand Down Expand Up @@ -82,6 +83,9 @@ val DeTwineStrings =
settingsShowReaderViewTitle = "Aktiviere Leseansicht",
settingsShowReaderViewSubtitle =
"Artikel werden in einer vereinfachten, leicht lesbaren Ansicht angezeigt.",
settingsThemeAuto = "Auto",
settingsThemeLight = "Light",
settingsThemeDark = "Dark",
feeds = "Feeds",
editFeeds = "Feeds bearbeiten",
comments = "Kommentare",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ val EnTwineStrings =
settingsHeaderBehaviour = "Behavior",
settingsHeaderFeedback = "Feedback & bug reports",
settingsHeaderOpml = "OPML",
settingsHeaderTheme = "Theme",
settingsBrowserTypeTitle = "Use in-app browser",
settingsBrowserTypeSubtitle = "When turned off, links will open in your default browser.",
settingsEnableBlurTitle = "Enable blur in homepage",
Expand All @@ -90,6 +91,9 @@ val EnTwineStrings =
settingsPostsDeletionPeriodOneYear = "1 year",
settingsShowReaderViewTitle = "Enable reader view",
settingsShowReaderViewSubtitle = "Articles will be shown in a simplified, easy-to-read view",
settingsThemeAuto = "Auto",
settingsThemeLight = "Light",
settingsThemeDark = "Dark",
feeds = "Feeds",
editFeeds = "Edit feeds",
comments = "Comments",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ val TrTwineStrings =
settingsHeaderBehaviour = "Davranış",
settingsHeaderFeedback = "Geri bildirim & Hata raporları",
settingsHeaderOpml = "OPML",
settingsHeaderTheme = "Theme",
settingsBrowserTypeTitle = "Uygulama içi tarayıcıyı kullan",
settingsBrowserTypeSubtitle =
"Kapatıldığında, bağlantılar varsayılan tarayıcınızda açılacaktır.",
Expand All @@ -78,6 +79,9 @@ val TrTwineStrings =
settingsShowReaderViewTitle = "Okuyucu görünümünü etkinleştir",
settingsShowReaderViewSubtitle =
"Gönderiler basitleştirilmiş, okunması kolay bir görünümde gösterilecek.",
settingsThemeAuto = "Auto",
settingsThemeLight = "Light",
settingsThemeDark = "Dark",
feeds = "İçerikler",
editFeeds = "İçerikleri düzenle",
comments = "Yorumlar",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ data class TwineStrings(
val settingsHeaderBehaviour: String,
val settingsHeaderOpml: String,
val settingsHeaderFeedback: String,
val settingsHeaderTheme: String,
val settingsBrowserTypeTitle: String,
val settingsBrowserTypeSubtitle: String,
val settingsEnableBlurTitle: String,
Expand All @@ -78,6 +79,9 @@ data class TwineStrings(
val settingsPostsDeletionPeriodOneYear: String,
val settingsShowReaderViewTitle: String,
val settingsShowReaderViewSubtitle: String,
val settingsThemeAuto: String,
val settingsThemeLight: String,
val settingsThemeDark: String,
val feeds: String,
val editFeeds: String,
val comments: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ val ZhTwineStrings =
settingsHeaderBehaviour = "行为",
settingsHeaderFeedback = "反馈与错误报告",
settingsHeaderOpml = "OPML",
settingsHeaderTheme = "Theme",
settingsBrowserTypeTitle = "使用内置浏览器",
settingsBrowserTypeSubtitle = "如果禁用,链接将在默认浏览器中打开。",
settingsEnableBlurTitle = "在主页启用模糊效果",
Expand All @@ -72,6 +73,9 @@ val ZhTwineStrings =
settingsPostsDeletionPeriodOneYear = "一年",
settingsShowReaderViewTitle = "启用阅读视图",
settingsShowReaderViewSubtitle = "文章将以简化、易读的视图显示",
settingsThemeAuto = "Auto",
settingsThemeLight = "Light",
settingsThemeDark = "Dark",
feeds = "订阅",
editFeeds = "编辑订阅",
comments = "评论",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package dev.sasikanth.rss.reader.settings

import dev.sasikanth.rss.reader.data.repository.AppThemeMode
import dev.sasikanth.rss.reader.data.repository.BrowserType
import dev.sasikanth.rss.reader.data.repository.Period

Expand All @@ -39,4 +40,6 @@ sealed interface SettingsEvent {
data object CancelOpmlImportOrExport : SettingsEvent

data class PostsDeletionPeriodChanged(val newPeriod: Period) : SettingsEvent

data class OnAppThemeModeChanged(val appThemeMode: AppThemeMode) : SettingsEvent
}
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,14 @@ class SettingsPresenter(
SettingsEvent.ExportOpmlClicked -> exportOpmlClicked()
SettingsEvent.CancelOpmlImportOrExport -> cancelOpmlImportOrExport()
is SettingsEvent.PostsDeletionPeriodChanged -> postsDeletionPeriodChanged(event.newPeriod)
is SettingsEvent.OnAppThemeModeChanged -> onAppThemeModeChanged(event.appThemeMode)
}
}

private fun onAppThemeModeChanged(appThemeMode: AppThemeMode) {
coroutineScope.launch { settingsRepository.updateAppTheme(appThemeMode) }
}

private fun toggleShowReaderView(value: Boolean) {
coroutineScope.launch { settingsRepository.toggleShowReaderView(value) }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ import dev.sasikanth.rss.reader.components.DropdownMenuItem
import dev.sasikanth.rss.reader.components.OutlinedButton
import dev.sasikanth.rss.reader.components.SubHeader
import dev.sasikanth.rss.reader.components.Switch
import dev.sasikanth.rss.reader.components.ToggleableButtonGroup
import dev.sasikanth.rss.reader.components.ToggleableButtonItem
import dev.sasikanth.rss.reader.components.image.AsyncImage
import dev.sasikanth.rss.reader.data.repository.AppThemeMode
import dev.sasikanth.rss.reader.data.repository.BrowserType
Expand Down Expand Up @@ -142,6 +144,45 @@ internal fun SettingsScreen(
bottom = padding.calculateBottomPadding() + 80.dp
),
) {
item {
SubHeader(
text = LocalStrings.current.settingsHeaderTheme,
)
}

item {
val appThemeMode = state.appThemeMode
ToggleableButtonGroup(
modifier =
Modifier.fillMaxWidth().padding(horizontal = 24.dp).padding(bottom = 24.dp),
items =
listOf(
ToggleableButtonItem(
label = LocalStrings.current.settingsThemeAuto,
isSelected = appThemeMode == AppThemeMode.Auto,
identifier = AppThemeMode.Auto,
),
ToggleableButtonItem(
label = LocalStrings.current.settingsThemeLight,
isSelected = appThemeMode == AppThemeMode.Light,
identifier = AppThemeMode.Light
),
ToggleableButtonItem(
label = LocalStrings.current.settingsThemeDark,
isSelected = appThemeMode == AppThemeMode.Dark,
identifier = AppThemeMode.Dark
)
),
onItemSelected = {
settingsPresenter.dispatch(
SettingsEvent.OnAppThemeModeChanged(it.identifier as AppThemeMode)
)
}
)
}

item { Divider() }

item {
SubHeader(
text = LocalStrings.current.settingsHeaderBehaviour,
Expand Down

0 comments on commit 9180b09

Please sign in to comment.