From 4dd33bc3c7a001c5a4e5e6da1c5a9d50a6e00d42 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Wed, 26 Sep 2018 20:42:38 +0200 Subject: use internal viewer for images and videos --- .../java/de/pixart/messenger/ui/util/ViewUtil.java | 46 ++++++++++++++++------ 1 file changed, 34 insertions(+), 12 deletions(-) (limited to 'src/main/java/de/pixart/messenger/ui/util') diff --git a/src/main/java/de/pixart/messenger/ui/util/ViewUtil.java b/src/main/java/de/pixart/messenger/ui/util/ViewUtil.java index 2442df8dc..b1905479b 100644 --- a/src/main/java/de/pixart/messenger/ui/util/ViewUtil.java +++ b/src/main/java/de/pixart/messenger/ui/util/ViewUtil.java @@ -15,6 +15,7 @@ import java.util.List; import de.pixart.messenger.Config; import de.pixart.messenger.R; import de.pixart.messenger.persistance.FileBackend; +import de.pixart.messenger.ui.ShowFullscreenMessageActivity; public class ViewUtil { @@ -25,7 +26,6 @@ public class ViewUtil { } public static void view(Context context, File file, String mime) { - Intent openIntent = new Intent(Intent.ACTION_VIEW); Uri uri; try { uri = FileBackend.getUriForFile(context, file); @@ -34,17 +34,39 @@ public class ViewUtil { Toast.makeText(context, context.getString(R.string.no_permission_to_access_x, file.getAbsolutePath()), Toast.LENGTH_SHORT).show(); return; } - openIntent.setDataAndType(uri, mime); - openIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); - PackageManager manager = context.getPackageManager(); - List info = manager.queryIntentActivities(openIntent, 0); - if (info.size() == 0) { - openIntent.setDataAndType(uri, "*/*"); - } - try { - context.startActivity(openIntent); - } catch (ActivityNotFoundException e) { - Toast.makeText(context, R.string.no_application_found_to_open_file, Toast.LENGTH_SHORT).show(); + // use internal viewer for images and videos + if (mime.startsWith("image/")) { + Intent intent = new Intent(context, ShowFullscreenMessageActivity.class); + intent.putExtra("image", Uri.fromFile(file)); + try { + context.startActivity(intent); + return; + } catch (ActivityNotFoundException e) { + //ignored + } + } else if (mime.startsWith("video/")) { + Intent intent = new Intent(context, ShowFullscreenMessageActivity.class); + intent.putExtra("video", Uri.fromFile(file)); + try { + context.startActivity(intent); + return; + } catch (ActivityNotFoundException e) { + //ignored + } + } else { + Intent openIntent = new Intent(Intent.ACTION_VIEW); + openIntent.setDataAndType(uri, mime); + openIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + PackageManager manager = context.getPackageManager(); + List info = manager.queryIntentActivities(openIntent, 0); + if (info.size() == 0) { + openIntent.setDataAndType(uri, "*/*"); + } + try { + context.startActivity(openIntent); + } catch (ActivityNotFoundException e) { + Toast.makeText(context, R.string.no_application_found_to_open_file, Toast.LENGTH_SHORT).show(); + } } } } \ No newline at end of file -- cgit v1.2.3