diff --git a/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt b/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt index 3ea15b1a8..d9fa8863d 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt @@ -7,11 +7,13 @@ import androidx.compose.runtime.Immutable import com.google.gson.GsonBuilder import com.google.gson.reflect.TypeToken import com.vitorpamplona.amethyst.model.Account +import com.vitorpamplona.amethyst.model.ConnectivityType import com.vitorpamplona.amethyst.model.GLOBAL_FOLLOWS import com.vitorpamplona.amethyst.model.KIND3_FOLLOWS import com.vitorpamplona.amethyst.model.RelaySetupInfo import com.vitorpamplona.amethyst.model.Settings import com.vitorpamplona.amethyst.model.hexToByteArray +import com.vitorpamplona.amethyst.model.parseConnectivityType import com.vitorpamplona.amethyst.service.HttpClient import com.vitorpamplona.amethyst.service.model.ContactListEvent import com.vitorpamplona.amethyst.service.model.Event @@ -245,21 +247,21 @@ object LocalPreferences { val globalPrefs = encryptedPreferences() globalPrefs.edit().apply { - if (account.settings.automaticallyShowImages == null) { + if (account.settings.automaticallyShowImages.prefCode == null) { remove(PrefKeys.AUTOMATICALLY_SHOW_IMAGES) } else { - putBoolean(PrefKeys.AUTOMATICALLY_SHOW_IMAGES, account.settings.automaticallyShowImages!!) + putBoolean(PrefKeys.AUTOMATICALLY_SHOW_IMAGES, account.settings.automaticallyShowImages.prefCode!!) } - if (account.settings.automaticallyStartPlayback == null) { + if (account.settings.automaticallyStartPlayback.prefCode == null) { remove(PrefKeys.AUTOMATICALLY_START_PLAYBACK) } else { - putBoolean(PrefKeys.AUTOMATICALLY_START_PLAYBACK, account.settings.automaticallyStartPlayback!!) + putBoolean(PrefKeys.AUTOMATICALLY_START_PLAYBACK, account.settings.automaticallyStartPlayback.prefCode!!) } - if (account.settings.automaticallyShowUrlPreview == null) { + if (account.settings.automaticallyShowUrlPreview.prefCode == null) { remove(PrefKeys.AUTOMATICALLY_LOAD_URL_PREVIEW) } else { - putBoolean(PrefKeys.AUTOMATICALLY_LOAD_URL_PREVIEW, account.settings.automaticallyShowUrlPreview!!) + putBoolean(PrefKeys.AUTOMATICALLY_LOAD_URL_PREVIEW, account.settings.automaticallyShowUrlPreview.prefCode!!) } putString(PrefKeys.PREFERRED_LANGUAGE, account.settings.preferredLanguage ?: "") }.apply() @@ -390,20 +392,20 @@ object LocalPreferences { val settings = Settings() encryptedPreferences().apply { settings.automaticallyShowImages = if (contains(PrefKeys.AUTOMATICALLY_SHOW_IMAGES)) { - getBoolean(PrefKeys.AUTOMATICALLY_SHOW_IMAGES, false) + parseConnectivityType(getBoolean(PrefKeys.AUTOMATICALLY_SHOW_IMAGES, false)) } else { - null + ConnectivityType.ALWAYS } settings.automaticallyStartPlayback = if (contains(PrefKeys.AUTOMATICALLY_START_PLAYBACK)) { - getBoolean(PrefKeys.AUTOMATICALLY_START_PLAYBACK, false) + parseConnectivityType(getBoolean(PrefKeys.AUTOMATICALLY_START_PLAYBACK, false)) } else { - null + ConnectivityType.ALWAYS } settings.automaticallyShowUrlPreview = if (contains(PrefKeys.AUTOMATICALLY_LOAD_URL_PREVIEW)) { - getBoolean(PrefKeys.AUTOMATICALLY_LOAD_URL_PREVIEW, false) + parseConnectivityType(getBoolean(PrefKeys.AUTOMATICALLY_LOAD_URL_PREVIEW, false)) } else { - null + ConnectivityType.ALWAYS } settings.preferredLanguage = getString(PrefKeys.PREFERRED_LANGUAGE, "") diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index 0fddac8ef..e566f64c1 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -111,7 +111,7 @@ class Account( var userProfileCache: User? = null fun updateAutomaticallyStartPlayback( - automaticallyStartPlayback: Boolean? + automaticallyStartPlayback: ConnectivityType ) { settings.automaticallyStartPlayback = automaticallyStartPlayback live.invalidateData() @@ -119,7 +119,7 @@ class Account( } fun updateAutomaticallyShowUrlPreview( - automaticallyShowUrlPreview: Boolean? + automaticallyShowUrlPreview: ConnectivityType ) { settings.automaticallyShowUrlPreview = automaticallyShowUrlPreview live.invalidateData() @@ -127,7 +127,7 @@ class Account( } fun updateAutomaticallyShowImages( - automaticallyShowImages: Boolean? + automaticallyShowImages: ConnectivityType ) { settings.automaticallyShowImages = automaticallyShowImages live.invalidateData() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Settings.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Settings.kt index f4fec29d6..a7cb7ce34 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Settings.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Settings.kt @@ -1,11 +1,40 @@ package com.vitorpamplona.amethyst.model import androidx.compose.runtime.Stable +import com.vitorpamplona.amethyst.R @Stable class Settings( - var automaticallyShowImages: Boolean? = null, - var automaticallyStartPlayback: Boolean? = null, var preferredLanguage: String? = null, - var automaticallyShowUrlPreview: Boolean? = null + var automaticallyShowImages: ConnectivityType = ConnectivityType.ALWAYS, + var automaticallyStartPlayback: ConnectivityType = ConnectivityType.ALWAYS, + var automaticallyShowUrlPreview: ConnectivityType = ConnectivityType.ALWAYS ) + +enum class ConnectivityType(val prefCode: Boolean?, val screenCode: Int, val reourceId: Int) { + ALWAYS(null, 0, R.string.connectivity_type_always), + WIFI_ONLY(true, 1, R.string.connectivity_type_wifi_only), + NEVER(false, 2, R.string.connectivity_type_never) +} + +fun parseConnectivityType(code: Boolean?): ConnectivityType { + return when (code) { + ConnectivityType.ALWAYS.prefCode -> ConnectivityType.ALWAYS + ConnectivityType.WIFI_ONLY.prefCode -> ConnectivityType.WIFI_ONLY + ConnectivityType.NEVER.prefCode -> ConnectivityType.NEVER + else -> { + ConnectivityType.ALWAYS + } + } +} + +fun parseConnectivityType(screenCode: Int): ConnectivityType { + return when (screenCode) { + ConnectivityType.ALWAYS.screenCode -> ConnectivityType.ALWAYS + ConnectivityType.WIFI_ONLY.screenCode -> ConnectivityType.WIFI_ONLY + ConnectivityType.NEVER.screenCode -> ConnectivityType.NEVER + else -> { + ConnectivityType.ALWAYS + } + } +} diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/connectivitystatus/ConnectivityStatus.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/connectivitystatus/ConnectivityStatus.kt index 77afc29b3..ee7151749 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/connectivitystatus/ConnectivityStatus.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/connectivitystatus/ConnectivityStatus.kt @@ -7,16 +7,9 @@ object ConnectivityStatus { private val onMobileData = mutableStateOf(false) val isOnMobileData: MutableState = onMobileData - private val onWifi = mutableStateOf(false) - val isOnWifi: MutableState = onWifi - fun updateConnectivityStatus(isOnMobileData: Boolean, isOnWifi: Boolean) { if (onMobileData.value != isOnMobileData) { onMobileData.value = isOnMobileData } - - if (onWifi.value != isOnWifi) { - onWifi.value = isOnWifi - } } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt index 987f1acf6..b374bf5c7 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt @@ -208,14 +208,13 @@ class MainActivity : AppCompatActivity() { super.onCapabilitiesChanged(network, networkCapabilities) GlobalScope.launch(Dispatchers.IO) { - val hasMobileData = - networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) + val hasMobileData = networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) val hasWifi = networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) Log.d("NETWORKCALLBACK", "onCapabilitiesChanged: hasMobileData $hasMobileData") Log.d("NETWORKCALLBACK", "onCapabilitiesChanged: hasWifi $hasWifi") ConnectivityStatus.updateConnectivityStatus( - networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR), - networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) + hasMobileData, + hasWifi ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt index 85b09ef1b..3e72d72de 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt @@ -8,6 +8,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue +import com.vitorpamplona.amethyst.model.ConnectivityType import com.vitorpamplona.amethyst.model.UrlCachedPreviewer import com.vitorpamplona.amethyst.service.connectivitystatus.ConnectivityStatus import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -16,13 +17,12 @@ import kotlinx.coroutines.launch @Composable fun UrlPreview(url: String, urlText: String, accountViewModel: AccountViewModel) { - val settings = accountViewModel.account.settings - val isMobile = ConnectivityStatus.isOnMobileData.value - - val automaticallyShowUrlPreview = when (settings.automaticallyShowUrlPreview) { - true -> !isMobile - false -> false - else -> true + val automaticallyShowUrlPreview = remember { + when (accountViewModel.account.settings.automaticallyShowUrlPreview) { + ConnectivityType.WIFI_ONLY -> !ConnectivityStatus.isOnMobileData.value + ConnectivityType.NEVER -> false + ConnectivityType.ALWAYS -> true + } } if (!automaticallyShowUrlPreview) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewCard.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewCard.kt index bc70185ec..48634245c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewCard.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewCard.kt @@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.material.MaterialTheme import androidx.compose.material.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.layout.ContentScale @@ -17,6 +18,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import coil.compose.AsyncImage import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.model.ConnectivityType import com.vitorpamplona.amethyst.service.connectivitystatus.ConnectivityStatus import com.vitorpamplona.amethyst.service.previews.UrlInfoItem import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -28,13 +30,12 @@ fun UrlPreviewCard( previewInfo: UrlInfoItem, accountViewModel: AccountViewModel ) { - val settings = accountViewModel.account.settings - val isMobile = ConnectivityStatus.isOnMobileData.value - - val automaticallyShowUrlPreview = when (settings.automaticallyShowUrlPreview) { - true -> !isMobile - false -> false - else -> true + val automaticallyShowUrlPreview = remember { + when (accountViewModel.account.settings.automaticallyShowUrlPreview) { + ConnectivityType.WIFI_ONLY -> !ConnectivityStatus.isOnMobileData.value + ConnectivityType.NEVER -> false + ConnectivityType.ALWAYS -> true + } } if (!automaticallyShowUrlPreview) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt index 028a4c89f..5bd52a24c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt @@ -55,6 +55,7 @@ import androidx.media3.ui.PlayerView import coil.imageLoader import coil.request.ImageRequest import com.vitorpamplona.amethyst.PlaybackClientController +import com.vitorpamplona.amethyst.model.ConnectivityType import com.vitorpamplona.amethyst.service.connectivitystatus.ConnectivityStatus import com.vitorpamplona.amethyst.ui.note.LyricsIcon import com.vitorpamplona.amethyst.ui.note.LyricsOffIcon @@ -173,16 +174,13 @@ fun VideoViewInner( accountViewModel: AccountViewModel, onDialog: ((Boolean) -> Unit)? = null ) { - val settings = accountViewModel.account.settings - val isMobile = ConnectivityStatus.isOnMobileData.value - val automaticallyStartPlayback = remember { mutableStateOf( if (alwaysShowVideo) { true } else { - when (settings.automaticallyStartPlayback) { - true -> !isMobile - false -> false - else -> true + when (accountViewModel.account.settings.automaticallyStartPlayback) { + ConnectivityType.WIFI_ONLY -> !ConnectivityStatus.isOnMobileData.value + ConnectivityType.NEVER -> false + ConnectivityType.ALWAYS -> true } } ) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt index 21e7651ee..57e1813b3 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt @@ -66,6 +66,7 @@ import coil.compose.AsyncImage import coil.compose.AsyncImagePainter import coil.imageLoader import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.model.ConnectivityType import com.vitorpamplona.amethyst.model.toHexKey import com.vitorpamplona.amethyst.service.BlurHashRequester import com.vitorpamplona.amethyst.service.connectivitystatus.ConnectivityStatus @@ -248,15 +249,13 @@ private fun LocalImageView( ) { if (content.localFile != null && content.localFile.exists()) { BoxWithConstraints(contentAlignment = Alignment.Center) { - val settings = accountViewModel?.account?.settings - val isMobile = ConnectivityStatus.isOnMobileData.value - val showImage = remember { mutableStateOf( if (alwayShowImage) { true } else { - when (settings?.automaticallyShowImages) { - true -> !isMobile - false -> false + when (accountViewModel?.account?.settings?.automaticallyShowImages) { + ConnectivityType.WIFI_ONLY -> !ConnectivityStatus.isOnMobileData.value + ConnectivityType.NEVER -> false + ConnectivityType.ALWAYS -> true else -> true } } @@ -318,15 +317,13 @@ private fun UrlImageView( alwayShowImage: Boolean = false ) { BoxWithConstraints(contentAlignment = Alignment.Center) { - val settings = accountViewModel?.account?.settings - val isMobile = ConnectivityStatus.isOnMobileData.value - val showImage = remember { mutableStateOf( if (alwayShowImage) { true } else { - when (settings?.automaticallyShowImages) { - true -> !isMobile - false -> false + when (accountViewModel?.account?.settings?.automaticallyShowImages) { + ConnectivityType.WIFI_ONLY -> !ConnectivityStatus.isOnMobileData.value + ConnectivityType.NEVER -> false + ConnectivityType.ALWAYS -> true else -> true } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ConnectivityType.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ConnectivityType.kt new file mode 100644 index 000000000..a41ebf3fc --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ConnectivityType.kt @@ -0,0 +1 @@ +package com.vitorpamplona.amethyst.ui.note diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt index bb0d4f6c0..ad6d0015e 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt @@ -77,6 +77,7 @@ import coil.request.SuccessResult import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.AddressableNote import com.vitorpamplona.amethyst.model.Channel +import com.vitorpamplona.amethyst.model.ConnectivityType import com.vitorpamplona.amethyst.model.LocalCache import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.model.User @@ -3484,14 +3485,14 @@ private fun LongFormHeader(noteEvent: LongTextNoteEvent, note: Note, accountView ) ) { Column { - val settings = accountViewModel.account.settings - val isMobile = ConnectivityStatus.isOnMobileData.value - - val automaticallyShowUrlPreview = when (settings.automaticallyShowUrlPreview) { - true -> !isMobile - false -> false - else -> true + val automaticallyShowUrlPreview = remember { + when (accountViewModel.account.settings.automaticallyShowUrlPreview) { + ConnectivityType.WIFI_ONLY -> !ConnectivityStatus.isOnMobileData.value + ConnectivityType.NEVER -> false + ConnectivityType.ALWAYS -> true + } } + if (automaticallyShowUrlPreview) { image?.let { AsyncImage( diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt index 806851e6e..0cbc665b1 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt @@ -13,6 +13,7 @@ import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.model.AccountState +import com.vitorpamplona.amethyst.model.ConnectivityType import com.vitorpamplona.amethyst.model.HexKey import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.model.User @@ -41,19 +42,19 @@ class AccountViewModel(val account: Account) : ViewModel() { val userRelays: LiveData = account.userProfile().live().relays.map { it } fun updateAutomaticallyStartPlayback( - automaticallyStartPlayback: Boolean? + automaticallyStartPlayback: ConnectivityType ) { account.updateAutomaticallyStartPlayback(automaticallyStartPlayback) } fun updateAutomaticallyShowUrlPreview( - automaticallyShowUrlPreview: Boolean? + automaticallyShowUrlPreview: ConnectivityType ) { account.updateAutomaticallyShowUrlPreview(automaticallyShowUrlPreview) } fun updateAutomaticallyShowImages( - automaticallyShowImages: Boolean? + automaticallyShowImages: ConnectivityType ) { account.updateAutomaticallyShowImages(automaticallyShowImages) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SettingsScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SettingsScreen.kt index 83d1ba2d9..c7108ae65 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SettingsScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SettingsScreen.kt @@ -35,6 +35,8 @@ import androidx.compose.ui.unit.sp import androidx.core.os.LocaleListCompat import com.vitorpamplona.amethyst.LocalPreferences import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.model.ConnectivityType +import com.vitorpamplona.amethyst.model.parseConnectivityType import com.vitorpamplona.amethyst.ui.screen.ThemeViewModel import com.vitorpamplona.amethyst.ui.theme.DoubleVertSpacer import com.vitorpamplona.amethyst.ui.theme.StdPadding @@ -102,22 +104,14 @@ fun SettingsScreen( ) { val scope = rememberCoroutineScope() val selectedItens = persistentListOf( - stringResource(R.string.always), - stringResource(R.string.wifi_only), - stringResource(R.string.never).replaceFirstChar { - it.uppercase() - } + stringResource(ConnectivityType.ALWAYS.reourceId), + stringResource(ConnectivityType.WIFI_ONLY.reourceId), + stringResource(ConnectivityType.NEVER.reourceId) ) val settings = accountViewModel.account.settings - val index = if (settings.automaticallyShowImages == null) { 0 } else { - if (settings.automaticallyShowImages == true) 1 else 2 - } - val videoIndex = if (settings.automaticallyStartPlayback == null) { 0 } else { - if (settings.automaticallyShowImages == true) 1 else 2 - } - val linkIndex = if (settings.automaticallyShowUrlPreview == null) { 0 } else { - if (settings.automaticallyShowUrlPreview == true) 1 else 2 - } + val index = settings.automaticallyShowImages.screenCode + val videoIndex = settings.automaticallyStartPlayback.screenCode + val linkIndex = settings.automaticallyShowUrlPreview.screenCode val themeItens = persistentListOf( stringResource(R.string.system), @@ -194,11 +188,7 @@ fun SettingsScreen( placeholder = selectedItens[index], options = selectedItens, onSelect = { - val automaticallyShowImages = when (it) { - 1 -> true - 2 -> false - else -> null - } + val automaticallyShowImages = parseConnectivityType(it) scope.launch(Dispatchers.IO) { accountViewModel.updateAutomaticallyShowImages(automaticallyShowImages) @@ -220,11 +210,7 @@ fun SettingsScreen( placeholder = selectedItens[videoIndex], options = selectedItens, onSelect = { - val automaticallyStartPlayback = when (it) { - 1 -> true - 2 -> false - else -> null - } + val automaticallyStartPlayback = parseConnectivityType(it) scope.launch(Dispatchers.IO) { accountViewModel.updateAutomaticallyStartPlayback(automaticallyStartPlayback) @@ -246,11 +232,7 @@ fun SettingsScreen( placeholder = selectedItens[linkIndex], options = selectedItens, onSelect = { - val automaticallyShowUrlPreview = when (it) { - 1 -> true - 2 -> false - else -> null - } + val automaticallyShowUrlPreview = parseConnectivityType(it) scope.launch(Dispatchers.IO) { accountViewModel.updateAutomaticallyShowUrlPreview(automaticallyShowUrlPreview) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 713f66aba..3799d2b5b 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -461,8 +461,8 @@ Citlivý obsah Před zobrazením tohoto obsahu přidá upozornění na citlivý obsah. Nastavení - Vždy - Pouze Wi-Fi + Vždy + Pouze Wi-Fi Systém Světlý Tmavý diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index dc4c14090..0b3d95b61 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -470,8 +470,8 @@ anz der Bedingungen ist erforderlich Sensibler Inhalt Fügt eine Warnung für sensiblen Inhalt hinzu, bevor dieser Inhalt angezeigt wird. Einstellungen - Immer - Nur WLAN + Immer + Nur WLAN System Hell Dunkel diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index a02231f6b..91c3e9368 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -455,8 +455,8 @@ Érzékeny tartalom Megjelenítés előtt egy érzékeny tartalom figyelmeztetés jelenik meg. Beállítások - Mindig - Csak WIFI + Mindig + Csak WIFI Rendszer Világos Sötét diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 25e8c2508..31bdc929b 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -460,8 +460,8 @@ センシティブなコンテンツ コンテンツを表示する前に、センシティブなコンテンツであることを示す警告を表示します 設定 - 常に - Wifiのみ + 常に + Wifiのみ システム ライト ダーク diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index c4b1fc69c..78b311507 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -415,8 +415,8 @@ Conteúdo sensível Adiciona aviso de conteúdo sensível antes de mostrar este conteúdo Configurações - Sempre - Somente wifi + Sempre + Somente wifi Sistema Claro Escuro diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index e36dec13a..1907a0559 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -458,8 +458,8 @@ Känsligt innehåll Lägger till varning för känsligt innehåll innan detta innehåll visas. Inställningar - Alltid - Endast Wi-Fi + Alltid + Endast Wi-Fi System Ljus Mörk diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8a8818a08..483700eaf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -482,8 +482,10 @@ Sensitive Content Adds sensitive content warning before showing this content Settings - Always - Wifi-only + Always + Wifi-only + Never + System Light Dark