summaryrefslogtreecommitdiffhomepage
path: root/ios/Shared/ApplicationConfiguration.swift
blob: a3af1eef75f90f7c79ea3162a522540c33c3308b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//
//  ApplicationConfiguration.swift
//  MullvadVPN
//
//  Created by pronebird on 05/06/2019.
//  Copyright © 2019 Mullvad VPN AB. All rights reserved.
//

import Foundation
import Network

enum ApplicationConfiguration {
    /// Shared container security group identifier.
    static var securityGroupIdentifier: String {
        // swiftlint:disable:next force_cast
        Bundle.main.object(forInfoDictionaryKey: "ApplicationSecurityGroupIdentifier") as! String
    }

    /// Container URL for security group.
    static var containerURL: URL {
        FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: securityGroupIdentifier)!
    }

    /// Returns URL for log file associated with application target and located within shared container.
    static func logFileURL(for target: ApplicationTarget) -> URL {
        containerURL.appendingPathComponent("\(target.bundleIdentifier).log", isDirectory: false)
    }

    /// Privacy policy URL.
    static let privacyPolicyURL = URL(string: "https://mullvad.net/help/privacy-policy/")!

    /// Make a start regarding  policy URL.
    static let privacyGuidesURL = URL(string: "https://mullvad.net/help/first-steps-towards-online-privacy/")!

    /// FAQ & Guides URL.
    static let faqAndGuidesURL = URL(string: "https://mullvad.net/help/tag/mullvad-app/")!

    /// Maximum number of devices per account.
    static let maxAllowedDevices = 5

    // FIXME: Used for debugging purposes during the migration to same IP. Remove when the migration is over.
    // swiftlint disable:force_cast
    static let sameIPv4 = IPv4Address("10.127.255.254")!
    static let sameIPv6 = IPv6Address("fc00:bbbb:bbbb:bb01:ffff:ffff:ffff:ffff")!
    // swiftlint enable:force_cast
}