summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--res/menu/main_menu.xml163
-rw-r--r--src/org/fox/ttrss/MainActivity.java50
2 files changed, 142 insertions, 71 deletions
diff --git a/res/menu/main_menu.xml b/res/menu/main_menu.xml
index c3279196..76471811 100644
--- a/res/menu/main_menu.xml
+++ b/res/menu/main_menu.xml
@@ -1,70 +1,95 @@
+<menu xmlns:android="http://schemas.android.com/apk/res/android" >
- <menu xmlns:android="http://schemas.android.com/apk/res/android">
-
- <item android:id="@+id/preferences"
- android:icon="@android:drawable/ic_menu_preferences"
- android:title="@string/preferences"
- android:showAsAction=""/>
-
- <item android:id="@+id/login"
- android:icon="@android:drawable/ic_menu_rotate"
- android:title="@string/login"
- android:showAsAction="ifRoom|withText"/>
-
-
- <item android:id="@+id/show_feeds"
- android:icon="@android:drawable/ic_menu_agenda"
- android:title="@string/menu_all_feeds"
- android:showAsAction=""/>
-
- <item android:id="@+id/back_to_categories"
- android:icon="@android:drawable/ic_menu_close_clear_cancel"
- android:title="@string/back_to_categories"
- android:showAsAction="ifRoom|withText"/>
-
- <item android:id="@+id/close_article"
- 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:icon="@android:drawable/ic_menu_more"
- android:title="@string/load_more_articles"
- android:showAsAction="ifRoom|withText"/>
-
- <item android:id="@+id/show_all_articles"
- android:icon="@android:drawable/ic_menu_agenda"
- android:title="@string/show_all_articles"
- android:showAsAction=""/>
-
- <item android:id="@+id/update_feeds"
- android:icon="@android:drawable/ic_menu_rotate"
- android:title="@string/update_feeds"
- android:showAsAction=""/>
-
- <item android:id="@+id/share_article"
- android:icon="@android:drawable/ic_menu_share"
- android:title="@string/share_article"
- android:showAsAction="ifRoom"/>
-
- <item android:id="@+id/toggle_marked"
- android:icon="@android:drawable/star_off"
- android:title="@string/toggle_marked"
- android:showAsAction=""/>
-
- <item android:id="@+id/toggle_published"
- android:icon="@drawable/ic_menu_rss"
- android:title="@string/toggle_published"
- android:showAsAction=""/>
-
- <item android:id="@+id/set_unread"
- android:icon="@android:drawable/ic_menu_recent_history"
- android:title="@string/set_unread"
- android:showAsAction=""/>
-
-
- <item android:id="@+id/logout"
- android:title="@string/logout"
- android:showAsAction=""/>
-
- </menu>
+ <item
+ android:id="@+id/preferences"
+ android:icon="@android:drawable/ic_menu_preferences"
+ android:showAsAction=""
+ android:title="@string/preferences"/>
+
+ <group android:id="@+id/menu_group_logged_in" >
+
+ <group android:id="@+id/menu_group_feeds" >
+
+ <item
+ android:id="@+id/back_to_categories"
+ android:icon="@android:drawable/ic_menu_close_clear_cancel"
+ android:showAsAction="ifRoom|withText"
+ android:title="@string/back_to_categories"/>
+
+ <item
+ android:id="@+id/show_feeds"
+ android:icon="@android:drawable/ic_menu_agenda"
+ android:showAsAction=""
+ android:title="@string/menu_all_feeds"/>
+
+ <item
+ android:id="@+id/update_feeds"
+ android:icon="@android:drawable/ic_menu_rotate"
+ android:showAsAction=""
+ android:title="@string/update_feeds"/>
+ </group>
+
+ <group android:id="@+id/menu_group_headlines" >
+
+ <item
+ android:id="@+id/load_more_articles"
+ android:icon="@android:drawable/ic_menu_more"
+ android:showAsAction="ifRoom|withText"
+ android:title="@string/load_more_articles"/>
+
+ <item
+ android:id="@+id/show_all_articles"
+ android:icon="@android:drawable/ic_menu_agenda"
+ android:showAsAction=""
+ android:title="@string/show_all_articles"/>
+ </group>
+
+ <group android:id="@+id/menu_group_article" >
+
+ <item
+ android:id="@+id/close_article"
+ android:icon="@android:drawable/ic_menu_close_clear_cancel"
+ android:showAsAction="ifRoom|withText"
+ android:title="@string/close_article"/>
+
+ <item
+ android:id="@+id/toggle_marked"
+ android:icon="@android:drawable/star_off"
+ android:showAsAction=""
+ android:title="@string/toggle_marked"/>
+
+ <item
+ android:id="@+id/share_article"
+ android:icon="@android:drawable/ic_menu_share"
+ android:showAsAction="ifRoom"
+ android:title="@string/share_article"/>
+
+ <item
+ android:id="@+id/toggle_published"
+ android:icon="@drawable/ic_menu_rss"
+ android:showAsAction=""
+ android:title="@string/toggle_published"/>
+
+ <item
+ android:id="@+id/set_unread"
+ android:icon="@android:drawable/ic_menu_recent_history"
+ android:showAsAction=""
+ android:title="@string/set_unread"/>
+ </group>
+
+ <item
+ android:id="@+id/logout"
+ android:showAsAction=""
+ android:title="@string/logout"/>
+ </group>
+
+ <group android:id="@+id/menu_group_logged_out" >
+
+ <item
+ android:id="@+id/login"
+ android:icon="@android:drawable/ic_menu_rotate"
+ android:showAsAction="ifRoom|withText"
+ android:title="@string/login"/>
+ </group>
+
+</menu> \ No newline at end of file
diff --git a/src/org/fox/ttrss/MainActivity.java b/src/org/fox/ttrss/MainActivity.java
index f989791e..02677b38 100644
--- a/src/org/fox/ttrss/MainActivity.java
+++ b/src/org/fox/ttrss/MainActivity.java
@@ -542,8 +542,54 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe
public void initMainMenu() {
if (m_menu != null) {
-
if (m_sessionId != null) {
+ m_menu.setGroupVisible(R.id.menu_group_logged_in, true);
+ m_menu.setGroupVisible(R.id.menu_group_logged_out, false);
+
+ if (m_activeFeed != null) {
+ m_menu.findItem(R.id.load_more_articles).setVisible(m_canLoadMore);
+ m_menu.findItem(R.id.show_all_articles).setVisible(true);
+ } else {
+ m_menu.setGroupVisible(R.id.menu_group_headlines, false);
+ }
+
+ if (m_selectedArticle != null) {
+ m_menu.setGroupVisible(R.id.menu_group_article, true);
+
+ m_menu.findItem(R.id.update_feeds).setVisible(false);
+ m_menu.findItem(R.id.show_feeds).setVisible(false);
+ m_menu.findItem(R.id.back_to_categories).setVisible(false);
+
+ if (m_smallScreenMode) {
+ m_menu.setGroupVisible(R.id.menu_group_headlines, false);
+ } else {
+ m_menu.setGroupVisible(R.id.menu_group_headlines, true);
+ }
+
+ } else {
+ m_menu.setGroupVisible(R.id.menu_group_article, false);
+
+ 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.back_to_categories).setVisible(m_activeCategory != null);
+
+ if (m_activeFeed != null) {
+ m_menu.setGroupVisible(R.id.menu_group_headlines, true);
+ }
+ }
+
+ } else {
+ m_menu.setGroupVisible(R.id.menu_group_logged_in, false);
+ m_menu.setGroupVisible(R.id.menu_group_logged_out, true);
+ }
+
+ /* if (m_sessionId != null) {
m_menu.findItem(R.id.login).setVisible(false);
m_menu.findItem(R.id.logout).setVisible(m_activeFeed == null && m_selectedArticle == null);
@@ -598,7 +644,7 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe
m_menu.findItem(R.id.update_feeds).setVisible(false);
m_menu.findItem(R.id.show_feeds).setVisible(false);
- }
+ } */
}
}