From f242dcde6a6eabaac913688b0f25aa00c5572690 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 30 Nov 2011 21:44:36 +0300 Subject: implement workaround to make list items somewhat clickable in combined mode, make title a link --- res/menu/headlines_menu.xml | 16 ++++++++++++++++ src/org/fox/ttrss/ArticleFragment.java | 2 +- src/org/fox/ttrss/HeadlinesFragment.java | 30 +++++++++++++++++++++++++----- src/org/fox/ttrss/MainActivity.java | 3 +-- 4 files changed, 43 insertions(+), 8 deletions(-) diff --git a/res/menu/headlines_menu.xml b/res/menu/headlines_menu.xml index 205e5648..d4700e68 100644 --- a/res/menu/headlines_menu.xml +++ b/res/menu/headlines_menu.xml @@ -15,4 +15,20 @@ android:showAsAction="" android:title="@string/context_selection_toggle_published"/> + + + + + + + + + + \ No newline at end of file diff --git a/src/org/fox/ttrss/ArticleFragment.java b/src/org/fox/ttrss/ArticleFragment.java index 90c69dc7..5b6d0224 100644 --- a/src/org/fox/ttrss/ArticleFragment.java +++ b/src/org/fox/ttrss/ArticleFragment.java @@ -117,7 +117,7 @@ public class ArticleFragment extends Fragment implements OnClickListener { "" + "" + "" + diff --git a/src/org/fox/ttrss/HeadlinesFragment.java b/src/org/fox/ttrss/HeadlinesFragment.java index 8b260526..e3ce07ee 100644 --- a/src/org/fox/ttrss/HeadlinesFragment.java +++ b/src/org/fox/ttrss/HeadlinesFragment.java @@ -19,9 +19,11 @@ import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v4.app.Fragment; import android.text.Html; +import android.text.method.LinkMovementMethod; import android.util.Log; import android.view.ContextMenu; import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; import android.view.ContextMenu.ContextMenuInfo; import android.view.View.OnClickListener; @@ -77,10 +79,12 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, if (m_selectedArticles.size() > 0) { menu.setHeaderTitle(R.string.headline_context_multiple); + menu.setGroupVisible(R.id.menu_group_single_article, false); } else { AdapterContextMenuInfo info = (AdapterContextMenuInfo)menuInfo; Article article = getArticleAtPosition(info.position); menu.setHeaderTitle(article.title); + menu.setGroupVisible(R.id.menu_group_single_article, true); } super.onCreateContextMenu(menu, v, menuInfo); @@ -131,11 +135,18 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, public void onItemClick(AdapterView av, View view, int position, long id) { ListView list = (ListView)av; - if (list != null && !m_combinedMode) { + Log.d(TAG, "onItemClick=" + position); + + if (list != null) { Article article = (Article)list.getItemAtPosition(position); if (article.id >= 0) { - m_articleOps.openArticle(article, 0); - + if (m_combinedMode) { + article.unread = false; + m_articleOps.saveArticleUnread(article); + } else { + m_articleOps.openArticle(article, 0); + } + m_activeArticleId = article.id; m_adapter.notifyDataSetChanged(); } @@ -337,12 +348,20 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, LayoutInflater vi = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(layoutId, null); + + // http://code.google.com/p/android/issues/detail?id=3414 + ((ViewGroup)v).setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); } TextView tt = (TextView)v.findViewById(R.id.title); if (tt != null) { - tt.setText(Html.fromHtml(article.title)); + if (m_combinedMode) { + tt.setMovementMethod(LinkMovementMethod.getInstance()); + tt.setText(Html.fromHtml("" + article.title + "")); + } else { + tt.setText(Html.fromHtml(article.title)); + } } ImageView marked = (ImageView)v.findViewById(R.id.marked); @@ -416,13 +435,14 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, "" + "" + "" + "" + article.content + ""; web.loadDataWithBaseURL(null, content, "text/html", "utf-8", null); + //web.setOnTouchListener(new WebViewClickListener(web, parent, position)); } else { web.setVisibility(View.GONE); } diff --git a/src/org/fox/ttrss/MainActivity.java b/src/org/fox/ttrss/MainActivity.java index 87c599c9..dee9cdf2 100644 --- a/src/org/fox/ttrss/MainActivity.java +++ b/src/org/fox/ttrss/MainActivity.java @@ -952,7 +952,6 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe req.execute(map); setLoadingStatus(R.string.loading_message, true); - loginSuccess(); return; @@ -966,7 +965,7 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe m_sessionId = null; setLoadingStatus(getErrorMessage(), false); - m_menu.findItem(R.id.login).setVisible(true); + //m_menu.findItem(R.id.login).setVisible(true); } } -- cgit v1.2.3