Added open in browser to image viewer.

captchafix
Florens Douwes 11 years ago
parent 07e007cafd
commit bda83f18ca
  1. 7
      Chan/res/menu/image_view.xml
  2. 10
      Chan/src/org/floens/chan/core/manager/ThreadManager.java
  3. 3
      Chan/src/org/floens/chan/ui/fragment/ImageViewFragment.java
  4. 14
      Chan/src/org/floens/chan/utils/Utils.java

@ -12,5 +12,12 @@
android:orderInCategory="2" android:orderInCategory="2"
android:showAsAction="never" android:showAsAction="never"
android:title="@string/image_save"/> android:title="@string/image_save"/>
<item
android:id="@+id/action_open_browser"
android:orderInCategory="3"
android:showAsAction="never"
android:title="@string/action_open_browser" />
</menu> </menu>

@ -19,19 +19,18 @@ import org.floens.chan.ui.activity.ReplyActivity;
import org.floens.chan.ui.fragment.PostRepliesFragment; import org.floens.chan.ui.fragment.PostRepliesFragment;
import org.floens.chan.ui.fragment.ReplyFragment; import org.floens.chan.ui.fragment.ReplyFragment;
import org.floens.chan.utils.Logger; import org.floens.chan.utils.Logger;
import org.floens.chan.utils.Utils;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.FragmentTransaction; import android.app.FragmentTransaction;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.ActivityNotFoundException;
import android.content.ClipData; import android.content.ClipData;
import android.content.ClipboardManager; import android.content.ClipboardManager;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnClickListener;
import android.content.Intent; import android.content.Intent;
import android.net.Uri;
import android.text.TextUtils; import android.text.TextUtils;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.Toast; import android.widget.Toast;
@ -429,12 +428,7 @@ public class ThreadManager implements Loader.LoaderListener {
* Linkable with an url. * Linkable with an url.
*/ */
private void openLink(PostLinkable linkable) { private void openLink(PostLinkable linkable) {
try { Utils.openLink(activity, linkable.value);
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();
}
} }
private void showPostsRepliesFragment(List<Post> list) { private void showPostsRepliesFragment(List<Post> list) {

@ -7,6 +7,7 @@ import org.floens.chan.ui.activity.ImageViewActivity;
import org.floens.chan.ui.adapter.ImageViewAdapter; import org.floens.chan.ui.adapter.ImageViewAdapter;
import org.floens.chan.ui.view.ThumbnailImageView; import org.floens.chan.ui.view.ThumbnailImageView;
import org.floens.chan.ui.view.ThumbnailImageView.ThumbnailImageViewCallback; import org.floens.chan.ui.view.ThumbnailImageView.ThumbnailImageViewCallback;
import org.floens.chan.utils.Utils;
import android.app.Fragment; import android.app.Fragment;
import android.content.Context; import android.content.Context;
@ -149,6 +150,8 @@ public class ImageViewFragment extends Fragment implements ThumbnailImageViewCal
} }
activity.invalidateActionBar(); activity.invalidateActionBar();
} else if (item.getItemId() == R.id.action_open_browser) {
Utils.openLink(context, post.imageUrl);
} }
} }

@ -1,19 +1,24 @@
package org.floens.chan.utils; package org.floens.chan.utils;
import org.floens.chan.ChanApplication; import org.floens.chan.ChanApplication;
import org.floens.chan.R;
import android.app.Dialog; import android.app.Dialog;
import android.content.ActivityNotFoundException;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.DialogInterface.OnShowListener; import android.content.DialogInterface.OnShowListener;
import android.content.Intent;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.Toast;
public class Utils { public class Utils {
private static DisplayMetrics displayMetrics; 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();
}
}
} }

Loading…
Cancel
Save