diff options
Diffstat (limited to 'src/org/fox/ttrss/MainActivity.java')
| -rw-r--r-- | src/org/fox/ttrss/MainActivity.java | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/src/org/fox/ttrss/MainActivity.java b/src/org/fox/ttrss/MainActivity.java index 69f9e249..761d4dd0 100644 --- a/src/org/fox/ttrss/MainActivity.java +++ b/src/org/fox/ttrss/MainActivity.java @@ -42,6 +42,7 @@ public class MainActivity extends Activity { private SharedPreferences m_prefs; private String m_themeName = ""; private boolean m_feedsOpened = false; + private boolean m_splashDisabled = false; protected String m_sessionId; protected int m_offset = 0; protected int m_limit = 30; @@ -107,13 +108,14 @@ public class MainActivity extends Activity { m_limit = savedInstanceState.getInt("limit"); m_updateMode = savedInstanceState.getInt("updateMode"); m_maxId = savedInstanceState.getInt("maxId"); + m_splashDisabled = savedInstanceState.getBoolean("splashDisabled"); } // allow database to upgrade before we do anything else DatabaseHelper dh = new DatabaseHelper(getApplicationContext()); SQLiteDatabase db = dh.getWritableDatabase(); - if (m_updateMode == UPDATE_INITIAL) { + if (m_updateMode == UPDATE_INITIAL && !m_splashDisabled) { db.execSQL("DELETE FROM feeds;"); db.execSQL("DELETE FROM articles;"); } @@ -127,10 +129,6 @@ public class MainActivity extends Activity { LayoutTransition transitioner = new LayoutTransition(); wrapper.setLayoutTransition(transitioner); - m_feedsTask = new FeedsTask(); - m_feedsTimer = new Timer("UpdateFeeds"); - m_feedsTimer.schedule(m_feedsTask, 1000L, 60*1000L); - if (!m_feedsOpened) { Log.d(TAG, "Opening feeds fragment..."); @@ -142,6 +140,20 @@ public class MainActivity extends Activity { ft.commit(); m_feedsOpened = true; + + } + + if (m_splashDisabled) { + ViewFlipper vf = (ViewFlipper) findViewById(R.id.main_flipper); + + if (vf != null && vf.getDisplayedChild() == 0) + vf.showNext(); + + scheduleNextUpdate(); + } else { + m_feedsTask = new FeedsTask(); + m_feedsTimer = new Timer("UpdateFeeds"); + m_feedsTimer.schedule(m_feedsTask, 1000L, 60*1000L); } //scheduleNextUpdate(); @@ -157,6 +169,7 @@ public class MainActivity extends Activity { out.putInt("limit", m_limit); out.putInt("updateMode", m_updateMode); out.putInt("maxId", m_maxId); + out.putBoolean("splashDisabled", m_splashDisabled); } @Override @@ -174,13 +187,13 @@ public class MainActivity extends Activity { public void onDestroy() { super.onDestroy(); - m_feedsTask.cancel(); - m_articlesTask.cancel(); + if (m_feedsTask != null) m_feedsTask.cancel(); + if (m_articlesTask != null) m_articlesTask.cancel(); - m_feedsTimer.cancel(); + if (m_feedsTimer != null) m_feedsTimer.cancel(); m_feedsTimer = null; - m_articlesTimer.cancel(); + if (m_articlesTimer != null) m_articlesTimer.cancel(); m_articlesTimer = null; } @@ -269,7 +282,7 @@ public class MainActivity extends Activity { List<Article> articles = api.m_gson.fromJson(feeds_object, listType); DatabaseHelper dh = new DatabaseHelper(getApplicationContext()); - SQLiteDatabase db = dh.getWritableDatabase(); + SQLiteDatabase db = dh.getWritableDatabase(); // TODO rework to m_writableDb etc to prevent crashes on rotate/recreate /* db.execSQL("DELETE FROM articles"); */ @@ -369,6 +382,8 @@ public class MainActivity extends Activity { } } + m_splashDisabled = true; + runOnUiThread(new Runnable() { @Override public void run() { |