Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
signalapp
GitHub Repository: signalapp/Signal-iOS
Path: blob/main/SignalServiceKit/Devices/InactivePrimaryDeviceStore.swift
1 views
//
// Copyright 2025 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//

extension Notification.Name {
    public static let inactivePrimaryDeviceChanged = Notification.Name("inactivePrimaryDeviceChanged")
}

public class InactivePrimaryDeviceStore: NSObject {
    private enum StoreKeys {
        static let hasInactivePrimaryDeviceAlert: String = "hasInactivePrimaryDevice"
    }

    private let kvStore: KeyValueStore

    override public init() {
        self.kvStore = KeyValueStore(collection: "InactivePrimaryDeviceStore")
    }

    public func setValueForInactivePrimaryDeviceAlert(
        value: Bool,
        transaction: DBWriteTransaction,
    ) {
        kvStore.setBool(
            value,
            key: StoreKeys.hasInactivePrimaryDeviceAlert,
            transaction: transaction,
        )
    }

    public func valueForInactivePrimaryDeviceAlert(transaction: DBReadTransaction) -> Bool {
        return kvStore.getBool(
            StoreKeys.hasInactivePrimaryDeviceAlert,
            transaction: transaction,
        ) ?? false
    }
}