summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2011-11-26 11:46:17 +0300
committerAndrew Dolgov <[email protected]>2011-11-26 11:46:17 +0300
commit2229ae0fc4d8ee23ca64632292e74e86c3f43ee9 (patch)
tree402c3f00a1d3b5ffd1525f1f172abf84d4049058
parente722a06651bc74cab83b59158c6d4f07042cc9a6 (diff)
implement show all/show unread
tweak menu theme tweaks bump version
-rw-r--r--AndroidManifest.xml4
-rw-r--r--res/menu/main_menu.xml12
-rw-r--r--res/values/strings.xml2
-rw-r--r--res/values/style.xml4
-rw-r--r--src/org/fox/ttrss/HeadlinesFragment.java5
-rw-r--r--src/org/fox/ttrss/MainActivity.java73
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);
}
}
}