aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui/util
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-09-26 20:42:38 +0200
committerChristian Schneppe <christian@pix-art.de>2018-09-26 20:42:38 +0200
commit4dd33bc3c7a001c5a4e5e6da1c5a9d50a6e00d42 (patch)
tree4725141977232cca65d3000ffb130ce6ddd765d2 /src/main/java/de/pixart/messenger/ui/util
parentced4191f362b789fd7a85710238b6f6c8e2ff776 (diff)
use internal viewer for images and videos
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui/util')
-rw-r--r--src/main/java/de/pixart/messenger/ui/util/ViewUtil.java46
1 files changed, 34 insertions, 12 deletions
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<ResolveInfo> 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<ResolveInfo> 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