aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-04-30 23:38:29 +0200
committerChristian Schneppe <christian@pix-art.de>2018-04-30 23:38:29 +0200
commitce2ba629bd91897f74e2d1dee38f90671b0f28f8 (patch)
tree678491f31abef9c735e9bada9ba20204c5cd1c2f /src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java
parent032fbad95ce7384de922d7c3c9ac53303ab11732 (diff)
very much unoptimized search functionality
Diffstat (limited to 'src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java')
-rw-r--r--src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java65
1 files changed, 34 insertions, 31 deletions
diff --git a/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java b/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java
index 480f2d941..d55f36bdf 100644
--- a/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java
+++ b/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java
@@ -717,40 +717,43 @@ public class DatabaseBackend extends SQLiteOpenHelper {
return list;
}
+ public Cursor getMessageSearchCursor(String term) {
+ SQLiteDatabase db = this.getReadableDatabase();
+ String SQL = "SELECT " + Message.TABLENAME + ".*," + Conversation.TABLENAME + '.' + Conversation.CONTACTJID + ',' + Conversation.TABLENAME + '.' + Conversation.ACCOUNT + ',' + Conversation.TABLENAME + '.' + Conversation.MODE + " FROM " + Message.TABLENAME + " join " + Conversation.TABLENAME + " on " + Message.TABLENAME + '.' + Message.CONVERSATION + '=' + Conversation.TABLENAME + '.' + Conversation.UUID + " where " + Message.BODY + " LIKE ? limit 200";
+ return db.rawQuery(SQL, new String[]{'%' + term + '%'});
+ }
+
public Iterable<Message> getMessagesIterable(final Conversation conversation) {
- return new Iterable<Message>() {
- @Override
- public Iterator<Message> iterator() {
- class MessageIterator implements Iterator<Message> {
- SQLiteDatabase db = getReadableDatabase();
- String[] selectionArgs = {conversation.getUuid()};
- Cursor cursor = db.query(Message.TABLENAME, null, Message.CONVERSATION
- + "=?", selectionArgs, null, null, Message.TIME_SENT
- + " ASC", null);
-
- public MessageIterator() {
- cursor.moveToFirst();
- }
-
- @Override
- public boolean hasNext() {
- return !cursor.isAfterLast();
- }
-
- @Override
- public Message next() {
- Message message = Message.fromCursor(cursor, conversation);
- cursor.moveToNext();
- return message;
- }
-
- @Override
- public void remove() {
- throw new UnsupportedOperationException();
- }
+ return () -> {
+ class MessageIterator implements Iterator<Message> {
+ SQLiteDatabase db = getReadableDatabase();
+ String[] selectionArgs = {conversation.getUuid()};
+ Cursor cursor = db.query(Message.TABLENAME, null, Message.CONVERSATION
+ + "=?", selectionArgs, null, null, Message.TIME_SENT
+ + " ASC", null);
+
+ public MessageIterator() {
+ cursor.moveToFirst();
+ }
+
+ @Override
+ public boolean hasNext() {
+ return !cursor.isAfterLast();
+ }
+
+ @Override
+ public Message next() {
+ Message message = Message.fromCursor(cursor, conversation);
+ cursor.moveToNext();
+ return message;
+ }
+
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
}
- return new MessageIterator();
}
+ return new MessageIterator();
};
}