diff options
author | Andrew Dolgov <[email protected]> | 2013-05-28 19:59:33 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2013-05-28 19:59:33 +0400 |
commit | 8c923e309f3701039f9591b0d8702e608ed10fb6 (patch) | |
tree | 02249b55267d36e281134082e6eb5790629eb3be | |
parent | ee687410d8a92dfc9dc93651f2f44967ef75aeb6 (diff) |
attempt at better reverse navigation
-rw-r--r-- | src/org/fox/ttrss/FeedsActivity.java | 20 | ||||
-rw-r--r-- | src/org/fox/ttrss/offline/OfflineFeedsActivity.java | 15 |
2 files changed, 23 insertions, 12 deletions
diff --git a/src/org/fox/ttrss/FeedsActivity.java b/src/org/fox/ttrss/FeedsActivity.java index 0925840a..18c7fcbf 100644 --- a/src/org/fox/ttrss/FeedsActivity.java +++ b/src/org/fox/ttrss/FeedsActivity.java @@ -73,10 +73,11 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe public void onOpened() { if (m_actionbarRevertDepth == 0) { m_actionbarUpEnabled = false; - m_feedIsSelected = false; getSupportActionBar().setDisplayHomeAsUpEnabled(false); - initMenu(); } + + m_feedIsSelected = false; + initMenu(); } }); } @@ -256,11 +257,15 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe public void onBackPressed() { if (m_actionbarRevertDepth > 0) { - m_actionbarRevertDepth = m_actionbarRevertDepth - 1; - m_actionbarUpEnabled = m_actionbarRevertDepth > 0; - getSupportActionBar().setDisplayHomeAsUpEnabled(m_actionbarUpEnabled); + if (m_feedIsSelected && m_slidingMenu != null && !m_slidingMenu.isMenuShowing()) { + m_slidingMenu.showMenu(); + } else { + m_actionbarRevertDepth = m_actionbarRevertDepth - 1; + m_actionbarUpEnabled = m_actionbarRevertDepth > 0; + getSupportActionBar().setDisplayHomeAsUpEnabled(m_actionbarUpEnabled); - onBackPressed(); + onBackPressed(); + } } else if (m_slidingMenu != null && !m_slidingMenu.isMenuShowing()) { m_slidingMenu.showMenu(); } else { @@ -272,7 +277,8 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: - onBackPressed(); + if (m_actionbarUpEnabled) + onBackPressed(); return true; case R.id.show_feeds: setUnreadOnly(!getUnreadOnly()); diff --git a/src/org/fox/ttrss/offline/OfflineFeedsActivity.java b/src/org/fox/ttrss/offline/OfflineFeedsActivity.java index 608520cb..097b588e 100644 --- a/src/org/fox/ttrss/offline/OfflineFeedsActivity.java +++ b/src/org/fox/ttrss/offline/OfflineFeedsActivity.java @@ -129,11 +129,15 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead public void onBackPressed() { if (m_actionbarRevertDepth > 0) { - m_actionbarRevertDepth = m_actionbarRevertDepth - 1; - m_actionbarUpEnabled = m_actionbarRevertDepth > 0; - getSupportActionBar().setDisplayHomeAsUpEnabled(m_actionbarUpEnabled); + if (m_feedIsSelected && m_slidingMenu != null && !m_slidingMenu.isMenuShowing()) { + m_slidingMenu.showMenu(); + } else { + m_actionbarRevertDepth = m_actionbarRevertDepth - 1; + m_actionbarUpEnabled = m_actionbarRevertDepth > 0; + getSupportActionBar().setDisplayHomeAsUpEnabled(m_actionbarUpEnabled); - onBackPressed(); + onBackPressed(); + } } else if (m_slidingMenu != null && !m_slidingMenu.isMenuShowing()) { m_slidingMenu.showMenu(); } else { @@ -145,7 +149,8 @@ public class OfflineFeedsActivity extends OfflineActivity implements OfflineHead public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: - onBackPressed(); + if (m_actionbarUpEnabled) + onBackPressed(); return true; case R.id.show_feeds: setUnreadOnly(!getUnreadOnly()); |