summaryrefslogtreecommitdiff
path: root/src/org/fox/ttrss/ArticleFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/fox/ttrss/ArticleFragment.java')
-rw-r--r--src/org/fox/ttrss/ArticleFragment.java38
1 files changed, 31 insertions, 7 deletions
diff --git a/src/org/fox/ttrss/ArticleFragment.java b/src/org/fox/ttrss/ArticleFragment.java
index cb2c94f4..1fa76bcc 100644
--- a/src/org/fox/ttrss/ArticleFragment.java
+++ b/src/org/fox/ttrss/ArticleFragment.java
@@ -16,16 +16,19 @@ import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.graphics.Typeface;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.text.Html;
+import android.util.Log;
import android.util.TypedValue;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.GestureDetector;
import android.view.LayoutInflater;
+import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
@@ -34,7 +37,9 @@ import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebSettings.LayoutAlgorithm;
import android.webkit.WebView;
+import android.webkit.WebView.HitTestResult;
import android.widget.TextView;
+import android.widget.AdapterView.AdapterContextMenuInfo;
public class ArticleFragment extends Fragment implements GestureDetector.OnDoubleTapListener {
private final String TAG = this.getClass().getSimpleName();
@@ -59,9 +64,26 @@ public class ArticleFragment extends Fragment implements GestureDetector.OnDoubl
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
-
- getActivity().getMenuInflater().inflate(R.menu.article_link_context_menu, menu);
- menu.setHeaderTitle(m_article.title);
+
+ if (v.getId() == R.id.content) {
+ HitTestResult result = ((WebView)v).getHitTestResult();
+
+ if (result != null && (result.getType() == HitTestResult.IMAGE_TYPE || result.getType() == HitTestResult.SRC_IMAGE_ANCHOR_TYPE)) {
+ menu.setHeaderTitle(result.getExtra());
+ getActivity().getMenuInflater().inflate(R.menu.article_content_img_context_menu, menu);
+
+ /* FIXME I have no idea how to do this correctly ;( */
+
+ m_activity.setLastContentImageHitTestUrl(result.getExtra());
+
+ } else {
+ menu.setHeaderTitle(m_article.title);
+ getActivity().getMenuInflater().inflate(R.menu.article_link_context_menu, menu);
+ }
+ } else {
+ menu.setHeaderTitle(m_article.title);
+ getActivity().getMenuInflater().inflate(R.menu.article_link_context_menu, menu);
+ }
super.onCreateContextMenu(menu, v, menuInfo);
@@ -88,10 +110,12 @@ public class ArticleFragment extends Fragment implements GestureDetector.OnDoubl
String titleStr;
if (m_article.title.length() > 200)
- titleStr = m_article.title.substring(0, 200) + "�";
+ titleStr = m_article.title.substring(0, 200) + "...";
else
titleStr = m_article.title;
+
+ title.setTypeface(null, m_article.unread ? Typeface.BOLD : Typeface.NORMAL);
title.setText(Html.fromHtml(titleStr));
//title.setPaintFlags(title.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
title.setOnClickListener(new OnClickListener() {
@@ -143,6 +167,8 @@ public class ArticleFragment extends Fragment implements GestureDetector.OnDoubl
WebView web = (WebView)view.findViewById(R.id.content);
if (web != null) {
+ registerForContextMenu(web);
+
web.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int progress) {
@@ -319,7 +345,6 @@ public class ArticleFragment extends Fragment implements GestureDetector.OnDoubl
out.putParcelable("article", m_article);
}
-
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
@@ -350,8 +375,7 @@ public class ArticleFragment extends Fragment implements GestureDetector.OnDoubl
@Override
public void onLongPress(MotionEvent e) {
- // TODO Auto-generated method stub
-
+ m_activity.openContextMenu(getView());
}
@Override