mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-28 23:32:41 +00:00
Introduce PushNotificationManager
This commit is contained in:
parent
e90c41791a
commit
a8af28170b
2 changed files with 72 additions and 0 deletions
|
@ -769,6 +769,10 @@
|
|||
EC3B066A24AC6ADE000DF9BF /* CrossSigningSetupBannerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EC3B066624AC6ADD000DF9BF /* CrossSigningSetupBannerCell.xib */; };
|
||||
EC3B066B24AC6ADE000DF9BF /* CrossSigningBannerPreferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3B066724AC6ADD000DF9BF /* CrossSigningBannerPreferences.swift */; };
|
||||
EC3B066C24AC6ADE000DF9BF /* CrossSigningSetupBannerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC3B066824AC6ADD000DF9BF /* CrossSigningSetupBannerCell.swift */; };
|
||||
EC619C1424D9C60C00663A80 /* PushNotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC619C1324D9C60C00663A80 /* PushNotificationManager.swift */; };
|
||||
EC619C1524D9C6EB00663A80 /* PushNotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC619C1324D9C60C00663A80 /* PushNotificationManager.swift */; };
|
||||
EC619C1624D9C6F900663A80 /* KeyValueStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC1CA87124C823E700DE9EBF /* KeyValueStore.swift */; };
|
||||
EC619C1724D9C70000663A80 /* KeychainStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC1CA87424C8259700DE9EBF /* KeychainStore.swift */; };
|
||||
EC711B4624A63B13008F830C /* MXRecoveryService.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC711B4524A63B13008F830C /* MXRecoveryService.swift */; };
|
||||
EC711B7424A63B37008F830C /* SecretsSetupRecoveryKeyViewModelType.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC711B4A24A63B36008F830C /* SecretsSetupRecoveryKeyViewModelType.swift */; };
|
||||
EC711B7524A63B37008F830C /* SecretsSetupRecoveryKeyCoordinatorType.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC711B4B24A63B36008F830C /* SecretsSetupRecoveryKeyCoordinatorType.swift */; };
|
||||
|
@ -1898,6 +1902,7 @@
|
|||
EC3B066624AC6ADD000DF9BF /* CrossSigningSetupBannerCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CrossSigningSetupBannerCell.xib; sourceTree = "<group>"; };
|
||||
EC3B066724AC6ADD000DF9BF /* CrossSigningBannerPreferences.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CrossSigningBannerPreferences.swift; sourceTree = "<group>"; };
|
||||
EC3B066824AC6ADD000DF9BF /* CrossSigningSetupBannerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CrossSigningSetupBannerCell.swift; sourceTree = "<group>"; };
|
||||
EC619C1324D9C60C00663A80 /* PushNotificationManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationManager.swift; sourceTree = "<group>"; };
|
||||
EC711B4524A63B13008F830C /* MXRecoveryService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MXRecoveryService.swift; sourceTree = "<group>"; };
|
||||
EC711B4A24A63B36008F830C /* SecretsSetupRecoveryKeyViewModelType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretsSetupRecoveryKeyViewModelType.swift; sourceTree = "<group>"; };
|
||||
EC711B4B24A63B36008F830C /* SecretsSetupRecoveryKeyCoordinatorType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretsSetupRecoveryKeyCoordinatorType.swift; sourceTree = "<group>"; };
|
||||
|
@ -4850,6 +4855,7 @@
|
|||
children = (
|
||||
EC85D73C2477DDD0002C44C9 /* PushNotificationService.h */,
|
||||
EC85D73D2477DDD0002C44C9 /* PushNotificationService.m */,
|
||||
EC619C1324D9C60C00663A80 /* PushNotificationManager.swift */,
|
||||
);
|
||||
path = PushNotification;
|
||||
sourceTree = "<group>";
|
||||
|
@ -5716,9 +5722,12 @@
|
|||
EC2B4EF224A1EF34005EB739 /* DataProtectionHelper.swift in Sources */,
|
||||
EC85D7462477E5F7002C44C9 /* NotificationService.swift in Sources */,
|
||||
32FD755424D074C700BA7B37 /* CommonConfiguration.swift in Sources */,
|
||||
EC619C1524D9C6EB00663A80 /* PushNotificationManager.swift in Sources */,
|
||||
32FD757424D2BEF700BA7B37 /* InfoPlist.swift in Sources */,
|
||||
EC85D752247C0F52002C44C9 /* UNUserNotificationCenter.swift in Sources */,
|
||||
EC619C1624D9C6F900663A80 /* KeyValueStore.swift in Sources */,
|
||||
32FD757A24D2C9BA00BA7B37 /* Bundle.swift in Sources */,
|
||||
EC619C1724D9C70000663A80 /* KeychainStore.swift in Sources */,
|
||||
32FD755B24D15C7A00BA7B37 /* Configurable.swift in Sources */,
|
||||
EC85D755247C0F84002C44C9 /* Constants.swift in Sources */,
|
||||
);
|
||||
|
@ -6178,6 +6187,7 @@
|
|||
B1B5572820EE6C4D00210D55 /* RoomViewController.m in Sources */,
|
||||
B108932123AB8D7D00802670 /* KeyVerificationIncomingRequestApprovalViewData.swift in Sources */,
|
||||
EC85D7172477DCD7002C44C9 /* KeyVerificationScanConfirmationViewModel.swift in Sources */,
|
||||
EC619C1424D9C60C00663A80 /* PushNotificationManager.swift in Sources */,
|
||||
B18DEDDA243377C10075FEF7 /* KeyVerificationSelfVerifyWaitViewState.swift in Sources */,
|
||||
B1B9DEED22EB34EF0065E677 /* ReactionHistoryCoordinator.swift in Sources */,
|
||||
B1DCC62A22E60D1000625807 /* EmojiMartService.swift in Sources */,
|
||||
|
|
62
Riot/Managers/PushNotification/PushNotificationManager.swift
Normal file
62
Riot/Managers/PushNotification/PushNotificationManager.swift
Normal file
|
@ -0,0 +1,62 @@
|
|||
//
|
||||
// Copyright 2020 Vector Creations Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import KeychainAccess
|
||||
|
||||
@objcMembers
|
||||
final class PushNotificationManager: NSObject {
|
||||
|
||||
// MARK: - Constants
|
||||
|
||||
private struct PushNotificationConstants {
|
||||
static let pushNotificationKeychainService: String = "im.vector.app.pushnotification-service"
|
||||
}
|
||||
|
||||
private struct StoreKeys {
|
||||
static let pushToken: String = "pushtoken"
|
||||
}
|
||||
|
||||
static let shared = PushNotificationManager()
|
||||
|
||||
/// Store. Defaults to `KeychainStore`
|
||||
private let store: KeyValueStore
|
||||
|
||||
override init() {
|
||||
store = KeychainStore(withKeychain: Keychain(service: PushNotificationConstants.pushNotificationKeychainService,
|
||||
accessGroup: Constants.keychainAccessGroup))
|
||||
super.init()
|
||||
}
|
||||
|
||||
/// Saved push token
|
||||
var pushToken: Data? {
|
||||
get {
|
||||
do {
|
||||
return try store.data(forKey: StoreKeys.pushToken)
|
||||
} catch let error {
|
||||
NSLog("[PinCodePreferences] Error when reading push token from store: \(error)")
|
||||
return nil
|
||||
}
|
||||
} set {
|
||||
do {
|
||||
try store.set(newValue, forKey: StoreKeys.pushToken)
|
||||
} catch let error {
|
||||
NSLog("[PinCodePreferences] Error when storing push token to the store: \(error)")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue