Skip to content

Commit a78662a

Browse files
authored
Merge pull request #150 from Hirobreak/present
Multiple Fixes
2 parents a482447 + d87e96c commit a78662a

File tree

8 files changed

+69
-56
lines changed

8 files changed

+69
-56
lines changed

Cartfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ github "Criptext/MIBadgeButton-Swift" ~> 0.8
1515
github "cjwirth/RichEditorView"
1616
github "hackiftekhar/IQKeyboardManager"
1717
github "Criptext/UIImageView-Letters" ~> 1.1.5
18-
github "ephread/Instructions" ~> 1.2.0
18+
github "ephread/Instructions" ~> 1.2.0
19+
github "malcommac/UIWindowTransitions"

Cartfile.resolved

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ github "cjwirth/RichEditorView" "5.0.0"
1212
github "danieltigse/CLTokenInputView" "2.7.0"
1313
github "ephread/Instructions" "1.2.0"
1414
github "hackiftekhar/IQKeyboardManager" "v6.1.1"
15+
github "malcommac/UIWindowTransitions" "0.1.1"
1516
github "misterwell/MMMaterialDesignSpinner" "0.2.5"
1617
github "realm/realm-cocoa" "v3.7.5"
1718
github "rs/SDWebImage" "4.4.2"

iOS-Email-Client.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@
211211
7CCC82F12125E83F00D33F84 /* Protobuf.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CD4A43A21111DE400A40C74 /* Protobuf.framework */; };
212212
7CCC82F22125E83F00D33F84 /* Fabric.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41F3A277207C6470004BDF90 /* Fabric.framework */; };
213213
7CCC82F32125E83F00D33F84 /* Crashlytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41F3A275207C6466004BDF90 /* Crashlytics.framework */; };
214+
7CCC82F72126155F00D33F84 /* UIWindowTransitions.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CCC82F62126155D00D33F84 /* UIWindowTransitions.framework */; };
214215
7CD4A43221111DCF00A40C74 /* GoogleToolboxForMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CD4A42B21111DCD00A40C74 /* GoogleToolboxForMac.framework */; };
215216
7CD4A43321111DCF00A40C74 /* FirebaseCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CD4A42C21111DCD00A40C74 /* FirebaseCore.framework */; };
216217
7CD4A43421111DCF00A40C74 /* FirebaseAnalytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CD4A42D21111DCE00A40C74 /* FirebaseAnalytics.framework */; };
@@ -457,6 +458,7 @@
457458
7CC44BE120FD583A004BF759 /* CreateCustomJSONFileTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateCustomJSONFileTests.swift; sourceTree = "<group>"; };
458459
7CC44BF020FEE1ED004BF759 /* AESCipherTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AESCipherTests.swift; sourceTree = "<group>"; };
459460
7CCA060C210B687200BC4CEF /* Dummy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Dummy.swift; sourceTree = "<group>"; };
461+
7CCC82F62126155D00D33F84 /* UIWindowTransitions.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIWindowTransitions.framework; path = Carthage/Build/iOS/UIWindowTransitions.framework; sourceTree = "<group>"; };
460462
7CD4A42B21111DCD00A40C74 /* GoogleToolboxForMac.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GoogleToolboxForMac.framework; sourceTree = "<group>"; };
461463
7CD4A42C21111DCD00A40C74 /* FirebaseCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseCore.framework; sourceTree = "<group>"; };
462464
7CD4A42D21111DCE00A40C74 /* FirebaseAnalytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseAnalytics.framework; sourceTree = "<group>"; };
@@ -501,6 +503,7 @@
501503
isa = PBXFrameworksBuildPhase;
502504
buildActionMask = 2147483647;
503505
files = (
506+
7CCC82F72126155F00D33F84 /* UIWindowTransitions.framework in Frameworks */,
504507
7C1E82BE2116A122007CA853 /* Instructions.framework in Frameworks */,
505508
41C9CC9720781CFB00B8994F /* UIImageView_Letters.framework in Frameworks */,
506509
41F3A276207C6466004BDF90 /* Crashlytics.framework in Frameworks */,
@@ -560,6 +563,7 @@
560563
2962C69A939AA368B015D288 /* Frameworks */ = {
561564
isa = PBXGroup;
562565
children = (
566+
7CCC82F62126155D00D33F84 /* UIWindowTransitions.framework */,
563567
7C1E82BF2116A12B007CA853 /* InstructionsAppExtensions.framework */,
564568
7C1E82BD2116A122007CA853 /* Instructions.framework */,
565569
7CD4A4442111268900A40C74 /* libc++.tbd */,
@@ -1122,6 +1126,7 @@
11221126
"$(SRCROOT)/Carthage/Build/iOS/UIImageView_Letters.framework",
11231127
"$(SRCROOT)/Carthage/Build/iOS/Motion.framework",
11241128
"$(SRCROOT)/Carthage/Build/iOS/Instructions.framework",
1129+
"$(SRCROOT)/Carthage/Build/iOS/UIWindowTransitions.framework",
11251130
);
11261131
name = "Run Script Framework";
11271132
outputPaths = (
@@ -1145,6 +1150,7 @@
11451150
"$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/UIImageView_Letters.framework",
11461151
"$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Motion.framework",
11471152
"$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Instructions.framework",
1153+
"$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/UIWindowTransitions.framework",
11481154
);
11491155
runOnlyForDeploymentPostprocessing = 0;
11501156
shellPath = /bin/sh;

iOS-Email-Client/Controllers/ComposeViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class ComposeViewController: UIViewController {
3434
let ENTER_LINE_HEIGHT : CGFloat = 28.0
3535
let TOOLBAR_MARGIN_HEIGHT = 25
3636
let COMPOSER_MIN_HEIGHT = 150
37-
let PASSWORD_POPUP_HEIGHT = 406
37+
let PASSWORD_POPUP_HEIGHT = 335
3838

3939
@IBOutlet weak var toField: CLTokenInputView!
4040
@IBOutlet weak var ccField: CLTokenInputView!

iOS-Email-Client/Controllers/EmailSetPasswordViewController.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ protocol EmailSetPasswordDelegate {
1414
}
1515

1616
class EmailSetPasswordViewController: BaseUIPopover {
17+
let MIN_PASS_LENGTH = 3
1718
@IBOutlet weak var passwordTextField: TextField!
1819
@IBOutlet weak var repeatPasswordTextField: TextField!
1920
@IBOutlet weak var noPasswordMessageLabel: UILabel!
@@ -58,11 +59,13 @@ class EmailSetPasswordViewController: BaseUIPopover {
5859
@IBAction func onSetPress(_ sender: Any) {
5960
let passwordEnabled = passwordTextField.isEnabled
6061
let password = passwordTextField.text!
61-
guard (!passwordEnabled || (password.count > 4 && password == repeatPasswordTextField.text)) else {
62-
if(password.count > 4){
63-
repeatPasswordTextField.detail = "Passwords don’t match"
62+
guard (!passwordEnabled || (password.count >= MIN_PASS_LENGTH && password == repeatPasswordTextField.text)) else {
63+
repeatPasswordTextField.detail = ""
64+
passwordTextField.detail = ""
65+
if (password.count >= MIN_PASS_LENGTH) {
66+
repeatPasswordTextField.detail = "Passphrases do not match"
6467
} else {
65-
passwordTextField.detail = "Use at least 5 characters"
68+
passwordTextField.detail = "Use at least 3 characters"
6669
}
6770
return
6871
}

iOS-Email-Client/Controllers/InboxViewController.swift

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -772,23 +772,33 @@ extension InboxViewController: InboxTableViewCellDelegate, UITableViewDelegate {
772772

773773
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
774774

775-
guard mailboxData.selectedLabel != SystemLabel.trash.id else {
775+
guard mailboxData.selectedLabel != SystemLabel.trash.id && mailboxData.selectedLabel != SystemLabel.spam.id && mailboxData.selectedLabel != SystemLabel.draft.id else {
776776
return []
777777
}
778778

779779
let trashAction = UITableViewRowAction(style: UITableViewRowActionStyle.normal, title: " ") { (action, index) in
780780
let thread = self.mailboxData.threads[indexPath.row]
781-
DBManager.setLabelsForEmail(thread.lastEmail, labels: [SystemLabel.trash.id])
782-
self.mailboxData.threads.remove(at: indexPath.row)
783-
self.tableView.deleteRows(at: [indexPath], with: .fade)
784-
self.updateBadges()
785-
self.showNoThreadsView(self.mailboxData.reachedEnd && self.mailboxData.threads.isEmpty)
781+
self.moveSingleThreadTrash(threadId: thread.threadId)
786782
}
787783

788784
trashAction.backgroundColor = UIColor(patternImage: #imageLiteral(resourceName: "trash-action"))
789785

790786
return [trashAction];
791787
}
788+
789+
func moveSingleThreadTrash(threadId: String){
790+
let eventData = EventData.Peer.ThreadLabels(threadIds: [threadId], labelsAdded: [SystemLabel.trash.description], labelsRemoved: [])
791+
792+
APIManager.postPeerEvent(["params": eventData.asDictionary(), "cmd": Event.Peer.threadsLabels.rawValue], token: myAccount.jwt) { (error) in
793+
guard error == nil else {
794+
self.showAlert("Something went wrong", message: "Unable to set labels. Please try again", style: .alert)
795+
return
796+
}
797+
DBManager.addRemoveLabelsForThreads(threadId, addedLabelIds: [SystemLabel.trash.id], removedLabelIds: [], currentLabel: self.mailboxData.selectedLabel)
798+
self.removeThreads(threadIds: [threadId])
799+
}
800+
}
801+
792802

793803
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
794804
return indexPath.row != mailboxData.threads.count && !mailboxData.isCustomEditing && !mailboxData.searchMode
@@ -900,7 +910,10 @@ extension InboxViewController {
900910
continue
901911
}
902912
indexesToRemove.append(IndexPath(row: index, section: 0))
903-
mailboxData.threads.remove(at: index)
913+
}
914+
let sortedIndexPaths = indexesToRemove.sorted(by: {$0.row > $1.row})
915+
for path in sortedIndexPaths {
916+
mailboxData.threads.remove(at: path.row)
904917
}
905918
tableView.deleteRows(at: indexesToRemove, with: .left)
906919
updateBadges()
@@ -1048,9 +1061,9 @@ extension InboxViewController: ComposerSendMailDelegate {
10481061
reloadIfSentMailbox(email: email)
10491062
let sendMailAsyncTask = SendMailAsyncTask(account: myAccount, email: email)
10501063
sendMailAsyncTask.start { data in
1051-
guard let key = data as? Int,
1064+
guard let key = data,
10521065
let newEmail = DBManager.getMail(key: key) else {
1053-
self.showAlert("Network Error", message: "Unable to send email. Don't worry, it will be automatically resend.", style: .alert)
1066+
self.showAlert("Network Error", message: "Unable to send email. Don't worry, it will be automatically resent.", style: .alert)
10541067
self.hideSnackbar()
10551068
return
10561069
}

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

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import Foundation
1010
import SignalProtocolFramework
1111
import FirebaseMessaging
12+
import UIWindowTransitions
1213

1314
class CreatingAccountViewController: UIViewController{
1415

@@ -131,10 +132,11 @@ class CreatingAccountViewController: UIViewController{
131132
}
132133
delegate.createSystemLabels()
133134
let mailboxVC = delegate.initMailboxRootVC(nil, activeAccount)
134-
present(mailboxVC, animated: true) { [weak self] in
135-
delegate.replaceRootViewController(mailboxVC)
136-
self?.removeFromParentViewController()
137-
}
135+
var options = UIWindow.TransitionOptions()
136+
options.direction = .toTop
137+
options.duration = 0.4
138+
options.style = .easeOut
139+
UIApplication.shared.keyWindow?.setRootViewController(mailboxVC, options: options)
138140
}
139141

140142
func animateProgress(_ value: Double, _ duration: Double, completion: @escaping () -> Void){

0 commit comments

Comments
 (0)