diff options
-rw-r--r-- | AndroidManifest.xml | 4 | ||||
-rw-r--r-- | res/menu/main_menu.xml | 12 | ||||
-rw-r--r-- | res/values/strings.xml | 2 | ||||
-rw-r--r-- | res/values/style.xml | 4 | ||||
-rw-r--r-- | src/org/fox/ttrss/HeadlinesFragment.java | 5 | ||||
-rw-r--r-- | src/org/fox/ttrss/MainActivity.java | 73 |
6 files changed, 72 insertions, 28 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index d241123f..cb69d038 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.fox.ttrss" - android:versionCode="5" - android:versionName="0.1.4"> + android:versionCode="6" + android:versionName="0.1.5"> <uses-sdk android:minSdkVersion="8" /> <!-- <supports-screens android:smallScreens="false" android:normalScreens="false" /> --> diff --git a/res/menu/main_menu.xml b/res/menu/main_menu.xml index fb0bd1d7..3d73fe82 100644 --- a/res/menu/main_menu.xml +++ b/res/menu/main_menu.xml @@ -2,38 +2,32 @@ <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/login" - android:visible="false" android:icon="@android:drawable/ic_menu_rotate" android:title="@string/login" android:showAsAction="ifRoom|withText"/> <item android:id="@+id/show_feeds" - android:enabled="false" - android:icon="@android:drawable/ic_menu_rotate" + android:icon="@android:drawable/ic_menu_agenda" android:title="@string/menu_all_feeds" android:showAsAction=""/> <item android:id="@+id/close_article" - android:visible="false" android:icon="@android:drawable/ic_menu_close_clear_cancel" android:title="@string/close_article" android:showAsAction="ifRoom|withText"/> - <item android:id="@+id/load_more_articles" - android:visible="false" + <item android:id="@+id/load_more_articles" android:icon="@android:drawable/ic_menu_more" android:title="@string/load_more_articles" android:showAsAction="ifRoom|withText"/> <item android:id="@+id/show_all_articles" - android:visible="false" android:icon="@android:drawable/ic_menu_agenda" android:title="@string/show_all_articles" android:showAsAction="ifRoom|withText"/> <item android:id="@+id/update_feeds" - android:enabled="false" android:icon="@android:drawable/ic_menu_rotate" android:title="@string/update_feeds" android:showAsAction=""/> @@ -45,13 +39,11 @@ <item android:id="@+id/share_article" - android:visible="false" android:icon="@android:drawable/ic_menu_share" android:title="@string/share_article" android:showAsAction="ifRoom"/> <item android:id="@+id/logout" - android:visible="false" android:title="@string/logout" android:showAsAction=""/> diff --git a/res/values/strings.xml b/res/values/strings.xml index 7933d3f3..c190ac3a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -33,7 +33,7 @@ <string name="share_article">Share article</string> <string name="could_not_decode_content">Could not decode content (UnsupportedEncodingException)</string> <string name="sort_feeds_by_unread">Sort feeds by unread count</string> - <string name="load_more_articles">More headlines...</string> + <string name="load_more_articles">Load more...</string> <string name="show_all_articles">Show all articles</string> <string name="show_unread_articles">Show unread articles</string> </resources> diff --git a/res/values/style.xml b/res/values/style.xml index 8615771b..56a0ee20 100644 --- a/res/values/style.xml +++ b/res/values/style.xml @@ -15,7 +15,7 @@ <item name="headlineSeparatorSelected">#DBC981</item>
</style>
- <style name="LightCompatTheme" parent="android:Theme.Light">
+ <style name="LightCompatTheme" parent="android:Theme.Light.NoTitleBar">
<item name="feedlistDivider">@android:drawable/divider_horizontal_bright</item>
<item name="feedlistBackground">#fafafa</item>
<item name="unreadCounterColor">#0000ff</item>
@@ -47,7 +47,7 @@ <item name="headlineSeparatorSelected">#47478E</item>
</style>
- <style name="DarkCompatTheme" parent="android:Theme">
+ <style name="DarkCompatTheme" parent="android:Theme.Black.NoTitleBar">
<item name="feedlistDivider">@android:drawable/divider_horizontal_dark</item>
<item name="feedlistBackground">#101010</item>
<item name="unreadCounterColor">#303030</item>
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); } } } |