diff --git a/src/main/kotlin/org/briarproject/briar/desktop/DesktopModule.kt b/src/main/kotlin/org/briarproject/briar/desktop/DesktopModule.kt index b92286f58558e975a63d312bc67621fabf0faa44..72d42d0b39138bd8495806e66b64d8e370e0429e 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/DesktopModule.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/DesktopModule.kt @@ -52,8 +52,8 @@ import org.briarproject.bramble.util.OsUtils.isMac import org.briarproject.briar.attachment.AttachmentModule import org.briarproject.briar.desktop.attachment.media.ImageCompressor import org.briarproject.briar.desktop.attachment.media.ImageCompressorImpl -import org.briarproject.briar.desktop.settings.Settings -import org.briarproject.briar.desktop.settings.SettingsImpl +import org.briarproject.briar.desktop.settings.UnencryptedSettings +import org.briarproject.briar.desktop.settings.UnencryptedSettingsImpl import org.briarproject.briar.desktop.threading.BriarExecutors import org.briarproject.briar.desktop.threading.BriarExecutorsImpl import org.briarproject.briar.desktop.threading.UiExecutor @@ -104,7 +104,7 @@ internal class DesktopModule( @Provides @Singleton - fun provideSettings(settings: SettingsImpl): Settings = settings + fun provideUnencryptedSettings(settings: UnencryptedSettingsImpl): UnencryptedSettings = settings @Provides @Singleton diff --git a/src/main/kotlin/org/briarproject/briar/desktop/settings/SettingDetails.kt b/src/main/kotlin/org/briarproject/briar/desktop/settings/SettingDetails.kt index 7c2a17b4b99053f1a2b54122d19c456b16b86fd4..54476afd6baed37e011331227497f11b79539c0a 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/settings/SettingDetails.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/settings/SettingDetails.kt @@ -37,7 +37,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import org.briarproject.briar.desktop.ui.Constants.HEADER_SIZE -import org.briarproject.briar.desktop.utils.InternationalizationUtils import org.briarproject.briar.desktop.utils.InternationalizationUtils.i18n @Composable @@ -66,8 +65,8 @@ fun SettingDetails(viewModel: SettingsViewModel) { OutlinedExposedDropDownMenu( values = viewModel.languageList.map { - if (it == Settings.Language.DEFAULT) i18n("settings.display.language.auto") - else it.locale.getDisplayLanguage(InternationalizationUtils.locale) + if (it == UnencryptedSettings.Language.DEFAULT) i18n("settings.display.language.auto") + else it.locale.getDisplayLanguage(it.locale) }, selectedIndex = viewModel.selectedLanguage.value.ordinal, onChange = { viewModel.selectLanguage(viewModel.languageList[it]) }, diff --git a/src/main/kotlin/org/briarproject/briar/desktop/settings/SettingsViewModel.kt b/src/main/kotlin/org/briarproject/briar/desktop/settings/SettingsViewModel.kt index 3a531313dd2e02465a20a27103549dfd383420fd..71b5351db1212e7e83d68ddb71fca71f91975808 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/settings/SettingsViewModel.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/settings/SettingsViewModel.kt @@ -35,31 +35,31 @@ enum class SettingCategory { class SettingsViewModel @Inject constructor( - private val settings: Settings, + private val unencryptedSettings: UnencryptedSettings, ) : ViewModel { private val _selectedSetting = mutableStateOf(SettingCategory.DISPLAY) val selectedSetting = _selectedSetting.asState() - val themesList = Settings.Theme.values() - val languageList = Settings.Language.values() + val themesList = UnencryptedSettings.Theme.values() + val languageList = UnencryptedSettings.Language.values() - private val _selectedTheme = mutableStateOf(settings.theme) + private val _selectedTheme = mutableStateOf(unencryptedSettings.theme) val selectedTheme = _selectedTheme.asState() - private val _selectedLanguage = mutableStateOf(settings.language) + private val _selectedLanguage = mutableStateOf(unencryptedSettings.language) val selectedLanguage = _selectedLanguage.asState() fun selectSetting(selectedOption: SettingCategory) { _selectedSetting.value = selectedOption } - fun selectTheme(theme: Settings.Theme) { - settings.theme = theme + fun selectTheme(theme: UnencryptedSettings.Theme) { + unencryptedSettings.theme = theme _selectedTheme.value = theme } - fun selectLanguage(language: Settings.Language) { - settings.language = language + fun selectLanguage(language: UnencryptedSettings.Language) { + unencryptedSettings.language = language _selectedLanguage.value = language } } diff --git a/src/main/kotlin/org/briarproject/briar/desktop/settings/Settings.kt b/src/main/kotlin/org/briarproject/briar/desktop/settings/UnencryptedSettings.kt similarity index 97% rename from src/main/kotlin/org/briarproject/briar/desktop/settings/Settings.kt rename to src/main/kotlin/org/briarproject/briar/desktop/settings/UnencryptedSettings.kt index 6efb19aa18296847b5ceb23bbcd864cb533c4180..8c78db28aebcee4fa2d173df6d4724790149de46 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/settings/Settings.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/settings/UnencryptedSettings.kt @@ -21,7 +21,7 @@ package org.briarproject.briar.desktop.settings import org.briarproject.briar.desktop.viewmodel.SingleStateEvent import java.util.Locale -interface Settings { +interface UnencryptedSettings { enum class Theme { AUTO, LIGHT, DARK } diff --git a/src/main/kotlin/org/briarproject/briar/desktop/settings/SettingsImpl.kt b/src/main/kotlin/org/briarproject/briar/desktop/settings/UnencryptedSettingsImpl.kt similarity index 83% rename from src/main/kotlin/org/briarproject/briar/desktop/settings/SettingsImpl.kt rename to src/main/kotlin/org/briarproject/briar/desktop/settings/UnencryptedSettingsImpl.kt index 6fea77da7fd67173c6383644153685f4643ef7fc..255458ce57445e5891a387ae1d5567f9e279895e 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/settings/SettingsImpl.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/settings/UnencryptedSettingsImpl.kt @@ -18,10 +18,10 @@ package org.briarproject.briar.desktop.settings -import org.briarproject.briar.desktop.settings.Settings.Language -import org.briarproject.briar.desktop.settings.Settings.Language.DEFAULT -import org.briarproject.briar.desktop.settings.Settings.Theme -import org.briarproject.briar.desktop.settings.Settings.Theme.AUTO +import org.briarproject.briar.desktop.settings.UnencryptedSettings.Language +import org.briarproject.briar.desktop.settings.UnencryptedSettings.Language.DEFAULT +import org.briarproject.briar.desktop.settings.UnencryptedSettings.Theme +import org.briarproject.briar.desktop.settings.UnencryptedSettings.Theme.AUTO import org.briarproject.briar.desktop.utils.InternationalizationUtils import org.briarproject.briar.desktop.viewmodel.SingleStateEvent import java.util.prefs.Preferences @@ -30,7 +30,7 @@ import javax.inject.Inject const val PREF_THEME = "theme" const val PREF_LANG = "language" -class SettingsImpl @Inject internal constructor() : Settings { +class UnencryptedSettingsImpl @Inject internal constructor() : UnencryptedSettings { // used for unencrypted settings, namely theme and language private val prefs = Preferences.userNodeForPackage(this::class.java) diff --git a/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarUi.kt b/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarUi.kt index 68640050ce0804795d06f4b123819e9883d07c6a..bcb341cd9f4d8fd77ea8a607185785bc3cca5c31 100644 --- a/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarUi.kt +++ b/src/main/kotlin/org/briarproject/briar/desktop/ui/BriarUi.kt @@ -46,10 +46,10 @@ import org.briarproject.briar.desktop.DesktopFeatureFlags import org.briarproject.briar.desktop.expiration.ExpirationBanner import org.briarproject.briar.desktop.login.ErrorScreen import org.briarproject.briar.desktop.login.StartupScreen -import org.briarproject.briar.desktop.settings.Settings -import org.briarproject.briar.desktop.settings.Settings.Theme.AUTO -import org.briarproject.briar.desktop.settings.Settings.Theme.DARK import org.briarproject.briar.desktop.settings.SettingsViewModel +import org.briarproject.briar.desktop.settings.UnencryptedSettings +import org.briarproject.briar.desktop.settings.UnencryptedSettings.Theme.AUTO +import org.briarproject.briar.desktop.settings.UnencryptedSettings.Theme.DARK import org.briarproject.briar.desktop.theme.BriarTheme import org.briarproject.briar.desktop.ui.Screen.EXPIRED import org.briarproject.briar.desktop.ui.Screen.MAIN @@ -89,7 +89,7 @@ constructor( private val lifecycleManager: LifecycleManager, private val eventBus: EventBus, private val viewModelProvider: ViewModelProvider, - private val settings: Settings, + private val unencryptedSettings: UnencryptedSettings, private val featureFlags: FeatureFlags, private val desktopFeatureFlags: DesktopFeatureFlags, ) : BriarUi, EventListener { @@ -137,15 +137,15 @@ constructor( LocalLocalization provides platformLocalization, ) { // invalidate whole application window in case the theme or language setting is changed - settings.invalidateScreen.react { + unencryptedSettings.invalidateScreen.react { window.title = i18n("main.title") return@CompositionLocalProvider } var showAbout by remember { mutableStateOf(false) } val settingsViewModel: SettingsViewModel = viewModel() - val isDarkTheme = settings.theme == DARK || - (settings.theme == AUTO && isSystemInDarkTheme()) + val isDarkTheme = unencryptedSettings.theme == DARK || + (unencryptedSettings.theme == AUTO && isSystemInDarkTheme()) BriarTheme(isDarkTheme) { Column(Modifier.fillMaxSize()) { ExpirationBanner { screenState = EXPIRED; stop() } diff --git a/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt b/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt index 4ff59a88ccdddddb3dc3ad82cbb905ff9781547f..223ce8baaa7326f71ecd26e84a1005751dea792c 100644 --- a/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt +++ b/src/test/kotlin/org/briarproject/briar/desktop/DesktopTestModule.kt @@ -52,8 +52,8 @@ import org.briarproject.briar.api.test.TestAvatarCreator import org.briarproject.briar.attachment.AttachmentModule import org.briarproject.briar.desktop.attachment.media.ImageCompressor import org.briarproject.briar.desktop.attachment.media.ImageCompressorImpl -import org.briarproject.briar.desktop.settings.Settings -import org.briarproject.briar.desktop.settings.SettingsImpl +import org.briarproject.briar.desktop.settings.UnencryptedSettings +import org.briarproject.briar.desktop.settings.UnencryptedSettingsImpl import org.briarproject.briar.desktop.testdata.DeterministicTestDataCreator import org.briarproject.briar.desktop.testdata.DeterministicTestDataCreatorImpl import org.briarproject.briar.desktop.testdata.TestAvatarCreatorImpl @@ -109,7 +109,7 @@ internal class DesktopTestModule( @Provides @Singleton - fun provideSettings(settings: SettingsImpl): Settings = settings + fun provideUnencryptedSettings(settings: UnencryptedSettingsImpl): UnencryptedSettings = settings @Provides @Singleton