115 lines
5.3 KiB
Kotlin
115 lines
5.3 KiB
Kotlin
package com.keylesspalace.tusky.settings
|
|
|
|
enum class AppTheme(val value: String) {
|
|
NIGHT("night"),
|
|
DAY("day"),
|
|
BLACK("black"),
|
|
AUTO("auto"),
|
|
AUTO_SYSTEM("auto_system"),
|
|
AUTO_SYSTEM_BLACK("auto_system_black");
|
|
|
|
companion object {
|
|
fun stringValues() = values().map { it.value }.toTypedArray()
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Current preferences schema version. Format is 4-digit year + 2 digit month (zero padded) + 2
|
|
* digit day (zero padded) + 2 digit counter (zero padded).
|
|
*
|
|
* If you make an incompatible change to the preferences schema you must:
|
|
*
|
|
* - Update this value
|
|
* - Update the code in
|
|
* [TuskyApplication.upgradeSharedPreferences][com.keylesspalace.tusky.TuskyApplication.upgradeSharedPreferences]
|
|
* to migrate from the old schema version to the new schema version.
|
|
*
|
|
* An incompatible change is:
|
|
*
|
|
* - Deleting a preference. The migration should delete the old preference.
|
|
* - Changing a preference's default value (e.g., from true to false, or from one enum value to
|
|
* another). The migration should check to see if the user had set an explicit value for
|
|
* that preference ([SharedPreferences.contains][android.content.SharedPreferences.contains]);
|
|
* if they hadn't then the migration should set the *old* default value as the preference's
|
|
* value, so the app behaviour does not unexpectedly change.
|
|
* - Changing a preference's type (e.g,. from a boolean to an enum). If you do this you may want
|
|
* to give the preference a different name, but you still need to migrate the user's previous
|
|
* preference value to the new preference.
|
|
* - Renaming a preference key. The migration should copy the user's previous value for the
|
|
* preference under the old key to the value for the new, and delete the old preference.
|
|
*
|
|
* A compatible change is:
|
|
*
|
|
* - Adding a new preference that does not change the interpretation of an existing preference
|
|
*/
|
|
const val SCHEMA_VERSION = 2023082301
|
|
|
|
/** The schema version for fresh installs */
|
|
const val NEW_INSTALL_SCHEMA_VERSION = 0
|
|
|
|
object PrefKeys {
|
|
// Note: not all of these keys are actually used as SharedPreferences keys but we must give
|
|
// each preference a key for it to work.
|
|
|
|
const val SCHEMA_VERSION: String = "schema_version"
|
|
const val APP_THEME = "appTheme"
|
|
const val FAB_HIDE = "fabHide"
|
|
const val LANGUAGE = "language"
|
|
const val STATUS_TEXT_SIZE = "statusTextSize"
|
|
const val READING_ORDER = "readingOrder"
|
|
const val MAIN_NAV_POSITION = "mainNavPosition"
|
|
const val HIDE_TOP_TOOLBAR = "hideTopToolbar"
|
|
const val ABSOLUTE_TIME_VIEW = "absoluteTimeView"
|
|
const val SHOW_BOT_OVERLAY = "showBotOverlay"
|
|
const val ANIMATE_GIF_AVATARS = "animateGifAvatars"
|
|
const val USE_BLURHASH = "useBlurhash"
|
|
const val SHOW_SELF_USERNAME = "showSelfUsername"
|
|
const val SHOW_CARDS_IN_TIMELINES = "showCardsInTimelines"
|
|
const val CONFIRM_REBLOGS = "confirmReblogs"
|
|
const val CONFIRM_FAVOURITES = "confirmFavourites"
|
|
const val ENABLE_SWIPE_FOR_TABS = "enableSwipeForTabs"
|
|
const val ANIMATE_CUSTOM_EMOJIS = "animateCustomEmojis"
|
|
const val SHOW_STATS_INLINE = "showStatsInline"
|
|
|
|
const val CUSTOM_TABS = "customTabs"
|
|
const val WELLBEING_LIMITED_NOTIFICATIONS = "wellbeingModeLimitedNotifications"
|
|
const val WELLBEING_HIDE_STATS_POSTS = "wellbeingHideStatsPosts"
|
|
const val WELLBEING_HIDE_STATS_PROFILE = "wellbeingHideStatsProfile"
|
|
|
|
const val HTTP_PROXY_ENABLED = "httpProxyEnabled"
|
|
const val HTTP_PROXY_SERVER = "httpProxyServer"
|
|
const val HTTP_PROXY_PORT = "httpProxyPort"
|
|
|
|
const val DEFAULT_POST_PRIVACY = "defaultPostPrivacy"
|
|
const val DEFAULT_POST_LANGUAGE = "defaultPostLanguage"
|
|
const val DEFAULT_MEDIA_SENSITIVITY = "defaultMediaSensitivity"
|
|
const val MEDIA_PREVIEW_ENABLED = "mediaPreviewEnabled"
|
|
const val ALWAYS_SHOW_SENSITIVE_MEDIA = "alwaysShowSensitiveMedia"
|
|
const val ALWAYS_OPEN_SPOILER = "alwaysOpenSpoiler"
|
|
|
|
const val NOTIFICATIONS_ENABLED = "notificationsEnabled"
|
|
const val NOTIFICATION_ALERT_LIGHT = "notificationAlertLight"
|
|
const val NOTIFICATION_ALERT_VIBRATE = "notificationAlertVibrate"
|
|
const val NOTIFICATION_ALERT_SOUND = "notificationAlertSound"
|
|
const val NOTIFICATION_FILTER_POLLS = "notificationFilterPolls"
|
|
const val NOTIFICATION_FILTER_FAVS = "notificationFilterFavourites"
|
|
const val NOTIFICATION_FILTER_REBLOGS = "notificationFilterReblogs"
|
|
const val NOTIFICATION_FILTER_FOLLOW_REQUESTS = "notificationFilterFollowRequests"
|
|
const val NOTIFICATIONS_FILTER_FOLLOWS = "notificationFilterFollows"
|
|
const val NOTIFICATION_FILTER_SUBSCRIPTIONS = "notificationFilterSubscriptions"
|
|
const val NOTIFICATION_FILTER_SIGN_UPS = "notificationFilterSignUps"
|
|
const val NOTIFICATION_FILTER_UPDATES = "notificationFilterUpdates"
|
|
const val NOTIFICATION_FILTER_REPORTS = "notificationFilterReports"
|
|
|
|
const val TAB_FILTER_HOME_REPLIES = "tabFilterHomeReplies_v2" // This was changed once to reset an unintentionally set default.
|
|
const val TAB_FILTER_HOME_BOOSTS = "tabFilterHomeBoosts"
|
|
|
|
/** UI text scaling factor, stored as float, 100 = 100% = no scaling */
|
|
const val UI_TEXT_SCALE_RATIO = "uiTextScaleRatio"
|
|
|
|
/** Keys that are no longer used (e.g., the preference has been removed */
|
|
object Deprecated {
|
|
const val SHOW_NOTIFICATIONS_FILTER = "showNotificationsFilter"
|
|
}
|
|
}
|