Skip to content

Commit 85924f2

Browse files
authored
Merge pull request #146 from Hirobreak/primarykey
Primary Key Swap
2 parents d983300 + 91c7c39 commit 85924f2

27 files changed

+248
-168
lines changed

iOS-Email-Client/AppDelegate.swift

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
3232
UIApplication.shared.statusBarStyle = .lightContent
3333

3434
let config = Realm.Configuration(
35-
// Set the new schema version. This must be greater than the previously used
36-
// version (if you've never set a schema version before, the version is 0).
37-
schemaVersion: 1,
38-
39-
// Set the block which will be called automatically when opening a Realm with
40-
// a schema version lower than the one set above
35+
schemaVersion: 2,
4136
migrationBlock: { migration, oldSchemaVersion in
42-
// We haven’t migrated anything yet, so oldSchemaVersion == 0
43-
if (oldSchemaVersion < 1) {
44-
// Nothing to do!
45-
// Realm will automatically detect new properties and removed properties
46-
// And will update the schema on disk automatically
37+
if (oldSchemaVersion == 1) {
38+
4739
}
4840
})
4941

@@ -190,9 +182,9 @@ extension AppDelegate: UNUserNotificationCenterDelegate {
190182

191183
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
192184
let userInfo = response.notification.request.content.userInfo
193-
let threadId = userInfo["threadId"] as! String
194185

195-
guard let inboxVC = getInboxVC() else {
186+
guard let threadId = userInfo["threadId"] as? String,
187+
let inboxVC = getInboxVC() else {
196188
return
197189
}
198190
inboxVC.goToEmailDetail(threadId: threadId)
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"images" : [
3+
{
4+
"idiom" : "universal",
5+
"filename" : "beta.png",
6+
"scale" : "1x"
7+
},
8+
{
9+
"idiom" : "universal",
10+
"filename" : "betax2.png",
11+
"scale" : "2x"
12+
},
13+
{
14+
"idiom" : "universal",
15+
"filename" : "betax3.png",
16+
"scale" : "3x"
17+
}
18+
],
19+
"info" : {
20+
"version" : 1,
21+
"author" : "xcode"
22+
}
23+
}
2.98 KB
Loading
7 KB
Loading
11.4 KB
Loading

iOS-Email-Client/AsyncTasks/SendMailAsyncTask.swift

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,14 @@ class SendMailAsyncTask {
9494
return (guestEmails, criptextEmails)
9595
}
9696

97-
func start(completion: @escaping ((Error?, Any?) -> Void)){
97+
func start(completion: @escaping ((Int?) -> Void)){
9898
let queue = DispatchQueue(label: "com.email.sendmail", qos: .background, attributes: .concurrent)
9999
queue.async {
100100
self.getSessionAndEncrypt(queue: queue, completion: completion)
101101
}
102102
}
103103

104-
private func getSessionAndEncrypt(queue: DispatchQueue, completion: @escaping ((Error?, Any?) -> Void)){
104+
private func getSessionAndEncrypt(queue: DispatchQueue, completion: @escaping ((Int?) -> Void)){
105105
let myAccount = DBManager.getAccountByUsername(self.username)!
106106
var recipients = [String]()
107107
var knownAddresses = [String: [Int32]]()
@@ -129,8 +129,8 @@ class SendMailAsyncTask {
129129
APIManager.getKeysRequest(params, token: myAccount.jwt, queue: queue) { (err, response) in
130130
let myAccount = DBManager.getAccountByUsername(self.username)!
131131
guard let keysArray = response as? [[String: Any]] else {
132-
self.handleResponseInMainThread {
133-
completion(err, nil)
132+
DispatchQueue.main.async {
133+
completion(nil)
134134
}
135135
return
136136
}
@@ -198,7 +198,7 @@ class SendMailAsyncTask {
198198
return message.0
199199
}
200200

201-
private func sendMail(myAccount: Account, criptextEmails: [Any], queue: DispatchQueue, completion: @escaping ((Error?, Any?) -> Void)){
201+
private func sendMail(myAccount: Account, criptextEmails: [Any], queue: DispatchQueue, completion: @escaping ((Int?) -> Void)){
202202
let myAccount = DBManager.getAccountByUsername(self.username)!
203203
var requestParams = ["subject": subject] as [String : Any]
204204
if(!criptextEmails.isEmpty){
@@ -214,16 +214,17 @@ class SendMailAsyncTask {
214214
requestParams["threadId"] = thread
215215
}
216216
APIManager.postMailRequest(requestParams, token: myAccount.jwt, queue: queue) { (error, data) in
217-
if let error = error {
218-
self.handleResponseInMainThread {
217+
guard let updateData = data as? [String: Any] else {
218+
DispatchQueue.main.async {
219219
self.setEmailAsFailed()
220-
completion(error, nil)
220+
completion(nil)
221221
}
222222
return
223223
}
224-
self.updateEmailData(data)
225-
self.handleResponseInMainThread {
226-
completion(nil, data)
224+
let key = self.updateEmailData(updateData)
225+
DispatchQueue.main.async {
226+
DBManager.refresh()
227+
completion(key)
227228
}
228229
}
229230
}
@@ -235,16 +236,16 @@ class SendMailAsyncTask {
235236
DBManager.updateEmail(email, status: .fail)
236237
}
237238

238-
func updateEmailData(_ data : Any?){
239+
func updateEmailData(_ updateData : [String: Any]) -> Int? {
239240
guard let email = DBManager.getObject(emailRef) as? Email else {
240-
return
241+
return nil
241242
}
242-
let keysArray = data as! [String: Any]
243-
let key = keysArray["metadataKey"] as! Int
244-
let messageId = keysArray["messageId"] as! String
245-
let threadId = keysArray["threadId"] as! String
243+
let key = updateData["metadataKey"] as! Int
244+
let messageId = updateData["messageId"] as! String
245+
let threadId = updateData["threadId"] as! String
246246
DBManager.updateEmail(email, key: key, messageId: messageId, threadId: threadId)
247247
updateFiles(emailId: key)
248+
return key
248249
}
249250

250251
func updateFiles(emailId: Int){
@@ -256,12 +257,6 @@ class SendMailAsyncTask {
256257
}
257258
}
258259

259-
private func handleResponseInMainThread(completionHandler: @escaping () -> Void){
260-
DispatchQueue.main.async {
261-
completionHandler()
262-
}
263-
}
264-
265260
private class func buildAttachmentsHtml(attachments: [[String: Any]], keys: String?) -> String {
266261
guard !attachments.isEmpty,
267262
let fileKeys = keys else {

iOS-Email-Client/Base.lproj/Main.storyboard

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
<constraint firstAttribute="height" constant="1" id="BIA-wq-UjD"/>
4545
</constraints>
4646
</view>
47-
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Uhe-Qf-ZiZ" userLabel="To Container">
47+
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Uhe-Qf-ZiZ" userLabel="To Container">
4848
<rect key="frame" x="0.0" y="1" width="375" height="45"/>
4949
<subviews>
5050
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aVv-ct-ktg" userLabel="To Field" customClass="CLTokenInputView">
@@ -76,7 +76,7 @@
7676
<constraint firstAttribute="bottom" secondItem="cYK-my-H1N" secondAttribute="bottom" id="fXh-N6-RPi"/>
7777
</constraints>
7878
</view>
79-
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4oD-QO-TpV" userLabel="Cc Container">
79+
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4oD-QO-TpV" userLabel="Cc Container">
8080
<rect key="frame" x="0.0" y="46" width="375" height="0.0"/>
8181
<subviews>
8282
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yYI-7o-3ig" userLabel="Cc Field" customClass="CLTokenInputView">
@@ -98,7 +98,7 @@
9898
<constraint firstItem="yYI-7o-3ig" firstAttribute="leading" secondItem="4oD-QO-TpV" secondAttribute="leading" constant="5" id="i26-Dw-qlh"/>
9999
</constraints>
100100
</view>
101-
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ryC-74-B1a" userLabel="Bcc Container">
101+
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ryC-74-B1a" userLabel="Bcc Container">
102102
<rect key="frame" x="0.0" y="46" width="375" height="0.0"/>
103103
<subviews>
104104
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Hzf-3X-35E" userLabel="Bcc Field" customClass="CLTokenInputView">
@@ -1288,7 +1288,7 @@
12881288
<autoresizingMask key="autoresizingMask"/>
12891289
<subviews>
12901290
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Recovery Email" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ddn-zH-dU7">
1291-
<rect key="frame" x="27" y="11" width="117" height="23.5"/>
1291+
<rect key="frame" x="27" y="10" width="117" height="23.5"/>
12921292
<fontDescription key="fontDescription" name="NunitoSans-Regular" family="Nunito Sans" pointSize="17"/>
12931293
<color key="textColor" red="0.21568627450980393" green="0.22745098039215686" blue="0.27058823529411763" alpha="1" colorSpace="calibratedRGB"/>
12941294
<nil key="highlightedColor"/>

iOS-Email-Client/Constants.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import Foundation
1010

1111
struct Constants {
1212
static let MinCharactersPassword = 8
13-
static let domain = "@jigl.com"
13+
static let domain = "@criptext.com"
1414

1515
static let basePopoverHeight = 102
1616
static let labelPopoverHeight = 48

iOS-Email-Client/Controllers/ComposeViewController.swift

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ class ComposeViewController: UIViewController {
6868

6969
var activeAccount:Account!
7070

71-
var expandedBbcSpacing:CGFloat = 45
72-
var expandedCcSpacing:CGFloat = 45
71+
var expandedBbcSpacing: CGFloat = 45
72+
var expandedCcSpacing: CGFloat = 45
7373
var attachmentOptionsHeight: CGFloat = 110
7474

7575
var toolbarBottomConstraintInitialValue: CGFloat?
@@ -92,9 +92,6 @@ class ComposeViewController: UIViewController {
9292
var attachmentBarButton:MIBadgeButton!
9393

9494
var dismissTapGestureRecognizer: UITapGestureRecognizer!
95-
96-
let DOMAIN = "jigl.com"
97-
9895
var composerData = ComposerData()
9996
let fileManager = CriptextFileManager()
10097
let coachMarksController = CoachMarksController()
@@ -110,6 +107,7 @@ class ComposeViewController: UIViewController {
110107

111108
let defaults = UserDefaults.standard
112109
activeAccount = DBManager.getAccountByUsername(defaults.string(forKey: "activeAccount")!)
110+
fileManager.token = activeAccount.jwt
113111

114112
self.sendBarButton = UIBarButtonItem(image: Icon.send.image, style: .plain, target: self, action: #selector(didPressSend(_:)))
115113
self.sendSecureBarButton = UIBarButtonItem(image: Icon.send.image, style: .plain, target: self, action: #selector(didPressSend(_:)))
@@ -303,7 +301,7 @@ class ComposeViewController: UIViewController {
303301
let draft = Email()
304302
draft.status = .none
305303
draft.content = self.editorView.html
306-
let bodyWithoutHtml = self.editorView.text
304+
let bodyWithoutHtml = self.editorView.text.replaceNewLineCharater(separator: " ")
307305
draft.preview = String(bodyWithoutHtml.prefix(100))
308306
draft.unread = false
309307
draft.subject = self.subjectField.text ?? ""
@@ -333,7 +331,7 @@ class ComposeViewController: UIViewController {
333331
self.bccField.allTokens.forEach { (token) in
334332
self.fillEmailContacts(emailContacts: &emailContacts, token: token, emailDetail: draft, type: ContactType.bcc)
335333
}
336-
self.fillEmailContacts(emailContacts: &emailContacts, token: CLToken(displayText: "\(activeAccount.username)@\(DOMAIN)", context: nil), emailDetail: draft, type: ContactType.from)
334+
self.fillEmailContacts(emailContacts: &emailContacts, token: CLToken(displayText: "\(activeAccount.username)\(Constants.domain)", context: nil), emailDetail: draft, type: ContactType.from)
337335

338336
DBManager.store(emailContacts)
339337

@@ -414,19 +412,24 @@ class ComposeViewController: UIViewController {
414412
self.editorView.webView.endEditing(true)
415413
}
416414

417-
func collapseCC(_ flag:Bool){
415+
func collapseCC(_ shouldCollapse: Bool){
418416
//do not collapse if already collapsed
419-
if flag && self.bccHeightConstraint.constant == 0 {
417+
if shouldCollapse && self.bccHeightConstraint.constant == 0 {
420418
return
421419
}
422420
//do not expand if already expanded
423-
if !flag && self.bccHeightConstraint.constant > 0 {
421+
if !shouldCollapse && self.bccHeightConstraint.constant > 0 {
424422
return
425423
}
426424

427-
self.buttonCollapse.setImage(flag ? Icon.new_arrow.down.image : Icon.new_arrow.up.image, for: .normal)
428-
self.bccHeightConstraint.constant = flag ? 0 : self.expandedBbcSpacing
429-
self.ccHeightConstraint.constant = flag ? 0 : self.expandedCcSpacing
425+
if (shouldCollapse) {
426+
expandedCcSpacing = self.ccHeightConstraint.constant
427+
expandedBbcSpacing = self.bccHeightConstraint.constant
428+
}
429+
430+
self.buttonCollapse.setImage(shouldCollapse ? Icon.new_arrow.down.image : Icon.new_arrow.up.image, for: .normal)
431+
self.bccHeightConstraint.constant = shouldCollapse ? 0 : self.expandedBbcSpacing
432+
self.ccHeightConstraint.constant = shouldCollapse ? 0 : self.expandedCcSpacing
430433

431434
UIView.animate(withDuration: 0.5, animations: {
432435
self.view.layoutIfNeeded()

0 commit comments

Comments
 (0)