diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/org/fox/ttrss/MainActivity.java | 78 | ||||
| -rw-r--r-- | src/org/fox/ttrss/OfflineActivity.java | 30 |
2 files changed, 71 insertions, 37 deletions
diff --git a/src/org/fox/ttrss/MainActivity.java b/src/org/fox/ttrss/MainActivity.java index 51c40e67..df419a41 100644 --- a/src/org/fox/ttrss/MainActivity.java +++ b/src/org/fox/ttrss/MainActivity.java @@ -754,6 +754,35 @@ public class MainActivity extends FragmentActivity implements OnlineServices { @Override public void onBackPressed() { + goBack(true); + } + + private void closeCategory() { + + findViewById(R.id.feeds_fragment).setVisibility(View.GONE); + findViewById(R.id.cats_fragment).setVisibility(View.VISIBLE); + + m_activeCategory = null; + + initMainMenu(); + refreshCategories(); + } + + private void deselectAllArticles() { + HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager() + .findFragmentById(R.id.headlines_fragment); + + if (hf != null) { + ArticleList selected = hf.getSelectedArticles(); + if (selected.size() > 0) { + selected.clear(); + initMainMenu(); + hf.notifyUpdated(); + } + } + } + + private void goBack(boolean allowQuit) { if (m_smallScreenMode) { if (m_selectedArticle != null) { closeArticle(); @@ -792,7 +821,7 @@ public class MainActivity extends FragmentActivity implements OnlineServices { closeCategory(); - } else { + } else if (allowQuit) { finish(); } } else { @@ -800,38 +829,21 @@ public class MainActivity extends FragmentActivity implements OnlineServices { closeArticle(); } else if (m_activeCategory != null) { closeCategory(); - } else { - finish(); - } - } - } - - private void closeCategory() { - - findViewById(R.id.feeds_fragment).setVisibility(View.GONE); - findViewById(R.id.cats_fragment).setVisibility(View.VISIBLE); - - m_activeCategory = null; - - initMainMenu(); - refreshCategories(); - } - - private void deselectAllArticles() { - HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager() - .findFragmentById(R.id.headlines_fragment); - - if (hf != null) { - ArticleList selected = hf.getSelectedArticles(); - if (selected.size() > 0) { - selected.clear(); + } else if (m_activeFeed != null) { + findViewById(R.id.headlines_fragment).setVisibility( + View.INVISIBLE); + + m_activeFeed = null; + + refreshFeeds(); initMainMenu(); - hf.notifyUpdated(); + + } else if (allowQuit) { + finish(); } } } - @SuppressWarnings("unchecked") @Override public boolean onOptionsItemSelected(MenuItem item) { @@ -840,7 +852,7 @@ public class MainActivity extends FragmentActivity implements OnlineServices { switch (item.getItemId()) { case android.R.id.home: - closeArticle(); + goBack(false); return true; case R.id.preferences: Intent intent = new Intent(MainActivity.this, @@ -1199,7 +1211,11 @@ public class MainActivity extends FragmentActivity implements OnlineServices { } if (!m_compatMode) { - getActionBar().setDisplayHomeAsUpEnabled(m_selectedArticle != null); + if (!m_smallScreenMode) { + getActionBar().setDisplayHomeAsUpEnabled(m_selectedArticle != null || m_activeCategory != null); + } else { + getActionBar().setDisplayHomeAsUpEnabled(m_selectedArticle != null || m_activeFeed != null || m_activeCategory != null); + } } m_menu.findItem(R.id.set_labels).setEnabled(m_apiLevel >= 1); @@ -1398,6 +1414,8 @@ public class MainActivity extends FragmentActivity implements OnlineServices { if (m_smallScreenMode) { findViewById(R.id.feeds_fragment).setVisibility(View.GONE); findViewById(R.id.headlines_fragment).setVisibility(View.VISIBLE); + } else { + findViewById(R.id.headlines_fragment).setVisibility(View.VISIBLE); } if (!append) { diff --git a/src/org/fox/ttrss/OfflineActivity.java b/src/org/fox/ttrss/OfflineActivity.java index ca69623c..74968893 100644 --- a/src/org/fox/ttrss/OfflineActivity.java +++ b/src/org/fox/ttrss/OfflineActivity.java @@ -305,8 +305,7 @@ public class OfflineActivity extends FragmentActivity implements } } - @Override - public void onBackPressed() { + private void goBack(boolean allowQuit) { if (m_smallScreenMode) { if (m_selectedArticleId != 0) { closeArticle(); @@ -332,17 +331,28 @@ public class OfflineActivity extends FragmentActivity implements refreshViews(); initMainMenu(); - } else { + } else if (allowQuit) { finish(); } } else { if (m_selectedArticleId != 0) { closeArticle(); - } else { + } else if (m_activeFeedId != 0) { + findViewById(R.id.headlines_fragment).setVisibility(View.INVISIBLE); + m_activeFeedId = 0; + + refreshViews(); + initMainMenu(); + + } else if (allowQuit) { finish(); } } - + } + + @Override + public void onBackPressed() { + goBack(true); } /* @@ -426,7 +436,7 @@ public class OfflineActivity extends FragmentActivity implements switch (item.getItemId()) { case android.R.id.home: - closeArticle(); + goBack(false); return true; case R.id.preferences: Intent intent = new Intent(this, PreferencesActivity.class); @@ -668,7 +678,11 @@ public class OfflineActivity extends FragmentActivity implements } if (!m_compatMode) { - getActionBar().setDisplayHomeAsUpEnabled(m_selectedArticleId != 0); + if (!m_smallScreenMode) { + getActionBar().setDisplayHomeAsUpEnabled(m_selectedArticleId != 0); + } else { + getActionBar().setDisplayHomeAsUpEnabled(m_selectedArticleId != 0 || m_activeFeedId != 0); + } } } } @@ -953,6 +967,8 @@ public class OfflineActivity extends FragmentActivity implements if (m_smallScreenMode) { findViewById(R.id.feeds_fragment).setVisibility(View.GONE); findViewById(R.id.headlines_fragment).setVisibility(View.VISIBLE); + } else { + findViewById(R.id.headlines_fragment).setVisibility(View.VISIBLE); } deselectAllArticles(); |