diff options
author | Christian Schneppe <christian@pix-art.de> | 2018-05-02 21:50:05 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2018-05-02 21:50:05 +0200 |
commit | 66835b12c35dad7a8ddbe816556635635b836e95 (patch) | |
tree | f870d5a7d98a42ddb0707edf8d55c2b6307293ad /src/main/java/de/pixart/messenger/ui/SearchActivity.java | |
parent | 536106b0793495a3635d641c78cedf65ec1723f7 (diff) |
search term parsing + highlighting
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui/SearchActivity.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/SearchActivity.java | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/SearchActivity.java b/src/main/java/de/pixart/messenger/ui/SearchActivity.java index 298bca6c0..7ce4ddc98 100644 --- a/src/main/java/de/pixart/messenger/ui/SearchActivity.java +++ b/src/main/java/de/pixart/messenger/ui/SearchActivity.java @@ -61,6 +61,7 @@ import de.pixart.messenger.ui.util.DateSeparator; import de.pixart.messenger.ui.util.Drawable; import de.pixart.messenger.ui.util.ListViewUtils; import de.pixart.messenger.ui.util.ShareUtil; +import de.pixart.messenger.utils.FtsUtils; import de.pixart.messenger.utils.MessageUtils; import static de.pixart.messenger.ui.util.SoftKeyboardUtils.hideSoftKeyboard; @@ -72,7 +73,7 @@ public class SearchActivity extends XmppActivity implements TextWatcher, OnSearc private MessageAdapter messageListAdapter; private final List<Message> messages = new ArrayList<>(); private WeakReference<Message> selectedMessageReference = new WeakReference<>(null); - private final ChangeWatcher<String> currentSearch = new ChangeWatcher<>(); + private final ChangeWatcher<List<String>> currentSearch = new ChangeWatcher<>(); @Override public void onCreate(final Bundle savedInstanceState) { @@ -150,13 +151,10 @@ public class SearchActivity extends XmppActivity implements TextWatcher, OnSearc } private void quote(Message message) { - String text = MessageUtils.prepareQuote(message); - final Conversational conversational = message.getConversation(); - switchToConversationAndQuote(wrap(message.getConversation()), text); + switchToConversationAndQuote(wrap(message.getConversation()), MessageUtils.prepareQuote(message)); } private Conversation wrap(Conversational conversational) { - final Conversation conversation; if (conversational instanceof Conversation) { return (Conversation) conversational; } else { @@ -202,12 +200,12 @@ public class SearchActivity extends XmppActivity implements TextWatcher, OnSearc @Override public void afterTextChanged(Editable s) { - final String term = s.toString().trim(); + final List<String> term = FtsUtils.parse(s.toString().trim()); if (!currentSearch.watch(term)) { return; } - if (term.length() > 0) { - xmppConnectionService.search(s.toString().trim(), this); + if (term.size() > 0) { + xmppConnectionService.search(term, this); } else { MessageSearchTask.cancelRunningTasks(); this.messages.clear(); @@ -218,7 +216,7 @@ public class SearchActivity extends XmppActivity implements TextWatcher, OnSearc } @Override - public void onSearchResultsAvailable(String term, List<Message> messages) { + public void onSearchResultsAvailable(List<String> term, List<Message> messages) { runOnUiThread(() -> { this.messages.clear(); messageListAdapter.setHighlightedTerm(term); |