mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-05-04 07:25:25 +01:00
Fix bug where video dimensions aren't always correct in chat view.
This commit is contained in:
committed by
Cody Henthorne
parent
d28fc98cfd
commit
08509f6693
@@ -262,6 +262,8 @@ public class MediaRepository {
|
||||
|
||||
if (isImage) {
|
||||
projection = new String[]{Images.Media._ID, Images.Media.MIME_TYPE, Images.Media.DATE_MODIFIED, Images.Media.ORIENTATION, Images.Media.WIDTH, Images.Media.HEIGHT, Images.Media.SIZE};
|
||||
} else if (Build.VERSION.SDK_INT >= 29) {
|
||||
projection = new String[]{Images.Media._ID, Images.Media.MIME_TYPE, Images.Media.DATE_MODIFIED, MediaStore.MediaColumns.ORIENTATION, Images.Media.WIDTH, Images.Media.HEIGHT, Images.Media.SIZE, Video.Media.DURATION};
|
||||
} else {
|
||||
projection = new String[]{Images.Media._ID, Images.Media.MIME_TYPE, Images.Media.DATE_MODIFIED, Images.Media.WIDTH, Images.Media.HEIGHT, Images.Media.SIZE, Video.Media.DURATION};
|
||||
}
|
||||
@@ -277,7 +279,13 @@ public class MediaRepository {
|
||||
Uri uri = ContentUris.withAppendedId(contentUri, rowId);
|
||||
String mimetype = cursor.getString(cursor.getColumnIndexOrThrow(Images.Media.MIME_TYPE));
|
||||
long date = cursor.getLong(cursor.getColumnIndexOrThrow(Images.Media.DATE_MODIFIED));
|
||||
int orientation = isImage ? cursor.getInt(cursor.getColumnIndexOrThrow(Images.Media.ORIENTATION)) : 0;
|
||||
int orientation;
|
||||
if (isImage) {
|
||||
orientation = cursor.getInt(cursor.getColumnIndexOrThrow(Images.Media.ORIENTATION));
|
||||
} else {
|
||||
int orientationIdx = cursor.getColumnIndex(MediaStore.MediaColumns.ORIENTATION);
|
||||
orientation = orientationIdx != -1 ? cursor.getInt(orientationIdx) : 0;
|
||||
}
|
||||
int width = cursor.getInt(cursor.getColumnIndexOrThrow(getWidthColumn(orientation)));
|
||||
int height = cursor.getInt(cursor.getColumnIndexOrThrow(getHeightColumn(orientation)));
|
||||
long size = cursor.getLong(cursor.getColumnIndexOrThrow(Images.Media.SIZE));
|
||||
@@ -386,6 +394,7 @@ public class MediaRepository {
|
||||
try (Cursor cursor = context.getContentResolver().query(media.getUri(), null, null, null, null)) {
|
||||
if (cursor != null && cursor.moveToFirst() && cursor.getColumnIndex(OpenableColumns.SIZE) >= 0) {
|
||||
size = cursor.getLong(cursor.getColumnIndexOrThrow(OpenableColumns.SIZE));
|
||||
} else {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,7 +68,8 @@ class MediaSelectionRepository(context: Context) {
|
||||
return Single.fromCallable {
|
||||
val populatedMedia = mediaRepository.getPopulatedMedia(context, media)
|
||||
|
||||
MediaValidator.filterMedia(context, populatedMedia, mediaConstraints, maxSelection, isStory)
|
||||
val result = MediaValidator.filterMedia(context, populatedMedia, mediaConstraints, maxSelection, isStory)
|
||||
result
|
||||
}.subscribeOn(Schedulers.io())
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import kotlinx.coroutines.suspendCancellableCoroutine
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.signal.core.models.media.Media
|
||||
import org.signal.core.models.media.MediaFolder
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.signal.mediasend.EditorState
|
||||
import org.signal.mediasend.MediaFilterError
|
||||
import org.signal.mediasend.MediaFilterResult
|
||||
@@ -49,6 +50,7 @@ import kotlin.time.Duration.Companion.seconds
|
||||
*/
|
||||
object MediaSendV3Repository : MediaSendRepository {
|
||||
|
||||
private val TAG = Log.tag(MediaSendV3Repository::class.java)
|
||||
private val appContext = AppDependencies.application
|
||||
private val legacyRepository = MediaSelectionRepository(appContext)
|
||||
private val mediaRepository = MediaRepository()
|
||||
|
||||
Reference in New Issue
Block a user