Merge branch 'charlesmchen/noteToSelf2'

pull/1/head
Matthew Chen 6 years ago
commit 8d8469d1ca

@ -1,5 +1,5 @@
//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
//
#import "ContactsViewHelper.h"
@ -206,7 +206,12 @@ NS_ASSUME_NONNULL_BEGIN
- (NSArray<SignalAccount *> *)signalAccountsMatchingSearchString:(NSString *)searchText
{
return [self.conversationSearcher filterSignalAccounts:self.signalAccounts withSearchText:searchText];
// Check for matches against "Note to Self".
NSMutableArray<SignalAccount *> *signalAccountsToSearch = [self.signalAccounts mutableCopy];
SignalAccount *selfAccount = [[SignalAccount alloc] initWithRecipientId:self.localNumber];
[signalAccountsToSearch addObject:selfAccount];
return [self.conversationSearcher filterSignalAccounts:signalAccountsToSearch
withSearchText:searchText];
}
- (BOOL)doesContact:(Contact *)contact matchSearchTerm:(NSString *)searchTerm

@ -1,5 +1,5 @@
//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
//
import Foundation
@ -102,6 +102,14 @@ public class SearchResultSet {
@objc
public class ConversationSearcher: NSObject {
// MARK: - Dependencies
private var tsAccountManager: TSAccountManager {
return TSAccountManager.sharedInstance()
}
// MARK: -
private let finder: FullTextSearchFinder
@objc
@ -222,12 +230,25 @@ public class ConversationSearcher: NSObject {
private lazy var contactThreadSearcher: Searcher<TSContactThread> = Searcher { (contactThread: TSContactThread) in
let recipientId = contactThread.contactIdentifier()
return self.indexingString(recipientId: recipientId)
return self.conversationIndexingString(recipientId: recipientId)
}
private lazy var signalAccountSearcher: Searcher<SignalAccount> = Searcher { (signalAccount: SignalAccount) in
let recipientId = signalAccount.recipientId
return self.indexingString(recipientId: recipientId)
return self.conversationIndexingString(recipientId: recipientId)
}
private func conversationIndexingString(recipientId: String) -> String {
var result = self.indexingString(recipientId: recipientId)
if let localNumber = tsAccountManager.localNumber() {
if localNumber == recipientId {
let noteToSelfLabel = NSLocalizedString("NOTE_TO_SELF", comment: "Label for 1:1 conversation with yourself.")
result += " \(noteToSelfLabel)"
}
}
return result
}
private var contactsManager: OWSContactsManager {

@ -1,5 +1,5 @@
//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
//
import Foundation
@ -30,7 +30,6 @@ public class Searcher<T> {
public func matches(item: T, query: String) -> Bool {
let itemString = normalize(string: indexer(item))
return stem(string: query).map { queryStem in
return itemString.contains(queryStem)
}.reduce(true) { $0 && $1 }

@ -169,7 +169,16 @@ public class FullTextSearchFinder: NSObject {
private static let contactThreadIndexer: SearchIndexer<TSContactThread> = SearchIndexer { (contactThread: TSContactThread, transaction: YapDatabaseReadTransaction) in
let recipientId = contactThread.contactIdentifier()
return recipientIndexer.index(recipientId, transaction: transaction)
var result = recipientIndexer.index(recipientId, transaction: transaction)
if let localNumber = tsAccountManager.storedOrCachedLocalNumber(transaction) {
if localNumber == recipientId {
let noteToSelfLabel = NSLocalizedString("NOTE_TO_SELF", comment: "Label for 1:1 conversation with yourself.")
result += " \(noteToSelfLabel)"
}
}
return result
}
private static let recipientIndexer: SearchIndexer<String> = SearchIndexer { (recipientId: String, transaction: YapDatabaseReadTransaction) in
@ -190,16 +199,7 @@ public class FullTextSearchFinder: NSObject {
return String(String.UnicodeScalarView(digitScalars))
}(recipientId)
var result = "\(recipientId) \(nationalNumber) \(displayName)"
if let localNumber = tsAccountManager.storedOrCachedLocalNumber(transaction) {
if localNumber == recipientId {
let noteToSelfLabel = NSLocalizedString("NOTE_TO_SELF", comment: "Label for 1:1 conversation with yourself.")
result += " \(noteToSelfLabel)"
}
}
return result
return "\(recipientId) \(nationalNumber) \(displayName)"
}
private static let messageIndexer: SearchIndexer<TSMessage> = SearchIndexer { (message: TSMessage, transaction: YapDatabaseReadTransaction) in

Loading…
Cancel
Save