Show videos in media overview

Fixes #5941
Closes #6152
// FREEBIE
This commit is contained in:
haffenloher
2017-02-01 03:49:19 +01:00
committed by Moxie Marlinspike
parent 98d223f094
commit 83e31cac07
9 changed files with 50 additions and 48 deletions

View File

@@ -87,7 +87,7 @@ public class DatabaseFactory {
private final EncryptingSmsDatabase encryptingSms;
private final MmsDatabase mms;
private final AttachmentDatabase attachments;
private final ImageDatabase image;
private final MediaDatabase media;
private final ThreadDatabase thread;
private final CanonicalAddressDatabase address;
private final MmsAddressDatabase mmsAddress;
@@ -136,8 +136,8 @@ public class DatabaseFactory {
return getInstance(context).attachments;
}
public static ImageDatabase getImageDatabase(Context context) {
return getInstance(context).image;
public static MediaDatabase getMediaDatabase(Context context) {
return getInstance(context).media;
}
public static MmsAddressDatabase getMmsAddressDatabase(Context context) {
@@ -174,7 +174,7 @@ public class DatabaseFactory {
this.encryptingSms = new EncryptingSmsDatabase(context, databaseHelper);
this.mms = new MmsDatabase(context, databaseHelper);
this.attachments = new AttachmentDatabase(context, databaseHelper);
this.image = new ImageDatabase(context, databaseHelper);
this.media = new MediaDatabase(context, databaseHelper);
this.thread = new ThreadDatabase(context, databaseHelper);
this.address = CanonicalAddressDatabase.getInstance(context);
this.mmsAddress = new MmsAddressDatabase(context, databaseHelper);

View File

@@ -9,9 +9,9 @@ import org.thoughtcrime.securesms.attachments.Attachment;
import org.thoughtcrime.securesms.attachments.AttachmentId;
import org.thoughtcrime.securesms.attachments.DatabaseAttachment;
public class ImageDatabase extends Database {
public class MediaDatabase extends Database {
private final static String IMAGES_QUERY = "SELECT " + AttachmentDatabase.TABLE_NAME + "." + AttachmentDatabase.ROW_ID + ", "
private final static String MEDIA_QUERY = "SELECT " + AttachmentDatabase.TABLE_NAME + "." + AttachmentDatabase.ROW_ID + ", "
+ AttachmentDatabase.TABLE_NAME + "." + AttachmentDatabase.CONTENT_TYPE + ", "
+ AttachmentDatabase.TABLE_NAME + "." + AttachmentDatabase.THUMBNAIL_ASPECT_RATIO + ", "
+ AttachmentDatabase.TABLE_NAME + "." + AttachmentDatabase.UNIQUE_ID + ", "
@@ -28,23 +28,24 @@ public class ImageDatabase extends Database {
+ " ON " + AttachmentDatabase.TABLE_NAME + "." + AttachmentDatabase.MMS_ID + " = " + MmsDatabase.TABLE_NAME + "." + MmsDatabase.ID + " "
+ "WHERE " + AttachmentDatabase.MMS_ID + " IN (SELECT " + MmsSmsColumns.ID
+ " FROM " + MmsDatabase.TABLE_NAME
+ " WHERE " + MmsDatabase.THREAD_ID + " = ?) AND "
+ AttachmentDatabase.CONTENT_TYPE + " LIKE 'image/%' AND "
+ " WHERE " + MmsDatabase.THREAD_ID + " = ?) AND ("
+ AttachmentDatabase.CONTENT_TYPE + " LIKE 'image/%' OR "
+ AttachmentDatabase.CONTENT_TYPE + " LIKE 'video/%') AND "
+ AttachmentDatabase.DATA + " IS NOT NULL "
+ "ORDER BY " + AttachmentDatabase.TABLE_NAME + "." + AttachmentDatabase.ROW_ID + " DESC";
public ImageDatabase(Context context, SQLiteOpenHelper databaseHelper) {
public MediaDatabase(Context context, SQLiteOpenHelper databaseHelper) {
super(context, databaseHelper);
}
public Cursor getImagesForThread(long threadId) {
public Cursor getMediaForThread(long threadId) {
SQLiteDatabase database = databaseHelper.getReadableDatabase();
Cursor cursor = database.rawQuery(IMAGES_QUERY, new String[]{threadId+""});
Cursor cursor = database.rawQuery(MEDIA_QUERY, new String[]{threadId+""});
setNotifyConverationListeners(cursor, threadId);
return cursor;
}
public static class ImageRecord {
public static class MediaRecord {
private final AttachmentId attachmentId;
private final long mmsId;
private final boolean hasData;
@@ -55,7 +56,7 @@ public class ImageDatabase extends Database {
private final int transferState;
private final long size;
private ImageRecord(AttachmentId attachmentId, long mmsId,
private MediaRecord(AttachmentId attachmentId, long mmsId,
boolean hasData, boolean hasThumbnail,
String contentType, String address, long date,
int transferState, long size)
@@ -71,7 +72,7 @@ public class ImageDatabase extends Database {
this.size = size;
}
public static ImageRecord from(Cursor cursor) {
public static MediaRecord from(Cursor cursor) {
AttachmentId attachmentId = new AttachmentId(cursor.getLong(cursor.getColumnIndexOrThrow(AttachmentDatabase.ROW_ID)),
cursor.getLong(cursor.getColumnIndexOrThrow(AttachmentDatabase.UNIQUE_ID)));
@@ -83,7 +84,7 @@ public class ImageDatabase extends Database {
date = cursor.getLong(cursor.getColumnIndexOrThrow(MmsDatabase.DATE_RECEIVED));
}
return new ImageRecord(attachmentId,
return new MediaRecord(attachmentId,
cursor.getLong(cursor.getColumnIndexOrThrow(AttachmentDatabase.MMS_ID)),
!cursor.isNull(cursor.getColumnIndexOrThrow(AttachmentDatabase.DATA)),
!cursor.isNull(cursor.getColumnIndexOrThrow(AttachmentDatabase.THUMBNAIL)),