IOS-82: Increase Contrast (#973)

This commit is contained in:
Marcus Kida 2023-03-16 09:05:41 +01:00 committed by GitHub
parent 3bf3efb1a8
commit bb15e16959
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
40 changed files with 54 additions and 217 deletions

View File

@ -726,7 +726,6 @@
},
"preference": {
"title": "Preferences",
"true_black_dark_mode": "True black dark mode",
"disable_avatar_animation": "Disable animated avatars",
"disable_emoji_animation": "Disable animated emojis",
"using_default_browser": "Use default browser to open links",

View File

@ -13,7 +13,6 @@ import MastodonLocalization
enum SettingsItem {
case appearance(record: ManagedObjectRecord<Setting>)
case appearancePreference(record: ManagedObjectRecord<Setting>, appearanceType: AppearanceType)
case preference(settingRecord: ManagedObjectRecord<Setting>, preferenceType: PreferenceType)
case notification(settingRecord: ManagedObjectRecord<Setting>, switchMode: NotificationSwitchMode)
case boringZone(item: Link)
@ -27,15 +26,7 @@ extension SettingsItem {
case dark
case light
}
enum AppearanceType: Hashable {
case preferredTrueDarkMode
var title: String {
return L10n.Scene.Settings.Section.Preference.trueBlackDarkMode
}
}
enum NotificationSwitchMode: CaseIterable, Hashable {
case favorite
case follow
@ -105,10 +96,6 @@ extension SettingsItem: Hashable {
case .appearance(let record):
hasher.combine(String(describing: SettingsItem.AppearanceMode.self))
hasher.combine(record)
case .appearancePreference(let record, let appearanceType):
hasher.combine(String(describing: SettingsItem.AppearanceType.self))
hasher.combine(record)
hasher.combine(appearanceType)
case .notification(let settingObjectID, let switchMode):
hasher.combine(String(describing: SettingsItem.notification.self))
hasher.combine(settingObjectID)

View File

@ -14,7 +14,6 @@ import MastodonLocalization
enum SettingsSection: Hashable {
case appearance
case appearancePreference
case preference
case notifications
case boringZone
@ -23,7 +22,6 @@ enum SettingsSection: Hashable {
var title: String {
switch self {
case .appearance: return L10n.Scene.Settings.Section.LookAndFeel.title
case .appearancePreference: return ""
case .preference: return ""
case .notifications: return L10n.Scene.Settings.Section.Notifications.title
case .boringZone: return L10n.Scene.Settings.Section.BoringZone.title
@ -44,34 +42,10 @@ extension SettingsSection {
weak settingsToggleCellDelegate
] tableView, indexPath, item -> UITableViewCell? in
switch item {
case .appearance(let record):
case .appearance:
let cell = tableView.dequeueReusableCell(withIdentifier: String(describing: SettingsAppearanceTableViewCell.self), for: indexPath) as! SettingsAppearanceTableViewCell
managedObjectContext.performAndWait {
guard let setting = record.object(in: managedObjectContext) else { return }
cell.configure(setting: setting)
}
cell.delegate = settingsAppearanceTableViewCellDelegate
return cell
case .appearancePreference(let record, _):
let cell = tableView.dequeueReusableCell(withIdentifier: String(describing: SettingsToggleTableViewCell.self), for: indexPath) as! SettingsToggleTableViewCell
cell.delegate = settingsToggleCellDelegate
managedObjectContext.performAndWait {
guard let setting = record.object(in: managedObjectContext) else { return }
SettingsSection.configureSettingToggle(cell: cell, item: item, setting: setting)
ManagedObjectObserver.observe(object: setting)
.receive(on: DispatchQueue.main)
.sink(receiveCompletion: { _ in
// do nothing
}, receiveValue: { [weak cell] change in
guard let cell = cell else { return }
guard case .update(let object) = change.changeType,
let setting = object as? Setting else { return }
SettingsSection.configureSettingToggle(cell: cell, item: item, setting: setting)
})
.store(in: &cell.disposeBag)
}
return cell
case .preference(let record, _):
let cell = tableView.dequeueReusableCell(withIdentifier: String(describing: SettingsToggleTableViewCell.self), for: indexPath) as! SettingsToggleTableViewCell
cell.delegate = settingsToggleCellDelegate
@ -131,14 +105,6 @@ extension SettingsSection {
setting: Setting
) {
switch item {
case .appearancePreference(_, let appearanceType):
cell.textLabel?.text = appearanceType.title
switch appearanceType {
case .preferredTrueDarkMode:
cell.switchButton.isOn = setting.preferredTrueBlackDarkMode
}
case .preference(_, let preferenceType):
cell.textLabel?.text = preferenceType.title

View File

@ -16,7 +16,7 @@ extension SettingsAppearanceTableViewCell {
// input
@Published public var customUserInterfaceStyle: UIUserInterfaceStyle = .unspecified
@Published public var preferredTrueBlackDarkMode = false
// output
@Published public var appearanceMode: SettingsItem.AppearanceMode = .system
@ -36,37 +36,24 @@ extension SettingsAppearanceTableViewCell {
extension SettingsAppearanceTableViewCell.ViewModel {
func bind(cell: SettingsAppearanceTableViewCell) {
Publishers.CombineLatest(
$customUserInterfaceStyle.removeDuplicates(),
$preferredTrueBlackDarkMode.removeDuplicates()
)
.debounce(for: 0.1, scheduler: DispatchQueue.main)
.receive(on: DispatchQueue.main)
.sink { customUserInterfaceStyle, preferredTrueBlackDarkMode in
cell.appearanceViews.forEach { view in
view.selected = false
$customUserInterfaceStyle.removeDuplicates()
.receive(on: DispatchQueue.main)
.sink { customUserInterfaceStyle in
cell.appearanceViews.forEach { view in
view.selected = false
}
switch customUserInterfaceStyle {
case .unspecified:
cell.systemAppearanceView.selected = true
case .dark:
cell.darkAppearanceView.selected = true
case .light:
cell.lightAppearanceView.selected = true
@unknown default:
assertionFailure()
}
}
switch customUserInterfaceStyle {
case .unspecified:
cell.systemAppearanceView.selected = true
case .dark:
cell.darkAppearanceView.selected = true
case .light:
cell.lightAppearanceView.selected = true
@unknown default:
assertionFailure()
}
}
.store(in: &disposeBag)
}
}
extension SettingsAppearanceTableViewCell {
func configure(setting: Setting) {
setting.publisher(for: \.preferredTrueBlackDarkMode)
.assign(to: \.preferredTrueBlackDarkMode, on: viewModel)
.store(in: &disposeBag)
}
}

View File

@ -23,11 +23,7 @@ class SettingsAppearanceTableViewCell: UITableViewCell {
weak var delegate: SettingsAppearanceTableViewCellDelegate?
public private(set) lazy var viewModel: ViewModel = {
let viewModel = ViewModel()
viewModel.bind(cell: self)
return viewModel
}()
public private(set) var viewModel = ViewModel()
lazy var stackView: UIStackView = {
let view = UIStackView()
@ -70,6 +66,7 @@ class SettingsAppearanceTableViewCell: UITableViewCell {
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
viewModel.bind(cell: self)
}
required init?(coder: NSCoder) {

View File

@ -315,8 +315,6 @@ extension SettingsViewController: UITableViewDelegate {
let header: SettingsSectionHeader
switch sectionIdentifier {
case .appearancePreference:
return UIView()
case .preference:
return UIView()
case .notifications:
@ -351,9 +349,6 @@ extension SettingsViewController: UITableViewDelegate {
case .appearance:
// do nothing
break
case .appearancePreference:
// do nothing
break
case .notification:
// do nothing
break
@ -489,18 +484,6 @@ extension SettingsViewController: SettingsToggleCellDelegate {
// do nothing
}
.store(in: &disposeBag)
case .appearancePreference(let record, let appearanceType):
switch appearanceType {
case .preferredTrueDarkMode:
Task {
let managedObjectContext = context.managedObjectContext
try await managedObjectContext.performChanges {
guard let setting = record.object(in: managedObjectContext) else { return }
setting.update(preferredTrueBlackDarkMode: isOn)
}
ThemeService.shared.set(themeName: isOn ? .system : .mastodon)
} // end Task
}
case .preference(let record, let preferenceType):
let managedObjectContext = context.backgroundManagedObjectContext
managedObjectContext.performChanges {

View File

@ -110,11 +110,7 @@ extension SettingsViewModel {
]
snapshot.appendSections([.appearance])
snapshot.appendItems(appearanceItems, toSection: .appearance)
// appearancePreference
snapshot.appendSections([.appearancePreference])
snapshot.appendItems([SettingsItem.appearancePreference(record: .init(objectID: setting.objectID), appearanceType: .preferredTrueDarkMode)], toSection: .appearancePreference)
// preference
snapshot.appendSections([.preference])
let preferenceItems: [SettingsItem] = SettingsItem.PreferenceType.allCases.map { preferenceType in

View File

@ -10,15 +10,14 @@ import MastodonExtension
public enum ThemeName: String, CaseIterable {
case system
case mastodon
}
extension UserDefaults {
@objc public dynamic var currentThemeNameRawValue: String {
get {
register(defaults: [#function: ThemeName.mastodon.rawValue])
return string(forKey: #function) ?? ThemeName.mastodon.rawValue
register(defaults: [#function: ThemeName.system.rawValue])
return string(forKey: #function) ?? ThemeName.system.rawValue
}
set { self[#function] = newValue }
}

View File

@ -194,7 +194,7 @@ extension SettingService {
static func updatePreference(setting: Setting) {
// set theme
let themeName: ThemeName = setting.preferredTrueBlackDarkMode ? .system : .mastodon
let themeName: ThemeName = .system
if UserDefaults.shared.currentThemeNameRawValue != themeName.rawValue {
ThemeService.shared.set(themeName: themeName)
os_log(.info, log: .debug, "%{public}s[%{public}ld], %{public}s: update theme style", ((#file as NSString).lastPathComponent), #line, #function)

View File

@ -1,46 +0,0 @@
//
// MastodonTheme.swift
// Mastodon
//
// Created by MainasuK Cirno on 2021-7-5.
//
import UIKit
import MastodonAsset
import MastodonCommon
struct MastodonTheme: Theme {
let themeName: ThemeName = .mastodon
let systemBackgroundColor = Asset.Theme.Mastodon.systemBackground.color
let secondarySystemBackgroundColor = Asset.Theme.Mastodon.secondarySystemBackground.color
let tertiarySystemBackgroundColor = Asset.Theme.Mastodon.tertiarySystemBackground.color
let systemElevatedBackgroundColor = Asset.Theme.Mastodon.systemElevatedBackground.color
let systemGroupedBackgroundColor = Asset.Theme.Mastodon.systemGroupedBackground.color
let secondarySystemGroupedBackgroundColor = Asset.Theme.Mastodon.secondaryGroupedSystemBackground.color
let tertiarySystemGroupedBackgroundColor = Asset.Theme.Mastodon.tertiarySystemGroupedBackground.color
let navigationBarBackgroundColor = Asset.Theme.Mastodon.navigationBarBackground.color
let sidebarBackgroundColor = Asset.Theme.Mastodon.sidebarBackground.color
let tabBarBackgroundColor = Asset.Theme.Mastodon.tabBarBackground.color
let tabBarItemSelectedIconColor = ThemeService.tintColor
let tabBarItemFocusedIconColor = Asset.Theme.Mastodon.tabBarItemInactiveIconColor.color
let tabBarItemNormalIconColor = Asset.Theme.Mastodon.tabBarItemInactiveIconColor.color
let tabBarItemDisabledIconColor = Asset.Theme.Mastodon.tabBarItemInactiveIconColor.color
let separator = Asset.Theme.Mastodon.separator.color
let tableViewCellBackgroundColor = Asset.Theme.Mastodon.tableViewCellBackground.color
let tableViewCellSelectionBackgroundColor = Asset.Theme.Mastodon.tableViewCellSelectionBackground.color
let contentWarningOverlayBackgroundColor = Asset.Theme.Mastodon.contentWarningOverlayBackground.color
let profileFieldCollectionViewBackgroundColor = Asset.Theme.Mastodon.profileFieldCollectionViewBackground.color
let composeToolbarBackgroundColor = Asset.Theme.Mastodon.composeToolbarBackground.color
let composePollRowBackgroundColor = Asset.Theme.Mastodon.composePollRowBackground.color
let notificationStatusBorderColor = Asset.Theme.System.notificationStatusBorderColor.color
}

View File

@ -20,7 +20,7 @@ public final class ThemeService {
public let currentTheme: CurrentValueSubject<Theme, Never>
private init() {
let theme = ThemeName(rawValue: UserDefaults.shared.currentThemeNameRawValue)?.theme ?? ThemeName.mastodon.theme
let theme = ThemeName.system.theme
currentTheme = CurrentValueSubject(theme)
}
@ -29,8 +29,8 @@ public final class ThemeService {
extension ThemeName {
public var theme: Theme {
switch self {
case .system: return SystemTheme()
case .mastodon: return MastodonTheme()
case .system:
return SystemTheme()
}
}
}

View File

@ -1462,8 +1462,6 @@ public enum L10n {
public static let openLinksInMastodon = L10n.tr("Localizable", "Scene.Settings.Section.Preference.OpenLinksInMastodon", fallback: "Open links in Mastodon")
/// Preferences
public static let title = L10n.tr("Localizable", "Scene.Settings.Section.Preference.Title", fallback: "Preferences")
/// True black dark mode
public static let trueBlackDarkMode = L10n.tr("Localizable", "Scene.Settings.Section.Preference.TrueBlackDarkMode", fallback: "True black dark mode")
/// Use default browser to open links
public static let usingDefaultBrowser = L10n.tr("Localizable", "Scene.Settings.Section.Preference.UsingDefaultBrowser", fallback: "Use default browser to open links")
}

View File

@ -504,7 +504,6 @@ uploaded to Mastodon.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Disable animated emojis";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Open links in Mastodon";
"Scene.Settings.Section.Preference.Title" = "Preferences";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "True black dark mode";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Use default browser to open links";
"Scene.Settings.Section.SpicyZone.Clear" = "Clear Media Cache";
"Scene.Settings.Section.SpicyZone.Signout" = "Sign Out";

View File

@ -466,7 +466,6 @@
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "تَعطيلُ الرُموزِ التَّعبيريَّةِ المُتحرِّكَة";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "فَتحُ الرَّوابِطِ فِي مَاستودُون";
"Scene.Settings.Section.Preference.Title" = "التَّفضيلات";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "النَّمَطُ الأسوَدُ الداكِنُ الحَقيقي";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "اِستِخدامُ المُتصفِّحِ الاِفتراضي لِفتحِ الرَّوابِط";
"Scene.Settings.Section.SpicyZone.Clear" = "مَحوُ ذاكِرَةِ التَّخزينِ المُؤقَّتِ لِلوسائِط";
"Scene.Settings.Section.SpicyZone.Signout" = "تَسجيلُ الخُروج";
@ -482,4 +481,4 @@
مرة أُخرى بين يديك.";
"Scene.Wizard.AccessibilityHint" = "انقر نقرًا مزدوجًا لتجاهُل النافذة المنبثقة";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "بدِّل بين حسابات متعددة عبر الاستمرار بالضغط على زر الملف الشخصي.";
"Scene.Wizard.NewInMastodon" = "جديد في ماستودون";
"Scene.Wizard.NewInMastodon" = "جديد في ماستودون";

View File

@ -465,7 +465,6 @@ carregat a Mastodon.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Desactiva emojis animats";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Obre enllaços a Mastodon";
"Scene.Settings.Section.Preference.Title" = "Preferències";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Mode negre fosc autèntic";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Utilitza el navegador predeterminat per a obrir enllaços";
"Scene.Settings.Section.SpicyZone.Clear" = "Esborra la memòria cau de Mèdia";
"Scene.Settings.Section.SpicyZone.Signout" = "Tancar Sessió";
@ -481,4 +480,4 @@ carregat a Mastodon.";
de nou a les teves mans.";
"Scene.Wizard.AccessibilityHint" = "Toca dues vegades per descartar l'assistent";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Commuta entre diversos comptes mantenint premut el botó del perfil.";
"Scene.Wizard.NewInMastodon" = "Nou a Mastodon";
"Scene.Wizard.NewInMastodon" = "Nou a Mastodon";

View File

@ -464,7 +464,6 @@
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "ئیمۆجییە جووڵاوەکان ناچالاک بکە";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "بەستەرەکان لەناو ماستۆدۆن بکەوە";
"Scene.Settings.Section.Preference.Title" = "پەسەندەکان";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "دۆخی ڕەش";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "وێبگەڕی بنەڕەت بەکار بهێنە بۆ کردنەوەی بەستەرەکان";
"Scene.Settings.Section.SpicyZone.Clear" = "بیرگە پاک بکەوە";
"Scene.Settings.Section.SpicyZone.Signout" = "دەربچۆ";
@ -480,4 +479,4 @@
لەژێر دەستەکانت.";
"Scene.Wizard.AccessibilityHint" = "دوو جار دەستی پیا بنێ بۆ داخستنی";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "هەژمارەکەت بگۆڕە بە دەستڕاگرتن لەسەر دوگمەی پرۆفایلەکە.";
"Scene.Wizard.NewInMastodon" = "نوێ";
"Scene.Wizard.NewInMastodon" = "نوێ";

View File

@ -461,7 +461,6 @@ nahrán do Mastodonu.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Zakázat animované emoji";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Otevřít odkazy v Mastodonu";
"Scene.Settings.Section.Preference.Title" = "Předvolby";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Skutečný černý tmavý režim";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Použít výchozí prohlížeč pro otevírání odkazů";
"Scene.Settings.Section.SpicyZone.Clear" = "Vymazat mezipaměť médií";
"Scene.Settings.Section.SpicyZone.Signout" = "Odhlásit se";
@ -476,4 +475,4 @@ nahrán do Mastodonu.";
"Scene.Welcome.Slogan" = "Sociální sítě opět ve vašich rukou.";
"Scene.Wizard.AccessibilityHint" = "Dvojitým poklepáním tohoto průvodce odmítnete";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Přepínání mezi více účty podržením tlačítka profilu.";
"Scene.Wizard.NewInMastodon" = "Nový v Mastodonu";
"Scene.Wizard.NewInMastodon" = "Nový v Mastodonu";

View File

@ -466,7 +466,6 @@ beliebigen Server.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Animierte Emojis deaktivieren";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Links in Mastodon öffnen";
"Scene.Settings.Section.Preference.Title" = "Präferenzen";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Vollständig dunkler Dunkelmodus";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Standardbrowser zum Öffnen von Links verwenden";
"Scene.Settings.Section.SpicyZone.Clear" = "Medien-Cache leeren";
"Scene.Settings.Section.SpicyZone.Signout" = "Abmelden";
@ -481,4 +480,4 @@ beliebigen Server.";
"Scene.Welcome.Slogan" = "Soziale Netzwerke wieder in deinen Händen.";
"Scene.Wizard.AccessibilityHint" = "Doppeltippen, um diesen Assistenten zu schließen";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Wechsel zwischen mehreren Konten durch Drücken der Profil-Schaltfläche.";
"Scene.Wizard.NewInMastodon" = "Neu in Mastodon";
"Scene.Wizard.NewInMastodon" = "Neu in Mastodon";

View File

@ -474,7 +474,6 @@ uploaded to Mastodon.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Disable animated emojis";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Open links in Mastodon";
"Scene.Settings.Section.Preference.Title" = "Preferences";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "True black dark mode";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Use default browser to open links";
"Scene.Settings.Section.SpicyZone.Clear" = "Clear Media Cache";
"Scene.Settings.Section.SpicyZone.Signout" = "Sign Out";

View File

@ -467,7 +467,6 @@ cualquier servidor.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Deshabilitar emojis animados";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Abrir links en Mastodon";
"Scene.Settings.Section.Preference.Title" = "Preferencias";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Modo oscuro negro real";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Usar navegador predeterminado para abrir los enlaces";
"Scene.Settings.Section.SpicyZone.Clear" = "Borrar Caché de Multimedia";
"Scene.Settings.Section.SpicyZone.Signout" = "Cerrar Sesión";
@ -483,4 +482,4 @@ cualquier servidor.";
de nuevo en tus manos.";
"Scene.Wizard.AccessibilityHint" = "Haz doble toque para descartar este asistente";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Cambie entre varias cuentas manteniendo presionado el botón de perfil.";
"Scene.Wizard.NewInMastodon" = "Nuevo en Mastodon";
"Scene.Wizard.NewInMastodon" = "Nuevo en Mastodon";

View File

@ -466,7 +466,6 @@ edozein zerbitzari.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Desgaitu emoji animatuak";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Ireki estekak Mastodonen";
"Scene.Settings.Section.Preference.Title" = "Hobespenak";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Benetako modu beltz iluna";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Erabili nabigatzaile lehenetsia estekak irekitzeko";
"Scene.Settings.Section.SpicyZone.Clear" = "Garbitu multimediaren cachea";
"Scene.Settings.Section.SpicyZone.Signout" = "Amaitu saioa";
@ -482,4 +481,4 @@ edozein zerbitzari.";
berriz zure eskuetan.";
"Scene.Wizard.AccessibilityHint" = "Ukitu birritan morroi hau baztertzeko";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Aldatu hainbat konturen artean profilaren botoia sakatuta edukiz.";
"Scene.Wizard.NewInMastodon" = "Berria Mastodonen";
"Scene.Wizard.NewInMastodon" = "Berria Mastodonen";

View File

@ -466,7 +466,6 @@ mikä tahansa palvelin.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Poista käytöstä animoidut emojit";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Open links in Mastodon";
"Scene.Settings.Section.Preference.Title" = "Lisäasetukset";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Todellinen mustan tumma tila";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Käytä oletusselainta linkkien avaamiseen";
"Scene.Settings.Section.SpicyZone.Clear" = "Tyhjennä median välimuisti";
"Scene.Settings.Section.SpicyZone.Signout" = "Kirjaudu ulos";
@ -482,4 +481,4 @@ mikä tahansa palvelin.";
takaisin käsissäsi.";
"Scene.Wizard.AccessibilityHint" = "Hylkää tämä ohjattu toiminto kaksoisnapauttamalla";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Vaihda useiden tilien välillä pitämällä profiilipainiketta painettuna.";
"Scene.Wizard.NewInMastodon" = "Uutta Mastodonissa";
"Scene.Wizard.NewInMastodon" = "Uutta Mastodonissa";

View File

@ -466,7 +466,6 @@ n'importe quel serveur.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Désactiver les émojis animées";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Ouvrir les liens dans Mastodon";
"Scene.Settings.Section.Preference.Title" = "Préférences";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Vrai mode sombre";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Utiliser le navigateur par défaut pour ouvrir les liens";
"Scene.Settings.Section.SpicyZone.Clear" = "Vider le cache des médias";
"Scene.Settings.Section.SpicyZone.Signout" = "Se déconnecter";
@ -481,4 +480,4 @@ n'importe quel serveur.";
"Scene.Welcome.Slogan" = "Le réseau social qui vous rend le contrôle.";
"Scene.Wizard.AccessibilityHint" = "Tapotez deux fois pour fermer cet assistant";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Basculez entre plusieurs comptes en appuyant de maniere prolongée sur le bouton profil.";
"Scene.Wizard.NewInMastodon" = "Nouveau dans Mastodon";
"Scene.Wizard.NewInMastodon" = "Nouveau dans Mastodon";

View File

@ -465,7 +465,6 @@ a luchdadh suas gu Mastodon.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Cuir beothachadh nan Emojis à comas";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Fosgail ceanglaichean ann am Mastodon";
"Scene.Settings.Section.Preference.Title" = "Roghainnean";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Modh dubh dorcha";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Cleachd am brabhsair bunaiteach airson ceanglaichean fhosgladh";
"Scene.Settings.Section.SpicyZone.Clear" = "Falamhaich tasgadan nam meadhanan";
"Scene.Settings.Section.SpicyZone.Signout" = "Clàraich a-mach";
@ -481,4 +480,4 @@ a luchdadh suas gu Mastodon.";
nad làmhan fhèin.";
"Scene.Wizard.AccessibilityHint" = "Thoir gnogag dhùbailte a leigeil seachad an draoidh seo";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Geàrr leum eadar iomadh cunntas le cumail sìos putan na pròifil.";
"Scene.Wizard.NewInMastodon" = "Na tha ùr ann am Mastodon";
"Scene.Wizard.NewInMastodon" = "Na tha ùr ann am Mastodon";

View File

@ -465,7 +465,6 @@ ser subido a Mastodon.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Desactivar emojis animados";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Abrir ligazóns en Mastodon";
"Scene.Settings.Section.Preference.Title" = "Preferencias";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Modo negro verdadeiro";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Usar navegador por defecto para as ligazóns";
"Scene.Settings.Section.SpicyZone.Clear" = "Limpar caché multimedia";
"Scene.Settings.Section.SpicyZone.Signout" = "Pechar sesión";
@ -481,4 +480,4 @@ ser subido a Mastodon.";
de volta ás túas mans.";
"Scene.Wizard.AccessibilityHint" = "Dobre toque para desbotar este asistente";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Cambia dunha conta a outra mantendo preso o botón do perfil.";
"Scene.Wizard.NewInMastodon" = "Novidade en Mastodon";
"Scene.Wizard.NewInMastodon" = "Novidade en Mastodon";

View File

@ -465,7 +465,6 @@ caricato su Mastodon.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Disabilita emoji animate";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Apri i link in Mastodon";
"Scene.Settings.Section.Preference.Title" = "Preferenze";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Modalità molto scura";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Usa browser predefinito per aprire i collegamenti";
"Scene.Settings.Section.SpicyZone.Clear" = "Cancella la cache multimediale";
"Scene.Settings.Section.SpicyZone.Signout" = "Esci";
@ -480,4 +479,4 @@ caricato su Mastodon.";
"Scene.Welcome.Slogan" = "Il social network, di nuovo nelle tue mani.";
"Scene.Wizard.AccessibilityHint" = "Doppio tocco per eliminare questa procedura guidata";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Passa tra più account tenendo premuto il pulsante del profilo.";
"Scene.Wizard.NewInMastodon" = "Nuovo su Mastodon";
"Scene.Wizard.NewInMastodon" = "Nuovo su Mastodon";

View File

@ -460,7 +460,6 @@
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "絵文字のアニメーションを無効化する";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Mastodonでリンクを開く";
"Scene.Settings.Section.Preference.Title" = "環境設定";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "真っ黒なダークテーマを使用する";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "既定のブラウザでリンクを開く";
"Scene.Settings.Section.SpicyZone.Clear" = "メディアキャッシュをクリア";
"Scene.Settings.Section.SpicyZone.Signout" = "サインアウト";
@ -475,4 +474,4 @@
"Scene.Welcome.Slogan" = "ソーシャルネットワーキングを、あなたの手の中に.";
"Scene.Wizard.AccessibilityHint" = "チュートリアルを閉じるには、ダブルタップしてください";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "プロフィールボタンを押して複数のアカウントを切り替えます。";
"Scene.Wizard.NewInMastodon" = "Mastodon の新機能";
"Scene.Wizard.NewInMastodon" = "Mastodon の新機能";

View File

@ -465,7 +465,6 @@ Ad d-yettwasali ɣef Mastodon.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Sens imujiten yettembiwilen";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Ldi iseɣwan deg Mastodon";
"Scene.Settings.Section.Preference.Title" = "Imenyafen";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Askar aberkan n tidet";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Seqdec iminig amezwer i twaledyawt n yiseɣwan";
"Scene.Settings.Section.SpicyZone.Clear" = "Sfeḍ takatut tuffirt n umidyat";
"Scene.Settings.Section.SpicyZone.Signout" = "Senser";
@ -481,4 +480,4 @@ Ad d-yettwasali ɣef Mastodon.";
uɣalen-d ɣer ufus-ik.";
"Scene.Wizard.AccessibilityHint" = "Sin isitiyen i usefsex n umarag-a";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Beddel gar waṭas n yimiḍanen s tussda ɣezzifen ɣef tqeffalt n umaɣnu.";
"Scene.Wizard.NewInMastodon" = "Amaynut deg Maṣṭudun";
"Scene.Wizard.NewInMastodon" = "Amaynut deg Maṣṭudun";

View File

@ -358,7 +358,6 @@ Her kîjan rajekar be.";
"Scene.Settings.Section.Preference.DisableAvatarAnimation" = "Avatarên anîmasyonî neçalak bike";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Emojiyên anîmasyonî neçalak bike";
"Scene.Settings.Section.Preference.Title" = "Hilbijarte";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Moda tarî ya reş a rastîn";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Ji bo vekirina girêdanan geroka berdest bi kar bîne";
"Scene.Settings.Section.SpicyZone.Clear" = "Pêşbîra medyayê pak bike";
"Scene.Settings.Section.SpicyZone.Signout" = "Derkeve";
@ -374,4 +373,4 @@ Her kîjan rajekar be.";
di destên te de.";
"Scene.Wizard.AccessibilityHint" = "Du caran bitikîne da ku çarçoveyahilpekok ji holê rakî";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Dest bide ser bişkoja profîlê da ku di navbera gelek ajimêrann de biguherînî.";
"Scene.Wizard.NewInMastodon" = "Nû di Mastodon de";
"Scene.Wizard.NewInMastodon" = "Nû di Mastodon de";

View File

@ -466,7 +466,6 @@ girêdanê bitikne da ku ajimêra xwe bidî piştrastkirin.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Emojiyên anîmasyonî neçalak bike";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Girêdanan di Mastodon de veke";
"Scene.Settings.Section.Preference.Title" = "Sazkarî";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Moda tarî ya reş a rastîn";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Ji bo vekirina girêdanan geroka berdest bi kar bîne";
"Scene.Settings.Section.SpicyZone.Clear" = "Pêşbîra medyayê pak bike";
"Scene.Settings.Section.SpicyZone.Signout" = "Derkeve";
@ -482,4 +481,4 @@ girêdanê bitikne da ku ajimêra xwe bidî piştrastkirin.";
di destên te de.";
"Scene.Wizard.AccessibilityHint" = "Du caran bitikîne da ku çarçoveyahilpekok ji holê rakî";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Dest bide ser bişkoja profîlê da ku di navbera gelek ajimêrann de biguherînî.";
"Scene.Wizard.NewInMastodon" = "Nû di Mastodon de";
"Scene.Wizard.NewInMastodon" = "Nû di Mastodon de";

View File

@ -460,7 +460,6 @@ klik op de link om uw account te bevestigen.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Geanimeerde emojis uitschakelen";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Open links in Mastodon";
"Scene.Settings.Section.Preference.Title" = "Instellingen";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Echt zwarte donker uiterlijk";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Gebruik de standaard browser om links te openen";
"Scene.Settings.Section.SpicyZone.Clear" = "Mediacache wissen";
"Scene.Settings.Section.SpicyZone.Signout" = "Afmelden";
@ -475,4 +474,4 @@ klik op de link om uw account te bevestigen.";
"Scene.Welcome.Slogan" = "Sociale media terug in uw handen.";
"Scene.Wizard.AccessibilityHint" = "Tik tweemaal om het popup-scherm te sluiten";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Schakel tussen meerdere accounts door de profielknop in te drukken en vast te houden.";
"Scene.Wizard.NewInMastodon" = "Nieuw in Mastodon";
"Scene.Wizard.NewInMastodon" = "Nieuw in Mastodon";

View File

@ -477,7 +477,6 @@
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Отключить анимацию эмодзи";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Открывать ссылки в Мастодоне";
"Scene.Settings.Section.Preference.Title" = "Предпочтения";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Полноценно чёрный режим";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Использовать браузер по умолчанию для открытия ссылок";
"Scene.Settings.Section.SpicyZone.Clear" = "Очистить кэш медиа";
"Scene.Settings.Section.SpicyZone.Signout" = "Выйти из учётной записи";
@ -493,4 +492,4 @@
под вашим контролем.";
"Scene.Wizard.AccessibilityHint" = "Double tap to dismiss this wizard";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Switch between multiple accounts by holding the profile button.";
"Scene.Wizard.NewInMastodon" = "Новое в Мастодоне";
"Scene.Wizard.NewInMastodon" = "Новое в Мастодоне";

View File

@ -465,7 +465,6 @@ možno naložiti v Mastodon.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Onemogoči animirane emotikone";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Odpri povezave v Mastodonu";
"Scene.Settings.Section.Preference.Title" = "Nastavitve";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Resnično črni temni način";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Uporabi privzeti brskalnik za odpiranje povezav";
"Scene.Settings.Section.SpicyZone.Clear" = "Počisti medijski predpomnilnik";
"Scene.Settings.Section.SpicyZone.Signout" = "Odjava";
@ -481,4 +480,4 @@ možno naložiti v Mastodon.";
spet v vaših rokah.";
"Scene.Wizard.AccessibilityHint" = "Dvakrat tapnite, da zapustite tega čarovnika";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Preklopite med več računi s pritiskom gumba profila.";
"Scene.Wizard.NewInMastodon" = "Novo v Mastodonu";
"Scene.Wizard.NewInMastodon" = "Novo v Mastodonu";

View File

@ -465,7 +465,6 @@ laddas upp till Mastodon.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Inaktivera animerade emojis";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Öppna länkar i Mastodon";
"Scene.Settings.Section.Preference.Title" = "Inställningar";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "True black-mörkt läge";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Använd standardwebbläsare för att öppna länkar";
"Scene.Settings.Section.SpicyZone.Clear" = "Rensa mediacache";
"Scene.Settings.Section.SpicyZone.Signout" = "Logga ut";
@ -481,4 +480,4 @@ laddas upp till Mastodon.";
tillbaka i dina händer.";
"Scene.Wizard.AccessibilityHint" = "Dubbeltryck för att avvisa den här guiden";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Växla mellan flera konton genom att hålla inne profilknappen.";
"Scene.Wizard.NewInMastodon" = "Nytt i Mastodon";
"Scene.Wizard.NewInMastodon" = "Nytt i Mastodon";

View File

@ -465,7 +465,6 @@
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "ปิดใช้งานอีโมจิแบบเคลื่อนไหว";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "เปิดลิงก์ใน Mastodon";
"Scene.Settings.Section.Preference.Title" = "การกำหนดลักษณะ";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "โหมดมืดดำสนิท";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "ใช้เบราว์เซอร์เริ่มต้นเพื่อเปิดลิงก์";
"Scene.Settings.Section.SpicyZone.Clear" = "ล้างแคชสื่อ";
"Scene.Settings.Section.SpicyZone.Signout" = "ลงชื่อออก";
@ -481,4 +480,4 @@
กลับมาอยู่ในมือของคุณ";
"Scene.Wizard.AccessibilityHint" = "แตะสองครั้งเพื่อปิดตัวช่วยสร้างนี้";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "สลับระหว่างหลายบัญชีโดยกดปุ่มโปรไฟล์ค้างไว้";
"Scene.Wizard.NewInMastodon" = "มาใหม่ใน Mastodon";
"Scene.Wizard.NewInMastodon" = "มาใหม่ใน Mastodon";

View File

@ -464,7 +464,6 @@ yüklenemiyor.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Hareketli emojileri devre dışı bırak";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Bağlantıları Mastodon içinden aç";
"Scene.Settings.Section.Preference.Title" = "Tercihler";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Tam siyah koyu modu";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Bağlantıları varsayılan tarayıcıda aç";
"Scene.Settings.Section.SpicyZone.Clear" = "Medya Önbelleğini Temizle";
"Scene.Settings.Section.SpicyZone.Signout" = "Oturumu Kapat";
@ -480,4 +479,4 @@ yüklenemiyor.";
tekrardan ellerinizde.";
"Scene.Wizard.AccessibilityHint" = "Bu yardımı kapatmak için çift tıklayın";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Profil butonuna basılı tutarak birden fazla hesap arasında geçiş yapın.";
"Scene.Wizard.NewInMastodon" = "Mastodon'da Yeni";
"Scene.Wizard.NewInMastodon" = "Mastodon'da Yeni";

View File

@ -465,7 +465,6 @@ tải lên Mastodon.";
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "Tắt emoji dạng GIF";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "Mở liên kết trong Mastodon";
"Scene.Settings.Section.Preference.Title" = "Chung";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "Chế độ tối chân thật";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "Dùng trình duyệt mặc định";
"Scene.Settings.Section.SpicyZone.Clear" = "Xóa bộ nhớ đệm";
"Scene.Settings.Section.SpicyZone.Signout" = "Đăng xuất";
@ -481,4 +480,4 @@ tải lên Mastodon.";
do bạn kiểm soát.";
"Scene.Wizard.AccessibilityHint" = "Nhấn hai lần để bỏ qua";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "Chuyển đổi giữa nhiều tài khoản bằng cách đè giữ nút tài khoản.";
"Scene.Wizard.NewInMastodon" = "Mới trên Mastodon";
"Scene.Wizard.NewInMastodon" = "Mới trên Mastodon";

View File

@ -466,7 +466,6 @@
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "禁用动画表情";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "在 Mastodon 中打开链接";
"Scene.Settings.Section.Preference.Title" = "偏好";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "纯黑模式";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "使用默认浏览器打开链接";
"Scene.Settings.Section.SpicyZone.Clear" = "清除图片缓存";
"Scene.Settings.Section.SpicyZone.Signout" = "退出";
@ -482,4 +481,4 @@
回到你的手中。";
"Scene.Wizard.AccessibilityHint" = "双击关闭此向导";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "按住个人资料标签按钮,即可在多个账户之间进行切换。";
"Scene.Wizard.NewInMastodon" = "新功能";
"Scene.Wizard.NewInMastodon" = "新功能";

View File

@ -460,7 +460,6 @@
"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "停用動畫 emoji";
"Scene.Settings.Section.Preference.OpenLinksInMastodon" = "在 Mastodon 中開啟連結";
"Scene.Settings.Section.Preference.Title" = "偏好設定";
"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "真☆闇黑模式";
"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "使用預設瀏覽器開啟連結";
"Scene.Settings.Section.SpicyZone.Clear" = "清除媒體快取";
"Scene.Settings.Section.SpicyZone.Signout" = "登出";
@ -476,4 +475,4 @@
還權於您。";
"Scene.Wizard.AccessibilityHint" = "點兩下以關閉此設定精靈";
"Scene.Wizard.MultipleAccountSwitchIntroDescription" = "按住個人檔案按鈕以於多個帳號間切換。";
"Scene.Wizard.NewInMastodon" = "Mastodon 新功能";
"Scene.Wizard.NewInMastodon" = "Mastodon 新功能";

View File

@ -60,8 +60,6 @@ extension ProfileCardView {
switch userInterfaceStyle {
case .dark:
switch theme.themeName {
case .mastodon:
self.backgroundColor = theme.systemBackgroundColor
case .system:
self.backgroundColor = theme.secondarySystemBackgroundColor
}