From bda83f18ca4e0fe4a9d6bfe3da689f741cbee50a Mon Sep 17 00:00:00 2001 From: Florens Douwes Date: Thu, 1 May 2014 21:25:28 +0200 Subject: [PATCH] Added open in browser to image viewer. --- Chan/res/menu/image_view.xml | 7 +++++++ .../floens/chan/core/manager/ThreadManager.java | 10 ++-------- .../floens/chan/ui/fragment/ImageViewFragment.java | 3 +++ Chan/src/org/floens/chan/utils/Utils.java | 14 ++++++++++++++ 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/Chan/res/menu/image_view.xml b/Chan/res/menu/image_view.xml index 9d30282d..236d2ae5 100644 --- a/Chan/res/menu/image_view.xml +++ b/Chan/res/menu/image_view.xml @@ -12,5 +12,12 @@ android:orderInCategory="2" android:showAsAction="never" android:title="@string/image_save"/> + + + \ No newline at end of file diff --git a/Chan/src/org/floens/chan/core/manager/ThreadManager.java b/Chan/src/org/floens/chan/core/manager/ThreadManager.java index 9ece1ef2..9f9ebae7 100644 --- a/Chan/src/org/floens/chan/core/manager/ThreadManager.java +++ b/Chan/src/org/floens/chan/core/manager/ThreadManager.java @@ -19,19 +19,18 @@ import org.floens.chan.ui.activity.ReplyActivity; import org.floens.chan.ui.fragment.PostRepliesFragment; import org.floens.chan.ui.fragment.ReplyFragment; import org.floens.chan.utils.Logger; +import org.floens.chan.utils.Utils; import android.app.Activity; import android.app.AlertDialog; import android.app.FragmentTransaction; import android.app.ProgressDialog; -import android.content.ActivityNotFoundException; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; -import android.net.Uri; import android.text.TextUtils; import android.widget.CheckBox; import android.widget.Toast; @@ -429,12 +428,7 @@ public class ThreadManager implements Loader.LoaderListener { * Linkable with an url. */ private void openLink(PostLinkable linkable) { - try { - activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(linkable.value))); - } catch (ActivityNotFoundException e) { - e.printStackTrace(); - Toast.makeText(activity, R.string.open_link_failed, Toast.LENGTH_LONG).show(); - } + Utils.openLink(activity, linkable.value); } private void showPostsRepliesFragment(List list) { diff --git a/Chan/src/org/floens/chan/ui/fragment/ImageViewFragment.java b/Chan/src/org/floens/chan/ui/fragment/ImageViewFragment.java index 46f51041..6f27a103 100644 --- a/Chan/src/org/floens/chan/ui/fragment/ImageViewFragment.java +++ b/Chan/src/org/floens/chan/ui/fragment/ImageViewFragment.java @@ -7,6 +7,7 @@ import org.floens.chan.ui.activity.ImageViewActivity; import org.floens.chan.ui.adapter.ImageViewAdapter; import org.floens.chan.ui.view.ThumbnailImageView; import org.floens.chan.ui.view.ThumbnailImageView.ThumbnailImageViewCallback; +import org.floens.chan.utils.Utils; import android.app.Fragment; import android.content.Context; @@ -149,6 +150,8 @@ public class ImageViewFragment extends Fragment implements ThumbnailImageViewCal } activity.invalidateActionBar(); + } else if (item.getItemId() == R.id.action_open_browser) { + Utils.openLink(context, post.imageUrl); } } diff --git a/Chan/src/org/floens/chan/utils/Utils.java b/Chan/src/org/floens/chan/utils/Utils.java index f372ead5..36058a07 100644 --- a/Chan/src/org/floens/chan/utils/Utils.java +++ b/Chan/src/org/floens/chan/utils/Utils.java @@ -1,19 +1,24 @@ package org.floens.chan.utils; import org.floens.chan.ChanApplication; +import org.floens.chan.R; import android.app.Dialog; +import android.content.ActivityNotFoundException; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnShowListener; +import android.content.Intent; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; +import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.util.DisplayMetrics; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; +import android.widget.Toast; public class Utils { private static DisplayMetrics displayMetrics; @@ -78,4 +83,13 @@ public class Utils { } }); } + + public static void openLink(Context context, String link) { + try { + context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(link))); + } catch (ActivityNotFoundException e) { + e.printStackTrace(); + Toast.makeText(context, R.string.open_link_failed, Toast.LENGTH_LONG).show(); + } + } }