diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2011-11-23 20:19:35 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2011-11-23 20:19:35 +0300 |
| commit | 212031e3cf86a6fbf4f1c4b882a342b4a5b736a3 (patch) | |
| tree | 397a6568e1ab98bf832fc158602907c2ef01669a /src/org/fox/ttrss/MainActivity.java | |
| parent | 9b38d7a0bd32893d6f682ae8ae4933f755488604 (diff) | |
refresh feeds automatically
Diffstat (limited to 'src/org/fox/ttrss/MainActivity.java')
| -rw-r--r-- | src/org/fox/ttrss/MainActivity.java | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/src/org/fox/ttrss/MainActivity.java b/src/org/fox/ttrss/MainActivity.java index f458af79..3123efa3 100644 --- a/src/org/fox/ttrss/MainActivity.java +++ b/src/org/fox/ttrss/MainActivity.java @@ -1,9 +1,10 @@ package org.fox.ttrss; import java.util.HashMap; +import java.util.Timer; +import java.util.TimerTask; import android.app.Activity; -import android.app.FragmentManager; import android.app.FragmentTransaction; import android.content.Intent; import android.content.SharedPreferences; @@ -29,10 +30,30 @@ public class MainActivity extends Activity implements FeedsFragment.OnFeedSelect private String m_sessionId; private Article m_selectedArticle; private Feed m_activeFeed; + private Timer m_refreshTimer; + private RefreshTask m_refreshTask; protected MenuItem m_syncStatus; - public synchronized String getSessionId() { + private class RefreshTask extends TimerTask { + + @Override + public void run() { + Log.d(TAG, "Refreshing feeds..."); + + refreshFeeds(); + } + } + + public synchronized void refreshFeeds() { + FeedsFragment frag = (FeedsFragment) getFragmentManager().findFragmentById(R.id.feeds_fragment); + + if (frag != null) { + frag.refresh(); + } + } + + public String getSessionId() { return m_sessionId; } @@ -127,6 +148,15 @@ public class MainActivity extends Activity implements FeedsFragment.OnFeedSelect public void onDestroy() { super.onDestroy(); + if (m_refreshTask != null) { + m_refreshTask.cancel(); + m_refreshTask = null; + } + + if (m_refreshTimer != null) { + m_refreshTimer.cancel(); + m_refreshTimer = null; + } } @Override @@ -179,6 +209,21 @@ public class MainActivity extends Activity implements FeedsFragment.OnFeedSelect FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.id.feeds_fragment, frag); ft.commit(); + + if (m_refreshTask != null) { + m_refreshTask.cancel(); + m_refreshTask = null; + } + + if (m_refreshTimer != null) { + m_refreshTimer.cancel(); + m_refreshTimer = null; + } + + m_refreshTask = new RefreshTask(); + m_refreshTimer = new Timer("Refresh"); + + m_refreshTimer.schedule(m_refreshTask, 60*1000L, 60*1000L); } } else { JsonObject content = rv.get("content").getAsJsonObject(); |