From 2229ae0fc4d8ee23ca64632292e74e86c3f43ee9 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 26 Nov 2011 11:46:17 +0300 Subject: implement show all/show unread tweak menu theme tweaks bump version --- src/org/fox/ttrss/HeadlinesFragment.java | 5 ++- src/org/fox/ttrss/MainActivity.java | 73 +++++++++++++++++++++++++++----- 2 files changed, 65 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/org/fox/ttrss/HeadlinesFragment.java b/src/org/fox/ttrss/HeadlinesFragment.java index f8159dad..3c119783 100644 --- a/src/org/fox/ttrss/HeadlinesFragment.java +++ b/src/org/fox/ttrss/HeadlinesFragment.java @@ -127,6 +127,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener { req.setApi(m_prefs.getString("ttrss_url", null)); final String sessionId = ((MainActivity)getActivity()).getSessionId(); + final boolean showUnread = ((MainActivity)getActivity()).getUnreadArticlesOnly(); int skip = 0; if (append) { @@ -149,7 +150,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener { put("show_content", "true"); put("limit", String.valueOf(30)); put("offset", String.valueOf(0)); - put("view_mode", "adaptive"); + put("view_mode", showUnread ? "adaptive" : "all_articles"); put("skip", String.valueOf(fskip)); } }; @@ -200,7 +201,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener { ListView list = (ListView)getView().findViewById(R.id.headlines); - if (list != null) { + if (list != null && m_offset != 0) { list.setSelection(last_position+1); } diff --git a/src/org/fox/ttrss/MainActivity.java b/src/org/fox/ttrss/MainActivity.java index 4169c87e..b7a8f967 100644 --- a/src/org/fox/ttrss/MainActivity.java +++ b/src/org/fox/ttrss/MainActivity.java @@ -37,6 +37,7 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe private Menu m_menu; private boolean m_smallScreenMode; private boolean m_unreadOnly = true; + private boolean m_unreadArticlesOnly = true; private class RefreshTask extends TimerTask { @@ -65,7 +66,18 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe public boolean getUnreadOnly() { return m_unreadOnly; } + + public void setUnreadArticlesOnly(boolean unread) { + m_unreadArticlesOnly = unread; + + HeadlinesFragment frag = (HeadlinesFragment)getSupportFragmentManager().findFragmentById(R.id.headlines_fragment); + + if (frag != null) frag.refresh(false); + } + public boolean getUnreadArticlesOnly() { + return m_unreadArticlesOnly; + } public String getSessionId() { return m_sessionId; @@ -92,6 +104,7 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe m_unreadOnly = savedInstanceState.getBoolean("unreadOnly"); m_activeFeed = savedInstanceState.getParcelable("activeFeed"); m_selectedArticle = savedInstanceState.getParcelable("selectedArticle"); + m_unreadArticlesOnly = savedInstanceState.getBoolean("unreadArticlesOnly"); } Display display = getWindowManager().getDefaultDisplay(); @@ -161,6 +174,7 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe out.putBoolean("unreadOnly", m_unreadOnly); out.putParcelable("activeFeed", m_activeFeed); out.putParcelable("selectedArticle", m_selectedArticle); + out.putBoolean("unreadArticlesOnly", m_unreadArticlesOnly); } @Override @@ -204,6 +218,22 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe m_menu = menu; initMainMenu(); + + MenuItem item = menu.findItem(R.id.show_feeds); + + if (getUnreadOnly()) { + item.setTitle(R.string.menu_all_feeds); + } else { + item.setTitle(R.string.menu_unread_feeds); + } + + item = menu.findItem(R.id.show_all_articles); + + if (getUnreadArticlesOnly()) { + item.setTitle(R.string.show_all_articles); + } else { + item.setTitle(R.string.show_unread_articles); + } return true; } @@ -272,13 +302,24 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe shareArticle(m_selectedArticle); return true; case R.id.show_feeds: + setUnreadOnly(!getUnreadOnly()); + if (getUnreadOnly()) { + item.setTitle(R.string.menu_all_feeds); + } else { item.setTitle(R.string.menu_unread_feeds); + } + + return true; + case R.id.show_all_articles: + setUnreadArticlesOnly(!getUnreadArticlesOnly()); + + if (getUnreadArticlesOnly()) { + item.setTitle(R.string.show_all_articles); } else { - item.setTitle(R.string.menu_all_feeds); + item.setTitle(R.string.show_unread_articles); } - setUnreadOnly(!getUnreadOnly()); return true; default: return super.onOptionsItemSelected(item); @@ -319,24 +360,34 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe if (m_sessionId != null) { m_menu.findItem(R.id.login).setVisible(false); - m_menu.findItem(R.id.logout).setVisible(true); + m_menu.findItem(R.id.logout).setVisible(m_activeFeed == null && m_selectedArticle == null); if (m_selectedArticle != null) { m_menu.findItem(R.id.close_article).setVisible(true); m_menu.findItem(R.id.share_article).setVisible(true); - m_menu.findItem(R.id.update_feeds).setEnabled(false); - m_menu.findItem(R.id.show_feeds).setEnabled(false); + m_menu.findItem(R.id.update_feeds).setVisible(false); + m_menu.findItem(R.id.show_feeds).setVisible(false); } else { m_menu.findItem(R.id.close_article).setVisible(false); m_menu.findItem(R.id.share_article).setVisible(false); - m_menu.findItem(R.id.update_feeds).setEnabled(true); - m_menu.findItem(R.id.show_feeds).setEnabled(true); + if (!m_smallScreenMode || m_activeFeed == null) { + m_menu.findItem(R.id.show_feeds).setVisible(true); + m_menu.findItem(R.id.update_feeds).setVisible(true); + } else { + m_menu.findItem(R.id.show_feeds).setVisible(false); + m_menu.findItem(R.id.update_feeds).setVisible(false); + } } - m_menu.findItem(R.id.load_more_articles).setVisible(m_activeFeed != null); - m_menu.findItem(R.id.show_all_articles).setVisible(m_activeFeed != null); + if (!m_smallScreenMode) { + m_menu.findItem(R.id.load_more_articles).setVisible(m_activeFeed != null); + m_menu.findItem(R.id.show_all_articles).setVisible(m_activeFeed != null); + } else { + m_menu.findItem(R.id.load_more_articles).setVisible(m_activeFeed != null && m_selectedArticle == null); + m_menu.findItem(R.id.show_all_articles).setVisible(m_activeFeed != null && m_selectedArticle == null); + } } else { m_menu.findItem(R.id.login).setVisible(true); @@ -346,8 +397,8 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe m_menu.findItem(R.id.share_article).setVisible(false); m_menu.findItem(R.id.load_more_articles).setVisible(false); - m_menu.findItem(R.id.update_feeds).setEnabled(false); - m_menu.findItem(R.id.show_feeds).setEnabled(false); + m_menu.findItem(R.id.update_feeds).setVisible(false); + m_menu.findItem(R.id.show_feeds).setVisible(false); } } } -- cgit v1.2.3