Signal-iOS/SignalServiceKit/Messages/Interactions/LinkPreview/Manager/LinkPreviewSettingStore.swift
2024-07-26 21:45:22 -05:00

33 lines
962 B
Swift

//
// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import Foundation
public class LinkPreviewSettingStore {
private enum Constants {
static let areLinkPreviewsEnabledKey = "areLinkPreviewsEnabled"
}
private let keyValueStore: any KeyValueStore
init(keyValueStore: any KeyValueStore) {
self.keyValueStore = keyValueStore
}
public func areLinkPreviewsEnabled(tx: DBReadTransaction) -> Bool {
return keyValueStore.getBool(Constants.areLinkPreviewsEnabledKey, defaultValue: true, transaction: tx)
}
func setAreLinkPreviewsEnabled(_ newValue: Bool, tx: DBWriteTransaction) {
keyValueStore.setBool(newValue, key: Constants.areLinkPreviewsEnabledKey, transaction: tx)
}
#if TESTABLE_BUILD
static func mock() -> LinkPreviewSettingStore {
return LinkPreviewSettingStore(keyValueStore: InMemoryKeyValueStore(collection: ""))
}
#endif
}