From 7cd62075e73b565b96d6f5108a9f3377c517c5f7 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 8 Oct 2016 21:28:16 +0200 Subject: [PATCH] close #21, allow opening images and videos with third party apps --- .../java/com/simplemobiletools/gallery/Utils.java | 13 ++++++++----- .../gallery/activities/ViewPagerActivity.java | 15 +++++++++++++++ app/src/main/res/menu/viewpager_menu.xml | 4 ++++ app/src/main/res/values-de/strings.xml | 2 ++ app/src/main/res/values-es/strings.xml | 2 ++ app/src/main/res/values-it/strings.xml | 2 ++ app/src/main/res/values-ja/strings.xml | 2 ++ app/src/main/res/values-pt-rPT/strings.xml | 2 ++ app/src/main/res/values-sv/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 10 files changed, 41 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/simplemobiletools/gallery/Utils.java b/app/src/main/java/com/simplemobiletools/gallery/Utils.java index 99cd16ed0..bd3cbcbf9 100644 --- a/app/src/main/java/com/simplemobiletools/gallery/Utils.java +++ b/app/src/main/java/com/simplemobiletools/gallery/Utils.java @@ -102,14 +102,17 @@ public class Utils { final Uri uri = Uri.fromFile(file); intent.setAction(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_STREAM, uri); - if (medium.getIsVideo()) { - intent.setType("video/*"); - } else { - intent.setType("image/*"); - } + intent.setType(getMimeType(medium)); activity.startActivity(Intent.createChooser(intent, shareTitle)); } + public static String getMimeType(Medium medium) { + if (medium.getIsVideo()) + return "video/*"; + else + return "image/*"; + } + public static void showSystemUI(ActionBar actionbar, Window window) { if (actionbar != null) actionbar.show(); diff --git a/app/src/main/java/com/simplemobiletools/gallery/activities/ViewPagerActivity.java b/app/src/main/java/com/simplemobiletools/gallery/activities/ViewPagerActivity.java index 55910243a..01571c709 100644 --- a/app/src/main/java/com/simplemobiletools/gallery/activities/ViewPagerActivity.java +++ b/app/src/main/java/com/simplemobiletools/gallery/activities/ViewPagerActivity.java @@ -149,6 +149,9 @@ public class ViewPagerActivity extends SimpleActivity case R.id.menu_set_as_wallpaper: setAsWallpaper(); return true; + case R.id.menu_open_with: + openWith(); + return true; case R.id.menu_share: shareMedium(); return true; @@ -197,6 +200,18 @@ public class ViewPagerActivity extends SimpleActivity } } + private void openWith() { + final Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setDataAndType(Uri.fromFile(getCurrentFile()), Utils.getMimeType(getCurrentMedium())); + final Intent chooser = Intent.createChooser(intent, getString(R.string.open_with)); + + if (intent.resolveActivity(getPackageManager()) != null) { + startActivity(chooser); + } else { + Utils.showToast(getApplicationContext(), R.string.no_app_found); + } + } + @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == EDIT_IMAGE) { diff --git a/app/src/main/res/menu/viewpager_menu.xml b/app/src/main/res/menu/viewpager_menu.xml index 3ac3c6658..801f63da4 100644 --- a/app/src/main/res/menu/viewpager_menu.xml +++ b/app/src/main/res/menu/viewpager_menu.xml @@ -5,6 +5,10 @@ android:id="@+id/menu_set_as_wallpaper" android:title="@string/set_as_wallpaper" app:showAsAction="never"/> + Absteigend OK Abbrechen + Open with + No valid app found 1 Ordner gelöscht diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 6295e4fd9..0d3fc4220 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -29,6 +29,8 @@ Descendente Aceptar Cancelar + Open with + No valid app found 1 carpeta eliminada diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 837f24291..9314fecee 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -29,6 +29,8 @@ Descending OK Cancel + Open with + No valid app found 1 cartella eliminata diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 13cef7f9e..bb44813d2 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -29,6 +29,8 @@ Descending OK Cancel + Open with + No valid app found 1 フォルダーを削除しました diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index cf7d52388..f9867c1fe 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -29,6 +29,8 @@ Descendente OK Cancelar + Open with + No valid app found 1 pasta eliminada diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 1bff81531..9ea6571b2 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -29,6 +29,8 @@ Descending OK Cancel + Open with + No valid app found 1 mapp borttagen diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fc6fe1eb2..d516ddb3c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -29,6 +29,8 @@ Descending OK Cancel + Open with + No valid app found 1 folder deleted