ability to enable/disable pull to refresh

This commit is contained in:
2024-07-16 00:15:15 +03:00
parent 789283fcff
commit 46d3fe63fa
16 changed files with 155 additions and 104 deletions
@@ -85,4 +85,11 @@ object SettingsController {
var deviceId: String
get() = get("device_id", "")
set(value) = put("device_id", value)
var enablePullToRefresh: Boolean
get() = get(
SettingsKeys.KEY_ENABLE_PULL_TO_REFRESH,
SettingsKeys.DEFAULT_VALUE_ENABLE_PULL_TO_REFRESH
)
set(value) = put(SettingsKeys.KEY_ENABLE_PULL_TO_REFRESH, value)
}
@@ -9,6 +9,8 @@ object SettingsKeys {
const val KEY_GENERAL = "general"
const val KEY_USE_CONTACT_NAMES = "general_use_contact_names"
const val DEFAULT_VALUE_USE_CONTACT_NAMES = false
const val KEY_ENABLE_PULL_TO_REFRESH = "general_pull_to_refresh"
const val DEFAULT_VALUE_ENABLE_PULL_TO_REFRESH = false
const val KEY_SHOW_EMOJI_BUTTON = "general_show_emoji_button"
const val DEFAULT_VALUE_KEY_SHOW_EMOJI_BUTTON = false
@@ -17,6 +17,7 @@ interface UserSettings {
val debugSettingsEnabled: StateFlow<Boolean>
val useContactNames: StateFlow<Boolean>
val language: StateFlow<String>
val enablePullToRefresh: StateFlow<Boolean>
fun updateUsingDarkTheme()
fun useDarkThemeChanged(use: Boolean)
@@ -30,6 +31,7 @@ interface UserSettings {
fun enableDebugSettings(enable: Boolean)
fun onUseContactNamesChanged(use: Boolean)
fun onLanguageChanged(newLanguage: String)
fun onEnablePullToRefreshChanged(enable: Boolean)
}
class UserSettingsImpl(
@@ -44,7 +46,7 @@ class UserSettingsImpl(
selectedColorScheme = selectedColorScheme(),
usingAmoledBackground = isUsingAmoledBackground(),
usingBlur = isUsingBlur(),
multiline = isMultiline(),
isMultiline = isMultiline(),
isDeviceCompact = false
)
)
@@ -75,6 +77,8 @@ class UserSettingsImpl(
override val language = MutableStateFlow("")
override val enablePullToRefresh = MutableStateFlow(SettingsController.enablePullToRefresh)
override fun updateUsingDarkTheme() {
useDarkThemeChanged(
isUsingDarkMode(
@@ -105,7 +109,7 @@ class UserSettingsImpl(
}
override fun useMultiline(use: Boolean) {
theme.value = theme.value.copy(multiline = use)
theme.value = theme.value.copy(isMultiline = use)
}
override fun setLongPollStateToApply(newState: LongPollState) {
@@ -133,4 +137,8 @@ class UserSettingsImpl(
override fun onLanguageChanged(newLanguage: String) {
language.update { newLanguage }
}
override fun onEnablePullToRefreshChanged(enable: Boolean) {
enablePullToRefresh.update { enable }
}
}
@@ -6,6 +6,6 @@ data class ThemeConfig(
val selectedColorScheme: Int,
val usingAmoledBackground: Boolean,
val usingBlur: Boolean,
val multiline: Boolean,
val isMultiline: Boolean,
val isDeviceCompact: Boolean
)
@@ -111,7 +111,7 @@ val LocalTheme = compositionLocalOf {
selectedColorScheme = 0,
usingAmoledBackground = false,
usingBlur = false,
multiline = false,
isMultiline = false,
isDeviceCompact = false
)
}
+1
View File
@@ -262,4 +262,5 @@
<string name="warning_confirmation">Confirmation</string>
<string name="captcha_exit_warning">Are you sure? Captcha process will be cancelled</string>
<string name="validation_exit_warning">Are you sure? Validation process will be cancelled</string>
<string name="settings_general_enable_pull_to_refresh_title">Enable pull to refresh</string>
</resources>