diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2011-12-05 21:32:45 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2011-12-05 21:32:45 +0300 |
| commit | 18fd39e56820ba7bc94d9124102d683e918809a5 (patch) | |
| tree | 91dff3a6c56f532bff4d119dc8d202fa1989cd2e /src/org/fox/ttrss/MainActivity.java | |
| parent | 6a9178fe2e3f3160d05bbe4f197cf040ca1409cc (diff) | |
implement basic offline headline/article fragments
Diffstat (limited to 'src/org/fox/ttrss/MainActivity.java')
| -rw-r--r-- | src/org/fox/ttrss/MainActivity.java | 79 |
1 files changed, 71 insertions, 8 deletions
diff --git a/src/org/fox/ttrss/MainActivity.java b/src/org/fox/ttrss/MainActivity.java index 32040b69..253229af 100644 --- a/src/org/fox/ttrss/MainActivity.java +++ b/src/org/fox/ttrss/MainActivity.java @@ -62,6 +62,7 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe private boolean m_isOffline = false; private int m_activeOfflineFeedId = 0; + private int m_selectedOfflineArticleId = 0; private SQLiteDatabase m_readableDb; private SQLiteDatabase m_writableDb; @@ -242,12 +243,14 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe } public synchronized void refreshFeeds() { - FeedsFragment frag = (FeedsFragment) getSupportFragmentManager().findFragmentById(R.id.feeds_fragment); - - Log.d(TAG, "Refreshing feeds..."); - - if (frag != null) { - frag.refresh(true); + if (m_sessionId != null) { + FeedsFragment frag = (FeedsFragment) getSupportFragmentManager().findFragmentById(R.id.feeds_fragment); + + Log.d(TAG, "Refreshing feeds..."); + + if (frag != null) { + frag.refresh(true); + } } } @@ -323,6 +326,7 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe m_isLicensed = savedInstanceState.getInt("isLicensed"); m_isOffline = savedInstanceState.getBoolean("isOffline"); m_activeOfflineFeedId = savedInstanceState.getInt("offlineActiveFeedId"); + m_selectedOfflineArticleId = savedInstanceState.getInt("offlineArticleId"); } m_enableCats = m_prefs.getBoolean("enable_cats", false); @@ -544,6 +548,10 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe } + public int getActiveOfflineFeedId() { + return m_activeOfflineFeedId; + } + public void setLoadingStatus(int status, boolean showProgress) { TextView tv = (TextView)findViewById(R.id.loading_message); @@ -572,6 +580,7 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe out.putInt("isLicensed", m_isLicensed); out.putBoolean("isOffline", m_isOffline); out.putInt("offlineActiveFeedId", m_activeOfflineFeedId); + out.putInt("offlineArticleId", m_selectedOfflineArticleId); } @Override @@ -636,12 +645,12 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe if (m_smallScreenMode) { if (m_selectedArticle != null) { closeArticle(); - } else if (m_activeFeed != null) { + } else if (m_activeFeed != null || m_activeOfflineFeedId != 0) { if (m_compatMode) { findViewById(R.id.main).setAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_right)); } - if (m_activeFeed.is_cat) { + if (m_activeFeed != null && m_activeFeed.is_cat) { findViewById(R.id.headlines_fragment).setVisibility(View.GONE); findViewById(R.id.cats_fragment).setVisibility(View.VISIBLE); @@ -653,6 +662,7 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe refreshFeeds(); } m_activeFeed = null; + m_activeOfflineFeedId = 0; initMainMenu(); } else if (m_activeCategory != null) { @@ -1622,5 +1632,58 @@ public class MainActivity extends FragmentActivity implements FeedsFragment.OnFe public void offlineViewFeed(int feedId) { m_activeOfflineFeedId = feedId; + + initMainMenu(); + + if (m_smallScreenMode) { + findViewById(R.id.feeds_fragment).setVisibility(View.GONE); + findViewById(R.id.headlines_fragment).setVisibility(View.VISIBLE); + } + + FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); + OfflineHeadlinesFragment frag = new OfflineHeadlinesFragment(); + ft.replace(R.id.headlines_fragment, frag); + ft.commit(); + + } + + public void openOfflineArticle(int articleId, int compatAnimation) { + m_selectedOfflineArticleId = articleId; + + initMainMenu(); + + OfflineHeadlinesFragment hf = (OfflineHeadlinesFragment)getSupportFragmentManager().findFragmentById(R.id.headlines_fragment); + + if (hf != null) { + hf.setActiveArticleId(articleId); + } + + OfflineArticleFragment frag = new OfflineArticleFragment(); + + FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); + ft.replace(R.id.article_fragment, frag); + ft.commit(); + + if (m_compatMode) { + if (compatAnimation == 0) + findViewById(R.id.main).setAnimation(AnimationUtils.loadAnimation(this, R.anim.slide_left)); + else + findViewById(R.id.main).setAnimation(AnimationUtils.loadAnimation(this, compatAnimation)); + } + + if (m_smallScreenMode) { + findViewById(R.id.headlines_fragment).setVisibility(View.GONE); + findViewById(R.id.article_fragment).setVisibility(View.VISIBLE); + } else { + findViewById(R.id.feeds_fragment).setVisibility(View.GONE); + findViewById(R.id.cats_fragment).setVisibility(View.GONE); + findViewById(R.id.article_fragment).setVisibility(View.VISIBLE); + } + + + } + + public int getSelectedOfflineArticleId() { + return m_selectedOfflineArticleId; } }
\ No newline at end of file |