Skip to content

Commit 820a0f5

Browse files
authored
Merge pull request #588 from Hirobreak/manager-address
Address Manager
2 parents 22e4a39 + 16a374e commit 820a0f5

19 files changed

Lines changed: 179 additions & 60 deletions

iOS-Email-Client.xcodeproj/project.pbxproj

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3231,7 +3231,7 @@
32313231
CODE_SIGN_IDENTITY = "iPhone Developer";
32323232
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
32333233
CODE_SIGN_STYLE = Automatic;
3234-
CURRENT_PROJECT_VERSION = 3;
3234+
CURRENT_PROJECT_VERSION = 2;
32353235
DEVELOPMENT_TEAM = 65NU4336S4;
32363236
FRAMEWORK_SEARCH_PATHS = (
32373237
"$(inherited)",
@@ -3241,7 +3241,7 @@
32413241
INFOPLIST_FILE = "iOS-Email-Client/Info.plist";
32423242
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
32433243
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
3244-
MARKETING_VERSION = 1.2.2;
3244+
MARKETING_VERSION = 1.2.3;
32453245
OTHER_LDFLAGS = (
32463246
"-ObjC",
32473247
"$(inherited)",
@@ -3271,7 +3271,7 @@
32713271
CODE_SIGN_IDENTITY = "iPhone Developer";
32723272
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
32733273
CODE_SIGN_STYLE = Automatic;
3274-
CURRENT_PROJECT_VERSION = 3;
3274+
CURRENT_PROJECT_VERSION = 2;
32753275
DEVELOPMENT_TEAM = 65NU4336S4;
32763276
FRAMEWORK_SEARCH_PATHS = (
32773277
"$(inherited)",
@@ -3281,7 +3281,7 @@
32813281
INFOPLIST_FILE = "iOS-Email-Client/Info.plist";
32823282
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
32833283
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
3284-
MARKETING_VERSION = 1.2.2;
3284+
MARKETING_VERSION = 1.2.3;
32853285
OTHER_LDFLAGS = (
32863286
"-ObjC",
32873287
"$(inherited)",
@@ -3416,7 +3416,7 @@
34163416
CODE_SIGN_IDENTITY = "iPhone Developer";
34173417
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
34183418
CODE_SIGN_STYLE = Automatic;
3419-
CURRENT_PROJECT_VERSION = 3;
3419+
CURRENT_PROJECT_VERSION = 2;
34203420
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
34213421
DEVELOPMENT_TEAM = 65NU4336S4;
34223422
FRAMEWORK_SEARCH_PATHS = (
@@ -3427,7 +3427,7 @@
34273427
INFOPLIST_FILE = "iOS-Email-Client/Info.plist";
34283428
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
34293429
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
3430-
MARKETING_VERSION = 1.2.2;
3430+
MARKETING_VERSION = 1.2.3;
34313431
OTHER_LDFLAGS = (
34323432
"-ObjC",
34333433
"$(inherited)",
@@ -3479,7 +3479,7 @@
34793479
CODE_SIGN_IDENTITY = "iPhone Developer";
34803480
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
34813481
CODE_SIGN_STYLE = Automatic;
3482-
CURRENT_PROJECT_VERSION = 3;
3482+
CURRENT_PROJECT_VERSION = 2;
34833483
DEVELOPMENT_TEAM = 65NU4336S4;
34843484
FRAMEWORK_SEARCH_PATHS = (
34853485
"$(inherited)",
@@ -3488,7 +3488,7 @@
34883488
INFOPLIST_FILE = ShareExtension/Info.plist;
34893489
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
34903490
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
3491-
MARKETING_VERSION = 1.2.2;
3491+
MARKETING_VERSION = 1.2.3;
34923492
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
34933493
MTL_FAST_MATH = YES;
34943494
PRODUCT_BUNDLE_IDENTIFIER = com.criptext.mail.ShareExtension;
@@ -3510,7 +3510,7 @@
35103510
CODE_SIGN_IDENTITY = "iPhone Developer";
35113511
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
35123512
CODE_SIGN_STYLE = Automatic;
3513-
CURRENT_PROJECT_VERSION = 3;
3513+
CURRENT_PROJECT_VERSION = 2;
35143514
DEVELOPMENT_TEAM = 65NU4336S4;
35153515
FRAMEWORK_SEARCH_PATHS = (
35163516
"$(inherited)",
@@ -3519,7 +3519,7 @@
35193519
INFOPLIST_FILE = ShareExtension/Info.plist;
35203520
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
35213521
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
3522-
MARKETING_VERSION = 1.2.2;
3522+
MARKETING_VERSION = 1.2.3;
35233523
MTL_FAST_MATH = YES;
35243524
PRODUCT_BUNDLE_IDENTIFIER = com.criptext.mail.ShareExtension;
35253525
PRODUCT_NAME = ShareExtension;
@@ -3540,7 +3540,7 @@
35403540
CODE_SIGN_IDENTITY = "iPhone Developer";
35413541
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
35423542
CODE_SIGN_STYLE = Automatic;
3543-
CURRENT_PROJECT_VERSION = 3;
3543+
CURRENT_PROJECT_VERSION = 2;
35443544
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
35453545
DEVELOPMENT_TEAM = 65NU4336S4;
35463546
FRAMEWORK_SEARCH_PATHS = (
@@ -3550,7 +3550,7 @@
35503550
INFOPLIST_FILE = ShareExtension/Info.plist;
35513551
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
35523552
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
3553-
MARKETING_VERSION = 1.2.2;
3553+
MARKETING_VERSION = 1.2.3;
35543554
MTL_FAST_MATH = YES;
35553555
PRODUCT_BUNDLE_IDENTIFIER = com.criptext.mail.support.ShareExtension;
35563556
PRODUCT_NAME = ShareExtension;
@@ -3573,7 +3573,7 @@
35733573
CODE_SIGN_IDENTITY = "iPhone Developer";
35743574
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
35753575
CODE_SIGN_STYLE = Automatic;
3576-
CURRENT_PROJECT_VERSION = 3;
3576+
CURRENT_PROJECT_VERSION = 2;
35773577
DEVELOPMENT_TEAM = 65NU4336S4;
35783578
FRAMEWORK_SEARCH_PATHS = (
35793579
"$(inherited)",
@@ -3582,7 +3582,7 @@
35823582
INFOPLIST_FILE = NotificationExtension/Info.plist;
35833583
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
35843584
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
3585-
MARKETING_VERSION = 1.2.2;
3585+
MARKETING_VERSION = 1.2.3;
35863586
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
35873587
MTL_FAST_MATH = YES;
35883588
PRODUCT_BUNDLE_IDENTIFIER = com.criptext.mail.NotificationExtension;
@@ -3607,7 +3607,7 @@
36073607
CODE_SIGN_IDENTITY = "iPhone Developer";
36083608
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
36093609
CODE_SIGN_STYLE = Automatic;
3610-
CURRENT_PROJECT_VERSION = 3;
3610+
CURRENT_PROJECT_VERSION = 2;
36113611
DEVELOPMENT_TEAM = 65NU4336S4;
36123612
FRAMEWORK_SEARCH_PATHS = (
36133613
"$(inherited)",
@@ -3616,7 +3616,7 @@
36163616
INFOPLIST_FILE = NotificationExtension/Info.plist;
36173617
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
36183618
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
3619-
MARKETING_VERSION = 1.2.2;
3619+
MARKETING_VERSION = 1.2.3;
36203620
MTL_FAST_MATH = YES;
36213621
PRODUCT_BUNDLE_IDENTIFIER = com.criptext.mail.NotificationExtension;
36223622
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -3640,7 +3640,7 @@
36403640
CODE_SIGN_IDENTITY = "iPhone Developer";
36413641
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
36423642
CODE_SIGN_STYLE = Automatic;
3643-
CURRENT_PROJECT_VERSION = 3;
3643+
CURRENT_PROJECT_VERSION = 2;
36443644
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
36453645
DEVELOPMENT_TEAM = 65NU4336S4;
36463646
FRAMEWORK_SEARCH_PATHS = (
@@ -3650,7 +3650,7 @@
36503650
INFOPLIST_FILE = NotificationExtension/Info.plist;
36513651
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
36523652
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
3653-
MARKETING_VERSION = 1.2.2;
3653+
MARKETING_VERSION = 1.2.3;
36543654
MTL_FAST_MATH = YES;
36553655
PRODUCT_BUNDLE_IDENTIFIER = com.criptext.mail.support.NotificationExtension;
36563656
PRODUCT_NAME = "$(TARGET_NAME)";

iOS-Email-Client/AsyncTasks/RestoreDBAsyncTask.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ class RestoreDBAsyncTask {
4040
return
4141
}
4242

43+
DBManager.update(account: account, defaultAddressId: metadata.defaultAddressId ?? 0)
44+
4345
line = streamReader.nextLine()
4446
while line != nil {
4547
guard let row = Utils.convertToDictionary(text: line!) else {

iOS-Email-Client/Constants.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,5 +286,5 @@ struct Constants {
286286
return customerType == 0
287287
}
288288

289-
static let adminUrl = "https://admin.criptext.com/?#/account/billing"
289+
static let adminUrl = "\(Env.adminURL)/?#/account/billing"
290290
}

iOS-Email-Client/Controllers/EmailDetailViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ extension EmailDetailViewController: EmailTableViewCellDelegate {
357357
}
358358

359359
func tableViewCellDidTapLink(url: String) {
360-
if (myAccount.customerType != Account.CustomerType.enterprise.id && url == "https://admin.criptext.com/?#/account/billing") {
360+
if (myAccount.customerType != Account.CustomerType.enterprise.id && url == Constants.adminUrl) {
361361
joinPlus()
362362
return
363363
}

iOS-Email-Client/Controllers/InboxViewController.swift

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -740,17 +740,13 @@ extension InboxViewController{
740740
}
741741

742742
@IBAction func didPressComposer(_ sender: UIButton) {
743-
let storyboard = UIStoryboard(name: "Main", bundle: nil)
744-
745-
let navComposeVC = storyboard.instantiateViewController(withIdentifier: "NavigationComposeViewController") as! UINavigationController
746-
let snackVC = SnackbarController(rootViewController: navComposeVC)
747-
let composerVC = navComposeVC.viewControllers.first as! ComposeViewController
748-
composerVC.delegate = self
749-
snackVC.modalPresentationStyle = .fullScreen
750-
751743
APIManager.postUserEvent(event: Int(Event.UserEvent.openComposer.rawValue), token: myAccount.jwt, completion: {_ in })
752-
753-
self.present(snackVC, animated: true, completion: nil)
744+
let composerData = ComposerData()
745+
if myAccount.defaultAddressId != 0,
746+
let existingAlias = DBManager.getAlias(rowId: myAccount.defaultAddressId, account: myAccount) {
747+
composerData.initAlias = existingAlias
748+
}
749+
openComposer(composerData: composerData, files: List<File>())
754750
}
755751

756752
func swapMailbox(labelId: Int, sender: Any?, force: Bool = false){

iOS-Email-Client/Controllers/Login/CreatingAccountViewController.swift

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,16 +104,19 @@ class CreatingAccountViewController: UIViewController{
104104
}
105105

106106
func parseAddresses(addresses: [[String: Any]], account: Account) {
107-
let aliasesPairArray = addresses.map({aliasesDomainFromDictionary(data: $0, account: account)})
107+
let (aliasesPairArray) = addresses.map({aliasesDomainFromDictionary(data: $0, account: account)})
108108
for pair in aliasesPairArray {
109109
if pair.0.name != Env.plainDomain {
110110
DBManager.store(pair.0)
111111
}
112112
DBManager.store(aliases: pair.1)
113+
if let defaultAddressId = pair.2 {
114+
DBManager.update(account: account, defaultAddressId: defaultAddressId)
115+
}
113116
}
114117
}
115118

116-
func aliasesDomainFromDictionary(data: [String: Any], account: Account) -> (CustomDomain, [Alias]) {
119+
func aliasesDomainFromDictionary(data: [String: Any], account: Account) -> (CustomDomain, [Alias], Int?) {
117120
let aliases = data["aliases"] as! [[String: Any]]
118121
let domainData = data["domain"] as! [String: Any]
119122
let domainName = domainData["name"] as! String
@@ -124,9 +127,17 @@ class CreatingAccountViewController: UIViewController{
124127
domain.validated = domainVerified == 1 ? true : false
125128
domain.account = account
126129

127-
let aliasesArray: [Alias] = aliases.map({Alias.aliasFromDictionary(aliasData: $0, domainName: domainName, account: account)})
130+
var defaultAddressId: Int? = nil
131+
let aliasesArray: [Alias] = aliases.map { aliasObj in
132+
let alias = Alias.aliasFromDictionary(aliasData: aliasObj, domainName: domainName, account: account)
133+
if let isDefault = aliasObj["default"] as? Int,
134+
isDefault == 1 {
135+
defaultAddressId = alias.rowId
136+
}
137+
return alias
138+
}
128139

129-
return (domain, aliasesArray)
140+
return (domain, aliasesArray, defaultAddressId)
130141
}
131142

132143
func sendKeysRequest(){

iOS-Email-Client/Controllers/MembershipWebViewController.swift

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,21 @@ protocol MembershipWebViewControllerDelegate: class {
1414
}
1515

1616
class MembershipWebViewController: UIViewController {
17+
18+
enum Kind {
19+
case plus
20+
case addresses
21+
22+
func getUrl(jwt: String) -> URL {
23+
switch(self) {
24+
case .plus:
25+
return URL(string: "\(Env.adminURL)/?#/account/billing?lang=\(Env.language)&token=\(jwt)")!
26+
case .addresses:
27+
return URL(string: "\(Env.adminURL)/?#/addresses?lang=\(Env.language)&token=\(jwt)")!
28+
}
29+
}
30+
}
31+
1732
@IBOutlet weak var webview: WKWebView!
1833
@IBOutlet weak var loaderView: UIActivityIndicatorView!
1934
@IBOutlet weak var failureWrapperView: UIView!
@@ -22,8 +37,8 @@ class MembershipWebViewController: UIViewController {
2237

2338
var delegate: MembershipWebViewControllerDelegate? = nil
2439
var initialTitle = String.localize("JOIN_PLUS")
25-
var sectionDescription = String.localize("SOMETHING_WRONG")
2640
var accountJWT: String = ""
41+
var kind: Kind = .plus
2742

2843
override func viewDidLoad() {
2944
super.viewDidLoad()
@@ -42,7 +57,7 @@ class MembershipWebViewController: UIViewController {
4257

4358
webview.navigationDelegate = self
4459

45-
let url = URL(string: "https://admin.criptext.com/?#/account/billing?lang=\(Env.language)&token=\(accountJWT)")!
60+
let url = kind.getUrl(jwt: self.accountJWT)
4661
webview.load(URLRequest(url: url))
4762

4863
webview.allowsBackForwardNavigationGestures = true
@@ -68,7 +83,7 @@ class MembershipWebViewController: UIViewController {
6883
func showFailureView() {
6984
loaderView.isHidden = true
7085
loaderView.stopAnimating()
71-
failureTitleView.text = sectionDescription
86+
failureTitleView.text = String.localize("SOMETHING_WRONG")
7287
failureDescView.text = String.localize("CONNECTION_LOST")
7388
failureWrapperView.isHidden = false
7489
webview.isHidden = true

0 commit comments

Comments
 (0)