From c8072f4df8d31c4e4bc4bdfd7e16ddd81b0bfa08 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 8 Mar 2018 13:55:27 +0300 Subject: minor fixes to previous, add base fragment which uses bridge to save state --- .../src/main/java/org/fox/ttrss/ArticlePager.java | 40 +++++++--------------- .../java/org/fox/ttrss/StateSavedFragment.java | 22 ++++++++++++ .../java/org/fox/ttrss/YoutubePlayerActivity.java | 4 +-- 3 files changed, 36 insertions(+), 30 deletions(-) create mode 100755 org.fox.ttrss/src/main/java/org/fox/ttrss/StateSavedFragment.java (limited to 'org.fox.ttrss') diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java index 5db142b4..e0714786 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java @@ -27,18 +27,20 @@ import org.fox.ttrss.util.HeadlinesRequest; import java.util.HashMap; -public class ArticlePager extends Fragment { +import icepick.State; + +public class ArticlePager extends StateSavedFragment { private final String TAG = "ArticlePager"; private PagerAdapter m_adapter; private HeadlinesEventListener m_listener; - private Article m_article; - private ArticleList m_articles = new ArticleList(); //m_articles = Application.getInstance().m_loadedArticles; + @State protected Article m_article; + @State protected ArticleList m_articles = new ArticleList(); //m_articles = Application.getInstance().m_loadedArticles; private OnlineActivity m_activity; private String m_searchQuery = ""; - private Feed m_feed; + @State protected Feed m_feed; private SharedPreferences m_prefs; - private int m_firstId = 0; + @State protected int m_firstId = 0; private boolean m_refreshInProgress; private boolean m_lazyLoadDisabled; @@ -108,21 +110,14 @@ public class ArticlePager extends Fragment { View view = inflater.inflate(R.layout.article_pager, container, false); if (savedInstanceState != null) { - m_article = savedInstanceState.getParcelable("article"); - - if (! (m_activity instanceof DetailActivity)) { - m_articles = savedInstanceState.getParcelable("articles"); - } else { + if (m_activity instanceof DetailActivity) { m_articles = ((DetailActivity)m_activity).m_articles; } - - m_feed = savedInstanceState.getParcelable("feed"); - m_firstId = savedInstanceState.getInt("firstId"); } m_adapter = new PagerAdapter(getActivity().getSupportFragmentManager()); - ViewPager pager = (ViewPager) view.findViewById(R.id.article_pager); + ViewPager pager = view.findViewById(R.id.article_pager); int position = m_articles.indexOf(m_article); @@ -130,7 +125,7 @@ public class ArticlePager extends Fragment { pager.setAdapter(m_adapter); - UnderlinePageIndicator indicator = (UnderlinePageIndicator)view.findViewById(R.id.article_pager_indicator); + UnderlinePageIndicator indicator = view.findViewById(R.id.article_pager_indicator); indicator.setViewPager(pager); pager.setCurrentItem(position); @@ -200,7 +195,7 @@ public class ArticlePager extends Fragment { if (isDetached() || !isAdded()) return; if (!append) { - ViewPager pager = (ViewPager) getView().findViewById(R.id.article_pager); + ViewPager pager = getView().findViewById(R.id.article_pager); pager.setCurrentItem(0); m_articles.clear(); @@ -338,17 +333,6 @@ public class ArticlePager extends Fragment { req.execute(map); } - @Override - public void onSaveInstanceState(Bundle out) { - super.onSaveInstanceState(out); - - out.setClassLoader(getClass().getClassLoader()); - out.putParcelable("article", m_article); - out.putParcelable("articles", m_articles); - out.putParcelable("feed", m_feed); - out.putInt("firstId", m_firstId); - } - @Override public void onAttach(Activity activity) { super.onAttach(activity); @@ -379,7 +363,7 @@ public class ArticlePager extends Fragment { int position = m_articles.indexOf(m_article); - ViewPager pager = (ViewPager) getView().findViewById(R.id.article_pager); + ViewPager pager = getView().findViewById(R.id.article_pager); pager.setCurrentItem(position); } diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/StateSavedFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/StateSavedFragment.java new file mode 100755 index 00000000..ba3af945 --- /dev/null +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/StateSavedFragment.java @@ -0,0 +1,22 @@ +package org.fox.ttrss; + +import android.os.Bundle; +import android.support.v4.app.Fragment; + +import com.livefront.bridge.Bridge; + +public class StateSavedFragment extends Fragment { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + Bridge.restoreInstanceState(this, savedInstanceState); + } + + @Override + public void onSaveInstanceState(Bundle out) { + super.onSaveInstanceState(out); + + Bridge.saveInstanceState(this, out); + } +} diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/YoutubePlayerActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/YoutubePlayerActivity.java index aafaaffc..9c32340d 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/YoutubePlayerActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/YoutubePlayerActivity.java @@ -22,8 +22,8 @@ public class YoutubePlayerActivity extends CommonActivity implements YouTubePlay private final String TAG = this.getClass().getSimpleName(); private static final String DEVELOPER_KEY = "AIzaSyD8BS4Uj21jg_gHZfP4v0VXrAWiwqd05nk"; - @State private String m_streamUri; - @State private String m_videoId; + @State protected String m_streamUri; + @State protected String m_videoId; @Override public void onCreate(Bundle savedInstanceState) { -- cgit v1.2.3