package co.smartreceipts.android.utils; import android.content.ContentResolver; import android.content.Context; import android.net.Uri; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.webkit.MimeTypeMap; import java.io.File; public class UriUtils { private UriUtils() { } @Nullable public static String getExtension(@NonNull File file, @NonNull Context context) { return getExtension(Uri.fromFile(file), context); } @Nullable public static String getExtension(@NonNull Uri uri, @NonNull Context context) { return getExtension(uri, context.getContentResolver()); } @Nullable public static String getExtension(@NonNull Uri uri, @NonNull ContentResolver contentResolver) { if (ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) { // scheme is content:// return MimeTypeMap.getSingleton().getExtensionFromMimeType(contentResolver.getType(uri)); } else { // scheme is file:// return MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(new File(uri.getPath())).toString()); } } @NonNull public static String getMimeType(@NonNull Uri uri, @NonNull ContentResolver contentResolver) { final String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(getExtension(uri, contentResolver)); return mimeType != null ? mimeType : ""; } }