diff options
author | Andrew Dolgov <[email protected]> | 2012-03-12 11:51:57 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2012-03-12 11:51:57 +0300 |
commit | bca49799354a6fc68a49f0c53b7111c2f466bc92 (patch) | |
tree | c31da6aef0d89bff522b9ed58821a7e3ead3209d /src/org | |
parent | a8040597c14fda721ea1ad19e9fe221e738f444f (diff) |
add context menu for article link
Diffstat (limited to 'src/org')
-rw-r--r-- | src/org/fox/ttrss/ArticleFragment.java | 15 | ||||
-rw-r--r-- | src/org/fox/ttrss/MainActivity.java | 21 | ||||
-rw-r--r-- | src/org/fox/ttrss/OfflineActivity.java | 28 | ||||
-rw-r--r-- | src/org/fox/ttrss/OfflineArticleFragment.java | 14 |
4 files changed, 77 insertions, 1 deletions
diff --git a/src/org/fox/ttrss/ArticleFragment.java b/src/org/fox/ttrss/ArticleFragment.java index 6941cfca..3d803df8 100644 --- a/src/org/fox/ttrss/ArticleFragment.java +++ b/src/org/fox/ttrss/ArticleFragment.java @@ -20,12 +20,15 @@ import android.text.Html; import android.text.method.LinkMovementMethod;
import android.util.Log;
import android.util.TypedValue;
+import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.ContextMenu.ContextMenuInfo;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.TextView;
+import android.widget.AdapterView.AdapterContextMenuInfo;
public class ArticleFragment extends Fragment {
@SuppressWarnings("unused")
@@ -50,6 +53,17 @@ public class ArticleFragment extends Fragment { private View.OnTouchListener m_gestureListener;
@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);
+
+ super.onCreateContextMenu(menu, v, menuInfo);
+
+ }
+
+ @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (savedInstanceState != null) {
@@ -92,6 +106,7 @@ public class ArticleFragment extends Fragment { title.setMovementMethod(LinkMovementMethod.getInstance());
title.setText(Html.fromHtml("<a href=\""+m_article.link.trim().replace("\"", "\\\"")+"\">" + titleStr + "</a>"));
+ registerForContextMenu(title);
}
WebView web = (WebView)view.findViewById(R.id.content);
diff --git a/src/org/fox/ttrss/MainActivity.java b/src/org/fox/ttrss/MainActivity.java index d8143242..a4da377c 100644 --- a/src/org/fox/ttrss/MainActivity.java +++ b/src/org/fox/ttrss/MainActivity.java @@ -23,7 +23,6 @@ import android.database.sqlite.SQLiteDatabase; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; -import android.os.Handler; import android.preference.PreferenceManager; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; @@ -1819,6 +1818,26 @@ public class MainActivity extends FragmentActivity implements OnlineServices { .findFragmentById(R.id.cats_fragment); switch (item.getItemId()) { + case R.id.article_link_save: + if (m_selectedArticle != null) { + if (android.os.Build.VERSION.SDK_INT < 11) { + @SuppressWarnings("deprecation") + android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + clipboard.setText(m_selectedArticle.link); + } else { + android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + clipboard.setText(m_selectedArticle.link); + } + + Toast toast = Toast.makeText(MainActivity.this, R.string.text_copied_to_clipboard, Toast.LENGTH_SHORT); + toast.show(); + } + return true; + case R.id.article_link_share: + if (m_selectedArticle != null) { + shareArticle(m_selectedArticle); + } + return true; case R.id.browse_articles: if (cf != null) { FeedCategory cat = cf.getCategoryAtPosition(info.position); diff --git a/src/org/fox/ttrss/OfflineActivity.java b/src/org/fox/ttrss/OfflineActivity.java index c0a60d14..90299487 100644 --- a/src/org/fox/ttrss/OfflineActivity.java +++ b/src/org/fox/ttrss/OfflineActivity.java @@ -34,6 +34,7 @@ import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.EditText; import android.widget.SearchView; import android.widget.TextView; +import android.widget.Toast; public class OfflineActivity extends FragmentActivity implements OfflineServices { @@ -853,6 +854,33 @@ public class OfflineActivity extends FragmentActivity implements .findFragmentById(R.id.feeds_fragment); switch (item.getItemId()) { + case R.id.article_link_save: + if (m_selectedArticleId != 0) { + Cursor article = getArticleById(m_selectedArticleId); + + if (article != null) { + if (android.os.Build.VERSION.SDK_INT < 11) { + @SuppressWarnings("deprecation") + android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + clipboard.setText(article.getString(article.getColumnIndex("link"))); + } else { + android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + clipboard.setText(article.getString(article.getColumnIndex("link"))); + } + + article.close(); + + Toast toast = Toast.makeText(OfflineActivity.this, R.string.text_copied_to_clipboard, Toast.LENGTH_SHORT); + toast.show(); + } + } + return true; + case R.id.article_link_share: + if (m_selectedArticleId != 0) { + shareArticle(m_selectedArticleId); + } + return true; + case R.id.browse_articles: // TODO cat stuff return true; diff --git a/src/org/fox/ttrss/OfflineArticleFragment.java b/src/org/fox/ttrss/OfflineArticleFragment.java index e0d5a7c0..c37c2a45 100644 --- a/src/org/fox/ttrss/OfflineArticleFragment.java +++ b/src/org/fox/ttrss/OfflineArticleFragment.java @@ -18,9 +18,11 @@ import android.support.v4.app.Fragment; import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.util.TypedValue;
+import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.ContextMenu.ContextMenuInfo;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.TextView;
@@ -44,6 +46,17 @@ public class OfflineArticleFragment extends Fragment { }
@Override
+ public void onCreateContextMenu(ContextMenu menu, View v,
+ ContextMenuInfo menuInfo) {
+
+ getActivity().getMenuInflater().inflate(R.menu.article_link_context_menu, menu);
+ menu.setHeaderTitle(m_cursor.getString(m_cursor.getColumnIndex("title")));
+
+ super.onCreateContextMenu(menu, v, menuInfo);
+
+ }
+
+ @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (savedInstanceState != null) {
@@ -93,6 +106,7 @@ public class OfflineArticleFragment extends Fragment { title.setMovementMethod(LinkMovementMethod.getInstance());
title.setText(Html.fromHtml("<a href=\""+m_cursor.getString(m_cursor.getColumnIndex("link")).trim().replace("\"", "\\\"")+"\">" + titleStr + "</a>"));
+ registerForContextMenu(title);
}
WebView web = (WebView)view.findViewById(R.id.content);
|