diff options
Diffstat (limited to 'orgfoxttrss/src/main/java/org/fox/ttrss/GlobalState.java')
-rw-r--r-- | orgfoxttrss/src/main/java/org/fox/ttrss/GlobalState.java | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/orgfoxttrss/src/main/java/org/fox/ttrss/GlobalState.java b/orgfoxttrss/src/main/java/org/fox/ttrss/GlobalState.java new file mode 100644 index 00000000..6f81fc5d --- /dev/null +++ b/orgfoxttrss/src/main/java/org/fox/ttrss/GlobalState.java @@ -0,0 +1,63 @@ +package org.fox.ttrss; + +import java.util.ArrayList; + +import org.fox.ttrss.types.Article; +import org.fox.ttrss.types.ArticleList; +import org.fox.ttrss.types.Feed; + +import android.app.Application; +import android.os.Bundle; +import android.os.Parcelable; + +public class GlobalState extends Application { + private static GlobalState m_singleton; + + public ArticleList m_loadedArticles = new ArticleList(); + public Feed m_activeFeed; + public Article m_activeArticle; + public int m_selectedArticleId; + public String m_sessionId; + public int m_apiLevel; + public boolean m_canUseProgress; + + public static GlobalState getInstance(){ + return m_singleton; + } + + @Override + public final void onCreate() { + super.onCreate(); + m_singleton = this; + } + + public void save(Bundle out) { + + out.setClassLoader(getClass().getClassLoader()); + out.putParcelableArrayList("gs:loadedArticles", m_loadedArticles); + out.putParcelable("gs:activeFeed", m_activeFeed); + out.putParcelable("gs:activeArticle", m_activeArticle); + out.putString("gs:sessionId", m_sessionId); + out.putInt("gs:apiLevel", m_apiLevel); + out.putBoolean("gs:canUseProgress", m_canUseProgress); + out.putInt("gs:selectedArticleId", m_selectedArticleId); + } + + public void load(Bundle in) { + if (m_loadedArticles.size() == 0 && in != null) { + ArrayList<Parcelable> list = in.getParcelableArrayList("gs:loadedArticles"); + + for (Parcelable p : list) { + m_loadedArticles.add((Article)p); + } + + m_activeFeed = (Feed) in.getParcelable("gs:activeFeed"); + m_activeArticle = (Article) in.getParcelable("gs:activeArticle"); + m_sessionId = in.getString("gs:sessionId"); + m_apiLevel = in.getInt("gs:apiLevel"); + m_canUseProgress = in.getBoolean("gs:canUseProgress"); + m_selectedArticleId = in.getInt("gs:selectedArticleId"); + } + + } +} |