This commit is contained in:
Grishka 2022-04-29 15:17:29 +03:00
parent 2a65bdb08f
commit 089e297656
1 changed files with 17 additions and 15 deletions

View File

@ -714,25 +714,27 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
return false; return false;
} }
String type=getActivity().getContentResolver().getType(uri); String type=getActivity().getContentResolver().getType(uri);
if(instance.configuration!=null && instance.configuration.mediaAttachments!=null){ if(instance!=null && instance.configuration!=null && instance.configuration.mediaAttachments!=null){
if(instance.configuration.mediaAttachments.supportedMimeTypes!=null && !instance.configuration.mediaAttachments.supportedMimeTypes.contains(type)){ if(instance.configuration.mediaAttachments.supportedMimeTypes!=null && !instance.configuration.mediaAttachments.supportedMimeTypes.contains(type)){
showMediaAttachmentError(getString(R.string.media_attachment_unsupported_type, UiUtils.getFileName(uri))); showMediaAttachmentError(getString(R.string.media_attachment_unsupported_type, UiUtils.getFileName(uri)));
return false; return false;
} }
int sizeLimit=type.startsWith("image/") ? instance.configuration.mediaAttachments.imageSizeLimit : instance.configuration.mediaAttachments.videoSizeLimit; if(!type.startsWith("image/")){
int size; int sizeLimit=instance.configuration.mediaAttachments.videoSizeLimit;
try(Cursor cursor=MastodonApp.context.getContentResolver().query(uri, new String[]{OpenableColumns.SIZE}, null, null, null)){ int size;
cursor.moveToFirst(); try(Cursor cursor=MastodonApp.context.getContentResolver().query(uri, new String[]{OpenableColumns.SIZE}, null, null, null)){
size=cursor.getInt(0); cursor.moveToFirst();
}catch(Exception x){ size=cursor.getInt(0);
Log.w("ComposeFragment", x); }catch(Exception x){
return false; Log.w("ComposeFragment", x);
} return false;
if(size>sizeLimit){ }
float mb=sizeLimit/(float)(1024*1024); if(size>sizeLimit){
String sMb=String.format(Locale.getDefault(), mb%1f==0f ? "%f" : "%.2f", mb); float mb=sizeLimit/(float) (1024*1024);
showMediaAttachmentError(getString(R.string.media_attachment_too_big, UiUtils.getFileName(uri), sMb)); String sMb=String.format(Locale.getDefault(), mb%1f==0f ? "%f" : "%.2f", mb);
return false; showMediaAttachmentError(getString(R.string.media_attachment_too_big, UiUtils.getFileName(uri), sMb));
return false;
}
} }
} }
pollBtn.setEnabled(false); pollBtn.setEnabled(false);