Add hasWalletAccess

This commit is contained in:
Peter 2019-10-17 12:27:55 +04:00
parent 0514af167b
commit 65a6af7226
3 changed files with 19 additions and 8 deletions

View File

@ -528,6 +528,7 @@ public protocol AccountContext: class {
var wallpaperUploadManager: WallpaperUploadManager? { get } var wallpaperUploadManager: WallpaperUploadManager? { get }
var watchManager: WatchManager? { get } var watchManager: WatchManager? { get }
var hasWallets: Signal<Bool, NoError> { get } var hasWallets: Signal<Bool, NoError> { get }
var hasWalletAccess: Signal<Bool, NoError> { get }
var currentLimitsConfiguration: Atomic<LimitsConfiguration> { get } var currentLimitsConfiguration: Atomic<LimitsConfiguration> { get }

View File

@ -1169,14 +1169,7 @@ public func settingsController(context: AccountContext, accountManager: AccountM
let hasWallet = contextValue.get() let hasWallet = contextValue.get()
|> mapToSignal { context in |> mapToSignal { context in
return context.account.postbox.preferencesView(keys: [PreferencesKeys.appConfiguration]) return context.hasWalletAccess
|> map { view -> Bool in
if #available(iOSApplicationExtension 10.3, iOS 10.3, *) {
return true
} else {
return false
}
}
} }
let hasPassport = ValuePromise<Bool>(false) let hasPassport = ValuePromise<Bool>(false)

View File

@ -10,6 +10,7 @@ import AccountContext
import LiveLocationManager import LiveLocationManager
import TemporaryCachedPeerDataManager import TemporaryCachedPeerDataManager
import WalletCore import WalletCore
import WalletUI
private final class DeviceSpecificContactImportContext { private final class DeviceSpecificContactImportContext {
let disposable = MetaDisposable() let disposable = MetaDisposable()
@ -139,6 +140,22 @@ public final class AccountContextImpl: AccountContext {
} }
} }
public var hasWalletAccess: Signal<Bool, NoError> {
return self.account.postbox.preferencesView(keys: [PreferencesKeys.appConfiguration])
|> map { view -> Bool in
guard let appConfiguration = view.values[PreferencesKeys.appConfiguration] as? AppConfiguration else {
return false
}
let walletConfiguration = WalletConfiguration.with(appConfiguration: appConfiguration)
if walletConfiguration.config != nil && walletConfiguration.blockchainName != nil {
return true
} else {
return false
}
}
|> distinctUntilChanged
}
public init(sharedContext: SharedAccountContextImpl, account: Account, tonContext: StoredTonContext?, limitsConfiguration: LimitsConfiguration) { public init(sharedContext: SharedAccountContextImpl, account: Account, tonContext: StoredTonContext?, limitsConfiguration: LimitsConfiguration) {
self.sharedContextImpl = sharedContext self.sharedContextImpl = sharedContext
self.account = account self.account = account