diff --git a/res/layout/media_overview_activity.xml b/res/layout/media_overview_activity.xml
index 56a6def5e4..d9e3d7afb4 100644
--- a/res/layout/media_overview_activity.xml
+++ b/res/layout/media_overview_activity.xml
@@ -21,6 +21,6 @@
android:gravity="center_horizontal"
android:paddingTop="30dp"
android:visibility="gone"
- android:text="@string/media_overview_activity__no_images" />
+ android:text="@string/media_overview_activity__no_media" />
diff --git a/res/layout/media_overview_item.xml b/res/layout/media_overview_item.xml
index f02d942140..715651a9c5 100644
--- a/res/layout/media_overview_item.xml
+++ b/res/layout/media_overview_item.xml
@@ -8,6 +8,6 @@
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:contentDescription="@string/media_preview_activity__image_content_description" />
+ android:contentDescription="@string/media_preview_activity__media_content_description" />
diff --git a/res/menu/conversation.xml b/res/menu/conversation.xml
index 81587e84c1..ac15ff12f7 100644
--- a/res/menu/conversation.xml
+++ b/res/menu/conversation.xml
@@ -4,7 +4,7 @@
-
diff --git a/res/values/strings.xml b/res/values/strings.xml
index b80a4d03e5..cf7c7cf0eb 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -858,7 +858,7 @@
See full conversation
- No images
+ No media
VERIFY
@@ -1012,8 +1012,8 @@
Verify safety number
Submit debug log
Media preview
- All images
- All images with %1$s
+ All media
+ All media with %1$s
Message details
Linked devices
Invite friends
@@ -1233,7 +1233,7 @@
Edit group
Leave group
Delete conversation
- All images
+ All media
Conversation settings
@@ -1296,13 +1296,13 @@
Save
Forward
- All images
+ All media
Save all
- Image preview
+ Media preview
Refresh
diff --git a/src/org/thoughtcrime/securesms/ImageMediaAdapter.java b/src/org/thoughtcrime/securesms/MediaAdapter.java
similarity index 75%
rename from src/org/thoughtcrime/securesms/ImageMediaAdapter.java
rename to src/org/thoughtcrime/securesms/MediaAdapter.java
index aa3f323819..e5011ee1c8 100644
--- a/src/org/thoughtcrime/securesms/ImageMediaAdapter.java
+++ b/src/org/thoughtcrime/securesms/MediaAdapter.java
@@ -27,18 +27,18 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
-import org.thoughtcrime.securesms.ImageMediaAdapter.ViewHolder;
+import org.thoughtcrime.securesms.MediaAdapter.ViewHolder;
import org.thoughtcrime.securesms.components.ThumbnailView;
import org.thoughtcrime.securesms.crypto.MasterSecret;
import org.thoughtcrime.securesms.database.CursorRecyclerViewAdapter;
-import org.thoughtcrime.securesms.database.ImageDatabase.ImageRecord;
+import org.thoughtcrime.securesms.database.MediaDatabase.MediaRecord;
import org.thoughtcrime.securesms.mms.Slide;
import org.thoughtcrime.securesms.recipients.RecipientFactory;
import org.thoughtcrime.securesms.recipients.Recipients;
import org.thoughtcrime.securesms.util.MediaUtil;
-public class ImageMediaAdapter extends CursorRecyclerViewAdapter {
- private static final String TAG = ImageMediaAdapter.class.getSimpleName();
+public class MediaAdapter extends CursorRecyclerViewAdapter {
+ private static final String TAG = MediaAdapter.class.getSimpleName();
private final MasterSecret masterSecret;
private final long threadId;
@@ -52,7 +52,7 @@ public class ImageMediaAdapter extends CursorRecyclerViewAdapter {
}
}
- public ImageMediaAdapter(Context context, MasterSecret masterSecret, Cursor c, long threadId) {
+ public MediaAdapter(Context context, MasterSecret masterSecret, Cursor c, long threadId) {
super(context, c);
this.masterSecret = masterSecret;
this.threadId = threadId;
@@ -67,40 +67,41 @@ public class ImageMediaAdapter extends CursorRecyclerViewAdapter {
@Override
public void onBindItemViewHolder(final ViewHolder viewHolder, final @NonNull Cursor cursor) {
final ThumbnailView imageView = viewHolder.imageView;
- final ImageRecord imageRecord = ImageRecord.from(cursor);
+ final MediaRecord mediaRecord = MediaRecord.from(cursor);
- Slide slide = MediaUtil.getSlideForAttachment(getContext(), imageRecord.getAttachment());
+ Slide slide = MediaUtil.getSlideForAttachment(getContext(), mediaRecord.getAttachment());
if (slide != null) {
imageView.setImageResource(masterSecret, slide, false);
}
- imageView.setOnClickListener(new OnMediaClickListener(imageRecord));
+ imageView.setOnClickListener(new OnMediaClickListener(mediaRecord));
}
private class OnMediaClickListener implements OnClickListener {
- private final ImageRecord imageRecord;
+ private final MediaRecord mediaRecord;
- private OnMediaClickListener(ImageRecord imageRecord) {
- this.imageRecord = imageRecord;
+ private OnMediaClickListener(MediaRecord mediaRecord) {
+ this.mediaRecord = mediaRecord;
}
@Override
public void onClick(View v) {
- if (imageRecord.getAttachment().getDataUri() != null) {
+ if (mediaRecord.getAttachment().getDataUri() != null) {
Intent intent = new Intent(getContext(), MediaPreviewActivity.class);
- intent.putExtra(MediaPreviewActivity.DATE_EXTRA, imageRecord.getDate());
+ intent.putExtra(MediaPreviewActivity.DATE_EXTRA, mediaRecord.getDate());
+ intent.putExtra(MediaPreviewActivity.SIZE_EXTRA, mediaRecord.getAttachment().getSize());
intent.putExtra(MediaPreviewActivity.THREAD_ID_EXTRA, threadId);
- if (!TextUtils.isEmpty(imageRecord.getAddress())) {
+ if (!TextUtils.isEmpty(mediaRecord.getAddress())) {
Recipients recipients = RecipientFactory.getRecipientsFromString(getContext(),
- imageRecord.getAddress(),
+ mediaRecord.getAddress(),
true);
if (recipients != null && recipients.getPrimaryRecipient() != null) {
intent.putExtra(MediaPreviewActivity.RECIPIENT_EXTRA, recipients.getPrimaryRecipient().getRecipientId());
}
}
- intent.setDataAndType(imageRecord.getAttachment().getDataUri(), imageRecord.getContentType());
+ intent.setDataAndType(mediaRecord.getAttachment().getDataUri(), mediaRecord.getContentType());
getContext().startActivity(intent);
}
}
diff --git a/src/org/thoughtcrime/securesms/MediaOverviewActivity.java b/src/org/thoughtcrime/securesms/MediaOverviewActivity.java
index a831ca683c..0d68038271 100644
--- a/src/org/thoughtcrime/securesms/MediaOverviewActivity.java
+++ b/src/org/thoughtcrime/securesms/MediaOverviewActivity.java
@@ -40,7 +40,7 @@ import android.widget.TextView;
import org.thoughtcrime.securesms.crypto.MasterSecret;
import org.thoughtcrime.securesms.database.CursorRecyclerViewAdapter;
import org.thoughtcrime.securesms.database.DatabaseFactory;
-import org.thoughtcrime.securesms.database.ImageDatabase.ImageRecord;
+import org.thoughtcrime.securesms.database.MediaDatabase.MediaRecord;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.Recipient.RecipientModifiedListener;
import org.thoughtcrime.securesms.recipients.RecipientFactory;
@@ -114,8 +114,8 @@ public class MediaOverviewActivity extends PassphraseRequiredActionBarActivity i
private void initializeActionBar() {
getSupportActionBar().setTitle(recipient == null
- ? getString(R.string.AndroidManifest__media_overview)
- : getString(R.string.AndroidManifest__media_overview_named, recipient.toShortString()));
+ ? getString(R.string.AndroidManifest__all_media)
+ : getString(R.string.AndroidManifest__all_media_named, recipient.toShortString()));
}
@Override
@@ -162,11 +162,11 @@ public class MediaOverviewActivity extends PassphraseRequiredActionBarActivity i
R.string.please_wait) {
@Override
protected List doInBackground(Void... params) {
- Cursor cursor = DatabaseFactory.getImageDatabase(c).getImagesForThread(threadId);
+ Cursor cursor = DatabaseFactory.getMediaDatabase(c).getMediaForThread(threadId);
List attachments = new ArrayList<>(cursor.getCount());
while (cursor != null && cursor.moveToNext()) {
- ImageRecord record = ImageRecord.from(cursor);
+ MediaRecord record = MediaRecord.from(cursor);
attachments.add(new SaveAttachmentTask.Attachment(record.getAttachment().getDataUri(),
record.getContentType(),
record.getDate()));
@@ -220,7 +220,7 @@ public class MediaOverviewActivity extends PassphraseRequiredActionBarActivity i
@Override
public void onLoadFinished(Loader cursorLoader, Cursor cursor) {
Log.w(TAG, "onLoadFinished()");
- gridView.setAdapter(new ImageMediaAdapter(this, masterSecret, cursor, threadId));
+ gridView.setAdapter(new MediaAdapter(this, masterSecret, cursor, threadId));
noImages.setVisibility(gridView.getAdapter().getItemCount() > 0 ? View.GONE : View.VISIBLE);
invalidateOptionsMenu();
}
@@ -240,7 +240,7 @@ public class MediaOverviewActivity extends PassphraseRequiredActionBarActivity i
@Override
public Cursor getCursor() {
- return DatabaseFactory.getImageDatabase(getContext()).getImagesForThread(threadId);
+ return DatabaseFactory.getMediaDatabase(getContext()).getMediaForThread(threadId);
}
}
}
diff --git a/src/org/thoughtcrime/securesms/database/DatabaseFactory.java b/src/org/thoughtcrime/securesms/database/DatabaseFactory.java
index 050123f876..65ba4718b7 100644
--- a/src/org/thoughtcrime/securesms/database/DatabaseFactory.java
+++ b/src/org/thoughtcrime/securesms/database/DatabaseFactory.java
@@ -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);
diff --git a/src/org/thoughtcrime/securesms/database/ImageDatabase.java b/src/org/thoughtcrime/securesms/database/MediaDatabase.java
similarity index 86%
rename from src/org/thoughtcrime/securesms/database/ImageDatabase.java
rename to src/org/thoughtcrime/securesms/database/MediaDatabase.java
index 6532501a8d..d0c16a202e 100644
--- a/src/org/thoughtcrime/securesms/database/ImageDatabase.java
+++ b/src/org/thoughtcrime/securesms/database/MediaDatabase.java
@@ -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)),