open unknown files with wildcard intent

This commit is contained in:
Daniel Gultsch 2015-10-20 17:41:07 +02:00
parent 569b9f4e66
commit f4a33a007c
2 changed files with 15 additions and 10 deletions

View File

@ -541,7 +541,7 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
shareIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); shareIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
String mime = message.getMimeType(); String mime = message.getMimeType();
if (mime == null) { if (mime == null) {
mime = "image/webp"; mime = "*/*";
} }
shareIntent.setType(mime); shareIntent.setType(mime);
} }

View File

@ -614,17 +614,22 @@ public class MessageAdapter extends ArrayAdapter<Message> {
return; return;
} }
Intent openIntent = new Intent(Intent.ACTION_VIEW); Intent openIntent = new Intent(Intent.ACTION_VIEW);
openIntent.setDataAndType(Uri.fromFile(file), file.getMimeType()); String mime = file.getMimeType();
if (mime == null) {
mime = "*/*";
}
openIntent.setDataAndType(Uri.fromFile(file), mime);
PackageManager manager = activity.getPackageManager(); PackageManager manager = activity.getPackageManager();
List<ResolveInfo> infos = manager.queryIntentActivities(openIntent, 0); List<ResolveInfo> infos = manager.queryIntentActivities(openIntent, 0);
if (infos.size() > 0) { if (infos.size() == 0) {
openIntent.setDataAndType(Uri.fromFile(file),"*/*");
}
try { try {
getContext().startActivity(openIntent); getContext().startActivity(openIntent);
return; return;
} catch (ActivityNotFoundException e) { } catch (ActivityNotFoundException e) {
//ignored //ignored
} }
}
Toast.makeText(activity,R.string.no_application_found_to_open_file,Toast.LENGTH_SHORT).show(); Toast.makeText(activity,R.string.no_application_found_to_open_file,Toast.LENGTH_SHORT).show();
} }