Improve video thumbnail generation and handling on send side

For direct attach only

// FREEBIE
This commit is contained in:
Moxie Marlinspike
2017-04-19 21:23:57 -07:00
parent ad4657df1f
commit 8e7c7a9c54
8 changed files with 68 additions and 8 deletions

View File

@@ -1,8 +1,10 @@
package org.thoughtcrime.securesms.util;
import android.content.ContentResolver;
import android.content.Context;
import android.graphics.Bitmap;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.TextUtils;
@@ -162,6 +164,33 @@ public class MediaUtil {
return !TextUtils.isEmpty(contentType) && contentType.trim().startsWith("video/");
}
public static boolean hasVideoThumbnail(Uri uri) {
Log.w(TAG, "Checking: " + uri);
if (uri == null || !ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) {
return false;
}
if ("com.android.providers.media.documents".equals(uri.getAuthority())) {
return uri.getLastPathSegment().contains("video");
}
return false;
}
public static @Nullable Bitmap getVideoThumbnail(Context context, Uri uri) {
if ("com.android.providers.media.documents".equals(uri.getAuthority())) {
long videoId = Long.parseLong(uri.getLastPathSegment().split(":")[1]);
return MediaStore.Video.Thumbnails.getThumbnail(context.getContentResolver(),
videoId,
MediaStore.Images.Thumbnails.MINI_KIND,
null);
}
return null;
}
public static @Nullable String getDiscreteMimeType(@NonNull String mimeType) {
final String[] sections = mimeType.split("/", 2);
return sections.length > 1 ? sections[0] : null;