aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-09-26 20:27:33 +0200
committerChristian Schneppe <christian@pix-art.de>2018-09-26 20:27:33 +0200
commitb2a122ec71c8c2af58ea6d99806d07d76efcb0f4 (patch)
tree5cb02e46240aaa316bbfa5d6d73d4ab1f7c7053a /src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java
parent3c71297965573ffbd3eb423296790b416dc9ce05 (diff)
show conversation media in contact/conference details
Diffstat (limited to 'src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java')
-rw-r--r--src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java b/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java
index 94710b86e..54d99ec43 100644
--- a/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java
+++ b/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java
@@ -35,6 +35,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.UUID;
import java.util.concurrent.CopyOnWriteArrayList;
import de.pixart.messenger.Config;
@@ -787,6 +788,29 @@ public class DatabaseBackend extends SQLiteOpenHelper {
};
}
+ public List<FilePath> getRelativeFilePaths(Account account, Jid jid, int limit) {
+ SQLiteDatabase db = this.getReadableDatabase();
+ final String SQL = "select uuid,relativeFilePath from messages where type in (1,2) and conversationUuid=(select uuid from conversations where accountUuid=? and (contactJid=? or contactJid like ?)) order by timeSent desc";
+ final String[] args = {account.getUuid(), jid.asBareJid().toEscapedString(), jid.asBareJid().toEscapedString() + "/%"};
+ Cursor cursor = db.rawQuery(SQL + (limit > 0 ? " limit " + String.valueOf(limit) : ""), args);
+ List<FilePath> filesPaths = new ArrayList<>();
+ while (cursor.moveToNext()) {
+ filesPaths.add(new FilePath(cursor.getString(0), cursor.getString(1)));
+ }
+ cursor.close();
+ return filesPaths;
+ }
+
+ public static class FilePath {
+ public final UUID uuid;
+ public final String path;
+
+ private FilePath(String uuid, String path) {
+ this.uuid = UUID.fromString(uuid);
+ this.path = path;
+ }
+ }
+
public Conversation findConversation(final Account account, final Jid contactJid) {
SQLiteDatabase db = this.getReadableDatabase();
String[] selectionArgs = {account.getUuid(),