1package com.peachpasswords.vault23import kotlinx.serialization.Serializable45@Serializable6data class VaultSettings(7 val accentColor: String = "peach",8 val breachMonitoring: Boolean = true,9 val autoLockMinutes: Int? = null,10 val reduceMotion: Boolean = false,11 12 val textSize: String = "medium",13 14 val uiScale: String = "auto",15 16 val faviconsEnabled: Boolean = false,17 18 val faviconConsentVersion: Int = 0,19 val biometricsEnabled: Boolean = false,20 val trashRetentionDays: Int? = null,21 val sortOrder: String = "url-first",22 23 val hideAutofillPreviews: Boolean = false,24 25 26 27 28 val passkeyProviderEnabled: Boolean = true,29 val duressConfigured: Boolean = false,30 val shortcuts: Map<String, ShortcutBinding> = emptyMap(),31 val allowScreenshots: Boolean = false,32)3334internal const val CURRENT_FAVICON_CONSENT_VERSION = 1353637fun faviconsAllowed(settings: VaultSettings): Boolean =38 settings.faviconsEnabled && settings.faviconConsentVersion >= CURRENT_FAVICON_CONSENT_VERSION394041fun grantCurrentFaviconConsent(settings: VaultSettings): VaultSettings = settings.copy(42 faviconsEnabled = true,43 faviconConsentVersion = CURRENT_FAVICON_CONSENT_VERSION,44)4546@Serializable47data class ShortcutBinding(48 val key: String,49 val ctrl: Boolean = false,50 val meta: Boolean = false,51 val shift: Boolean = false,52 val alt: Boolean = false,53)