diff --git a/enzevalos_iphone/InboxViewController.swift b/enzevalos_iphone/InboxViewController.swift index 50cbd5ab302260fa396a8fcac6006942dadc5b4c..360d14698291866123e1e3bfda298c3f62d6dae2 100644 --- a/enzevalos_iphone/InboxViewController.swift +++ b/enzevalos_iphone/InboxViewController.swift @@ -283,12 +283,15 @@ class InboxViewController: UITableViewController, InboxCellDelegator { { return false ///Case Mail has no body/subject } - //var terms = searchText.characters.split(separator: " ") let terms = searchText.lowercased().components(separatedBy : " ") var found = true for t in terms { - found = found && content!.lowercased().contains(t) + //print("term is: |"+t+"|") + if !(t == "") + { + found = found && content!.lowercased().contains(t) + } } return found } @@ -301,12 +304,12 @@ class InboxViewController: UITableViewController, InboxCellDelegator { */ private func _filterContentForSearchText(_ searchText: String, scope: Int = 0) { var records = [KeyRecord]() - if scope == 0 || scope == 3 { + if scope == 0 { records += folder.records.filter({ (record: KeyRecord) -> Bool in return containsSearchTerms(content: record.name, searchText: searchText) }) } - if scope == 1 || scope == 3 { + if scope == 1 { records += folder.records.filter({ (record: KeyRecord) -> Bool in let mails = record.inboxMails return mails.filter({ (mail: PersistentMail) -> Bool in @@ -314,7 +317,7 @@ class InboxViewController: UITableViewController, InboxCellDelegator { }).count > 0 }) } - if scope == 2 || scope == 3 { + if scope == 2 { records += folder.records.filter({ (record: KeyRecord) -> Bool in let mails = record.inboxMails return mails.filter({ (mail: PersistentMail) -> Bool in @@ -327,6 +330,26 @@ class InboxViewController: UITableViewController, InboxCellDelegator { }).count > 0 }) } + if scope == 3 + { + + records += folder.records.filter({ (record: KeyRecord) -> Bool in + if containsSearchTerms(content: record.name, searchText: searchText) + { + return true + } + let mails = record.inboxMails + return mails.filter({ (mail: PersistentMail) -> Bool in + if let decryptedBody = mail.decryptedBody { + return containsSearchTerms(content: decryptedBody+(mail.subject ?? "")+record.name, searchText: searchText) + } else if !mail.isEncrypted { + return containsSearchTerms(content: (mail.body ?? "") + (mail.subject ?? "")+record.name, searchText: searchText) + } + return false + }).count > 0 + }) + } + filteredRecords = records.unique.sorted() tableView.reloadData()