summaryrefslogtreecommitdiff
path: root/org.fox.ttrss
diff options
context:
space:
mode:
Diffstat (limited to 'org.fox.ttrss')
-rwxr-xr-xorg.fox.ttrss/build.gradle4
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/Application.java19
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java23
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java29
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java6
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java10
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java14
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java27
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java41
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java24
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/GalleryBaseFragment.java2
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/GalleryImageFragment.java20
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/GalleryVideoFragment.java26
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java49
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/LogcatActivity.java20
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java12
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/StateSavedFragment.java23
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/share/CommonShareActivity.java19
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/types/GalleryEntry.java39
19 files changed, 276 insertions, 131 deletions
diff --git a/org.fox.ttrss/build.gradle b/org.fox.ttrss/build.gradle
index 1b5cf135..be54fc88 100755
--- a/org.fox.ttrss/build.gradle
+++ b/org.fox.ttrss/build.gradle
@@ -121,10 +121,6 @@ dependencies {
implementation 'me.relex:circleindicator:1.2.2@aar'
implementation 'com.nineoldandroids:library:2.4.0'
implementation 'com.github.amulyakhare:TextDrawable:558677ea31'
- implementation 'com.evernote:android-state:1.4.1'
- compileOnly 'com.evernote:android-state:1.4.1'
- annotationProcessor 'com.evernote:android-state:1.4.1'
- implementation 'com.github.livefront:bridge:v1.1.1'
}
java {
toolchain {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/Application.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/Application.java
index a8c4ab00..ae6eaef6 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/Application.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/Application.java
@@ -2,16 +2,9 @@ package org.fox.ttrss;
import android.os.Bundle;
-import com.evernote.android.state.StateSaver;
-import com.livefront.bridge.Bridge;
-import com.livefront.bridge.SavedStateHandler;
-
import org.fox.ttrss.types.Article;
import org.fox.ttrss.types.ArticleList;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
import java.util.LinkedHashMap;
public class Application extends android.app.Application {
@@ -33,18 +26,6 @@ public class Application extends android.app.Application {
public final void onCreate() {
super.onCreate();
- Bridge.initialize(getApplicationContext(), new SavedStateHandler() {
- @Override
- public void saveInstanceState(@NonNull Object target, @NonNull Bundle state) {
- StateSaver.saveInstanceState(target, state);
- }
-
- @Override
- public void restoreInstanceState(@NonNull Object target, @Nullable Bundle state) {
- StateSaver.restoreInstanceState(target, state);
- }
- });
-
m_singleton = this;
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
index 08905aec..2f5464f9 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
@@ -10,10 +10,8 @@ import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.graphics.Color;
import android.net.Uri;
-import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager;
-import android.text.Html;
import android.util.Log;
import android.util.TypedValue;
import android.view.ContextMenu;
@@ -30,12 +28,10 @@ import android.webkit.WebView.HitTestResult;
import android.webkit.WebViewClient;
import android.widget.EditText;
import android.widget.FrameLayout;
-import android.widget.ImageView;
import android.widget.TextView;
import androidx.core.text.HtmlCompat;
-import com.evernote.android.state.State;
import com.google.android.material.button.MaterialButton;
import org.fox.ttrss.types.Article;
@@ -47,11 +43,10 @@ import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
-public class ArticleFragment extends StateSavedFragment {
+public class ArticleFragment extends androidx.fragment.app.Fragment {
private final String TAG = this.getClass().getSimpleName();
private SharedPreferences m_prefs;
- @State
protected Article m_article;
private DetailActivity m_activity;
private WebView m_web;
@@ -158,6 +153,15 @@ public class ArticleFragment extends StateSavedFragment {
}
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ if (savedInstanceState != null) {
+ m_article = savedInstanceState.getParcelable("m_article");
+ }
+ }
+
@SuppressLint("NewApi")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, final Bundle savedInstanceState) {
@@ -627,4 +631,11 @@ public class ArticleFragment extends StateSavedFragment {
m_activity = (DetailActivity)activity;
}
+
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putParcelable("m_article", m_article);
+ }
}
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 9f90df84..eb4cdd55 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
@@ -28,20 +28,18 @@ import org.fox.ttrss.util.HeadlinesRequest;
import java.util.HashMap;
-import com.evernote.android.state.State;
-
-public class ArticlePager extends StateSavedFragment {
+public class ArticlePager extends androidx.fragment.app.Fragment {
private final String TAG = "ArticlePager";
private PagerAdapter m_adapter;
private HeadlinesEventListener m_listener;
- @State protected Article m_article;
- @State protected ArticleList m_articles = new ArticleList(); //m_articles = Application.getInstance().m_loadedArticles;
+ protected Article m_article;
+ protected ArticleList m_articles = new ArticleList(); //m_articles = Application.getInstance().m_loadedArticles;
private OnlineActivity m_activity;
private String m_searchQuery = "";
- @State protected Feed m_feed;
+ protected Feed m_feed;
private SharedPreferences m_prefs;
- @State protected int m_firstId = 0;
+ protected int m_firstId = 0;
private boolean m_refreshInProgress;
private boolean m_lazyLoadDisabled;
@@ -115,6 +113,13 @@ public class ArticlePager extends StateSavedFragment {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ if (savedInstanceState != null) {
+ m_article = savedInstanceState.getParcelable("m_article");
+ m_articles = savedInstanceState.getParcelable("m_articles");
+ m_feed = savedInstanceState.getParcelable("m_feed");
+ m_firstId = savedInstanceState.getInt("m_firstId");
+ }
+
setRetainInstance(true);
}
@@ -354,6 +359,16 @@ public class ArticlePager extends StateSavedFragment {
m_prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
}
+
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putParcelable("m_article", m_article);
+ out.putParcelable("m_articles", m_articles);
+ out.putParcelable("m_feed", m_feed);
+ out.putInt("m_firstId", m_firstId);
+ }
@SuppressLint("NewApi")
@Override
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java
index b97448fe..853cfcbd 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java
@@ -11,14 +11,14 @@ import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
+import androidx.appcompat.widget.SwitchCompat;
+
import org.fox.ttrss.offline.OfflineActivity;
import java.net.MalformedURLException;
import java.net.URL;
-import androidx.appcompat.widget.SwitchCompat;
-
-public abstract class BaseFeedlistFragment extends StateSavedFragment {
+public abstract class BaseFeedlistFragment extends androidx.fragment.app.Fragment {
abstract public void refresh();
public void initDrawerHeader(LayoutInflater inflater, View view, ListView list, final CommonActivity activity, final SharedPreferences prefs, boolean isRoot) {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java
index 13c4490a..f0416353 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java
@@ -47,9 +47,7 @@ import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
-import com.evernote.android.state.State;
import com.google.android.material.snackbar.Snackbar;
-import com.livefront.bridge.Bridge;
import org.fox.ttrss.util.DatabaseHelper;
import org.fox.ttrss.widget.SmallWidgetProvider;
@@ -90,7 +88,6 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc
//private SQLiteDatabase m_writableDb;
private boolean m_smallScreenMode = true;
- @State
protected String m_theme;
private boolean m_needRestart;
@@ -263,10 +260,10 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc
setupWidgetUpdates(this);
- Bridge.restoreInstanceState(this, savedInstanceState);
-
if (savedInstanceState == null) {
m_theme = m_prefs.getString("theme", CommonActivity.THEME_DEFAULT);
+ } else {
+ m_theme = savedInstanceState.getString("m_theme");
}
String customTabPackageName = getCustomTabPackageName(this);
@@ -282,7 +279,8 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc
@Override
public void onSaveInstanceState(Bundle out) {
super.onSaveInstanceState(out);
- Bridge.saveInstanceState(this, out);
+
+ out.putString("m_theme", m_theme);
}
public boolean isSmallScreen() {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java
index cd263d87..56fc1539 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java
@@ -13,19 +13,17 @@ import android.util.Log;
import android.view.MenuItem;
import android.view.View;
-import com.evernote.android.state.State;
+import androidx.appcompat.widget.Toolbar;
+import androidx.fragment.app.FragmentTransaction;
+
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import org.fox.ttrss.types.Article;
import org.fox.ttrss.types.ArticleList;
import org.fox.ttrss.types.Feed;
-import androidx.appcompat.widget.Toolbar;
-import androidx.fragment.app.FragmentTransaction;
-
public class DetailActivity extends OnlineActivity implements HeadlinesEventListener {
private final String TAG = this.getClass().getSimpleName();
- @State
protected ArticleList m_articles = new ArticleList();
protected SharedPreferences m_prefs;
@@ -41,6 +39,10 @@ public class DetailActivity extends OnlineActivity implements HeadlinesEventList
super.onCreate(savedInstanceState);
+ if (savedInstanceState != null) {
+ m_articles = savedInstanceState.getParcelable("m_articles");
+ }
+
if (m_prefs.getBoolean("force_phone_layout", false)) {
setContentView(R.layout.activity_detail_phone);
} else {
@@ -167,6 +169,8 @@ public class DetailActivity extends OnlineActivity implements HeadlinesEventList
public void onSaveInstanceState(Bundle out) {
super.onSaveInstanceState(out);
+ out.putParcelable("m_articles", m_articles);
+
Application.getInstance().save(out);
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java
index 876b3894..af925ea4 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java
@@ -24,6 +24,10 @@ import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
+import androidx.loader.app.LoaderManager;
+import androidx.loader.content.Loader;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
@@ -40,17 +44,12 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
-import androidx.loader.app.LoaderManager;
-import androidx.loader.content.Loader;
-import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
-import com.evernote.android.state.State;
-
public class FeedCategoriesFragment extends BaseFeedlistFragment implements OnItemClickListener, OnSharedPreferenceChangeListener,
LoaderManager.LoaderCallbacks<JsonElement> {
private final String TAG = this.getClass().getSimpleName();
private FeedCategoryListAdapter m_adapter;
private FeedCategoryList m_cats = new FeedCategoryList();
- @State FeedCategory m_selectedCat;
+ FeedCategory m_selectedCat;
private MasterActivity m_activity;
private SwipeRefreshLayout m_swipeLayout;
private ListView m_list;
@@ -288,7 +287,16 @@ public class FeedCategoriesFragment extends BaseFeedlistFragment implements OnIt
return null;
}
}
-
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ if (savedInstanceState != null) {
+ m_selectedCat = savedInstanceState.getParcelable("m_selectedCat");
+ }
+ }
+
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -472,5 +480,10 @@ public class FeedCategoriesFragment extends BaseFeedlistFragment implements OnIt
}
}
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+ out.putParcelable("m_selectedCat", m_selectedCat);
+ }
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java
index c415eee9..ec6c508d 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java
@@ -29,6 +29,10 @@ import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
+import androidx.loader.app.LoaderManager;
+import androidx.loader.content.Loader;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
@@ -45,11 +49,6 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
-import androidx.loader.app.LoaderManager;
-import androidx.loader.content.Loader;
-import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
-import com.evernote.android.state.State;
-
public class FeedsFragment extends BaseFeedlistFragment implements OnItemClickListener, OnSharedPreferenceChangeListener,
LoaderManager.LoaderCallbacks<JsonElement> {
private final String TAG = this.getClass().getSimpleName();
@@ -57,10 +56,10 @@ public class FeedsFragment extends BaseFeedlistFragment implements OnItemClickLi
private FeedListAdapter m_adapter;
private FeedList m_feeds = new FeedList();
private MasterActivity m_activity;
- @State Feed m_selectedFeed;
- @State FeedCategory m_activeCategory;
+ Feed m_selectedFeed;
+ FeedCategory m_activeCategory;
private SwipeRefreshLayout m_swipeLayout;
- @State boolean m_enableParentBtn = false;
+ boolean m_enableParentBtn = false;
private ListView m_list;
public void initialize(FeedCategory cat, boolean enableParentBtn) {
@@ -332,6 +331,32 @@ public class FeedsFragment extends BaseFeedlistFragment implements OnItemClickLi
super.onCreateContextMenu(menu, v, menuInfo);
}
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ if (savedInstanceState != null) {
+ ArrayList<Feed> list = savedInstanceState.getParcelableArrayList("m_feeds");
+
+ m_feeds.clear();
+ m_feeds.addAll(list);
+
+ m_selectedFeed = savedInstanceState.getParcelable("m_selectedFeed");
+ m_activeCategory = savedInstanceState.getParcelable("m_activeCategory");
+ m_enableParentBtn = savedInstanceState.getBoolean("m_enableParentBtn");
+ }
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putParcelableArrayList("m_feeds", m_feeds);
+ out.putParcelable("m_selectedFeed", m_selectedFeed);
+ out.putParcelable("m_activeCategory", m_activeCategory);
+ out.putBoolean("m_enableParentBtn", m_enableParentBtn);
+ }
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java
index e0cb2cea..f37d4a98 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java
@@ -34,16 +34,15 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
-import com.evernote.android.state.State;
import me.relex.circleindicator.CircleIndicator;
public class GalleryActivity extends CommonActivity {
private final String TAG = this.getClass().getSimpleName();
- @State protected ArrayList<GalleryEntry> m_items = new ArrayList<>();
- @State protected String m_title;
+ protected ArrayList<GalleryEntry> m_items = new ArrayList<>();
+ protected String m_title;
private ArticleImagesPagerAdapter m_adapter;
- @State public String m_content;
+ public String m_content;
private ViewPager m_pager;
private ProgressBar m_checkProgress;
@@ -234,6 +233,14 @@ public class GalleryActivity extends CommonActivity {
return firstFound;
}
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putParcelableArrayList("m_items", m_items);
+ out.putString("m_title", m_title);
+ out.putString("m_content", m_content);
+ }
+
@Override
public void onCreate(Bundle savedInstanceState) {
ActivityCompat.postponeEnterTransition(this);
@@ -242,7 +249,6 @@ public class GalleryActivity extends CommonActivity {
m_prefs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
-
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
setTheme(R.style.AppTheme);
@@ -273,6 +279,14 @@ public class GalleryActivity extends CommonActivity {
if (!collectGalleryContents(imgSrcFirst, doc, uncheckedItems))
if (!collectGalleryContents("", doc, uncheckedItems))
m_items.add(new GalleryEntry(imgSrcFirst, GalleryEntry.GalleryEntryType.TYPE_IMAGE, null));
+ } else {
+ ArrayList<GalleryEntry> list = savedInstanceState.getParcelableArrayList("m_items");
+
+ m_items.clear();
+ m_items.addAll(list);
+
+ m_title = savedInstanceState.getString("m_title");
+ m_content = savedInstanceState.getString("m_content");
}
findViewById(R.id.gallery_overflow).setOnClickListener(new View.OnClickListener() {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryBaseFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryBaseFragment.java
index 338845a2..b35ca9e7 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryBaseFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryBaseFragment.java
@@ -5,7 +5,7 @@ import android.os.Bundle;
import android.view.ContextMenu;
import android.view.View;
-public class GalleryBaseFragment extends StateSavedFragment {
+public class GalleryBaseFragment extends androidx.fragment.app.Fragment {
private final String TAG = this.getClass().getSimpleName();
protected GalleryActivity m_activity;
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryImageFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryImageFragment.java
index 44dbea12..8513c50c 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryImageFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryImageFragment.java
@@ -19,12 +19,19 @@ import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.GlideDrawableImageViewTarget;
import com.bumptech.glide.request.target.Target;
-import com.evernote.android.state.State;
-
public class GalleryImageFragment extends GalleryBaseFragment {
private final String TAG = this.getClass().getSimpleName();
- @State String m_url;
+ String m_url;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ if (savedInstanceState != null) {
+ m_url = savedInstanceState.getParcelable("m_url");
+ }
+ }
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -84,6 +91,13 @@ public class GalleryImageFragment extends GalleryBaseFragment {
m_url = url;
}
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putString("m_url", m_url);
+ }
+
/*@Override
public boolean onContextItemSelected(MenuItem item) {
int position = m_pager.getCurrentItem();
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryVideoFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryVideoFragment.java
index 751975d3..2e2df149 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryVideoFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryVideoFragment.java
@@ -15,20 +15,36 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.MediaController;
-import java.io.IOException;
-
import androidx.core.app.ActivityCompat;
import androidx.core.view.ViewCompat;
-import com.evernote.android.state.State;
+
+import java.io.IOException;
public class GalleryVideoFragment extends GalleryBaseFragment {
private final String TAG = this.getClass().getSimpleName();
- @State String m_url;
- @State String m_coverUrl;
+ String m_url;
+ String m_coverUrl;
MediaPlayer m_mediaPlayer;
private boolean m_userVisibleHint = false;
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ if (savedInstanceState != null) {
+ m_url = savedInstanceState.getString("m_url");
+ m_coverUrl = savedInstanceState.getString("m_coverUrl");
+ }
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putString("m_url", m_url);
+ out.putString("m_coverUrl", m_coverUrl);
+ }
+
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_gallery_entry, container, false);
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
index c6d4f902..35ca0dba 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
@@ -8,7 +8,6 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.content.pm.ApplicationInfo;
import android.content.res.ColorStateList;
import android.content.res.Resources.Theme;
import android.graphics.Paint;
@@ -43,7 +42,6 @@ import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
import android.widget.AdapterView.AdapterContextMenuInfo;
-import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
@@ -71,7 +69,6 @@ import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.GlideDrawableImageViewTarget;
import com.bumptech.glide.request.target.Target;
-import com.evernote.android.state.State;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.snackbar.Snackbar;
import com.google.gson.JsonElement;
@@ -91,14 +88,11 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
-import java.util.List;
import java.util.TimeZone;
-import java.util.concurrent.TimeUnit;
-import com.evernote.android.state.State;
import jp.wasabeef.glide.transformations.CropCircleTransformation;
-public class HeadlinesFragment extends StateSavedFragment {
+public class HeadlinesFragment extends androidx.fragment.app.Fragment {
public enum ArticlesSelection { ALL, NONE, UNREAD }
@@ -109,24 +103,23 @@ public class HeadlinesFragment extends StateSavedFragment {
private final String TAG = this.getClass().getSimpleName();
- @State
Feed m_feed;
- @State Article m_activeArticle;
- @State String m_searchQuery = "";
+ Article m_activeArticle;
+ String m_searchQuery = "";
private boolean m_refreshInProgress = false;
- @State int m_firstId = 0;
- @State boolean m_lazyLoadDisabled = false;
+ int m_firstId = 0;
+ boolean m_lazyLoadDisabled = false;
private SharedPreferences m_prefs;
private HeaderViewRecyclerAdapter m_adapter;
- @State ArticleList m_articles = new ArticleList();
+ ArticleList m_articles = new ArticleList();
private ArticleList m_readArticles = new ArticleList();
private HeadlinesEventListener m_listener;
private OnlineActivity m_activity;
private SwipeRefreshLayout m_swipeLayout;
private int m_maxImageSize = 0;
- @State boolean m_compactLayoutMode = false;
+ boolean m_compactLayoutMode = false;
private RecyclerView m_list;
private LinearLayoutManager m_layoutManager;
@@ -287,12 +280,40 @@ public class HeadlinesFragment extends StateSavedFragment {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ if (savedInstanceState != null) {
+ m_feed = savedInstanceState.getParcelable("m_feed");
+ m_activeArticle = savedInstanceState.getParcelable("m_activeArticle");
+ m_searchQuery = savedInstanceState.getString("m_searchQuery");
+ m_firstId = savedInstanceState.getInt("m_firstId");
+ m_lazyLoadDisabled = savedInstanceState.getBoolean("m_lazyLoadDisabled");
+
+ ArrayList<Article> list = savedInstanceState.getParcelableArrayList("m_articles");
+
+ m_articles.clear(); // ?
+ m_articles.addAll(list);
+
+ savedInstanceState.getBoolean("m_compactLayoutMode", m_compactLayoutMode);
+ }
+
setRetainInstance(true);
Glide.get(getContext()).clearMemory();
}
@Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putParcelable("m_feed", m_feed);
+ out.putParcelable("m_activeArticle", m_activeArticle);
+ out.putString("m_searchQuery", m_searchQuery);
+ out.putInt("m_firstId", m_firstId);
+ out.putBoolean("m_lazyLoadDisabled", m_lazyLoadDisabled);
+ out.putParcelable("m_articles", m_articles);
+ out.putBoolean("m_compactLayoutMode", m_compactLayoutMode);
+ }
+
+ @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (savedInstanceState != null) {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/LogcatActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/LogcatActivity.java
index 75a9c268..60fad0ba 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/LogcatActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/LogcatActivity.java
@@ -7,19 +7,18 @@ import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-
import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.widget.Toolbar;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
-import com.evernote.android.state.State;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
public class LogcatActivity extends CommonActivity {
private static final int MAX_LOG_ENTRIES = 500;
private final String TAG = this.getClass().getSimpleName();
- @State protected ArrayList<String> m_items = new ArrayList<>();
+ protected ArrayList<String> m_items = new ArrayList<>();
ArrayAdapter<String> m_adapter;
ListView m_list;
@@ -41,6 +40,8 @@ public class LogcatActivity extends CommonActivity {
if (savedInstanceState == null) {
refresh();
+ } else {
+ m_items = savedInstanceState.getStringArrayList("m_items");
}
m_adapter = new ArrayAdapter<>(this, R.layout.logcat_row, m_items);
@@ -59,6 +60,13 @@ public class LogcatActivity extends CommonActivity {
});
}
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putStringArrayList("m_items", m_items);
+ }
+
private void refresh() {
m_items.clear();
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java
index 7591774d..62fa7227 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java
@@ -34,8 +34,6 @@ import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
-import com.evernote.android.state.State;
-
public class MasterActivity extends OnlineActivity implements HeadlinesEventListener {
private final String TAG = this.getClass().getSimpleName();
@@ -45,8 +43,8 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
protected long m_lastRefresh = 0;
protected long m_lastWidgetRefresh = 0;
- @State protected boolean m_feedIsSelected = false;
- @State protected boolean m_userFeedSelected = false;
+ protected boolean m_feedIsSelected = false;
+ protected boolean m_userFeedSelected = false;
private ActionBarDrawerToggle m_drawerToggle;
private DrawerLayout m_drawerLayout;
@@ -196,6 +194,9 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
} else { // savedInstanceState != null
+ m_feedIsSelected = savedInstanceState.getBoolean("m_feedIsSelected");
+ m_userFeedSelected = savedInstanceState.getBoolean("m_userFeedSelected");
+
if (m_drawerLayout != null && !m_feedIsSelected) {
m_drawerLayout.openDrawer(GravityCompat.START);
}
@@ -411,6 +412,9 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
public void onSaveInstanceState(Bundle out) {
super.onSaveInstanceState(out);
+ out.putBoolean("m_feedIsSelected", m_feedIsSelected);
+ out.putBoolean("m_userFeedSelected", m_userFeedSelected);
+
Application.getInstance().save(out);
}
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
deleted file mode 100755
index 08802acd..00000000
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/StateSavedFragment.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.fox.ttrss;
-
-import android.os.Bundle;
-
-import com.livefront.bridge.Bridge;
-
-import androidx.fragment.app.Fragment;
-
-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/share/CommonShareActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/share/CommonShareActivity.java
index e810f49f..620916f8 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/share/CommonShareActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/share/CommonShareActivity.java
@@ -16,13 +16,11 @@ import org.fox.ttrss.PreferencesActivity;
import org.fox.ttrss.R;
import org.fox.ttrss.util.SimpleLoginManager;
-import com.evernote.android.state.State;
-
public abstract class CommonShareActivity extends CommonActivity {
protected SharedPreferences m_prefs;
- @State protected String m_sessionId;
- @State protected int m_apiLevel = 0;
+ protected String m_sessionId;
+ protected int m_apiLevel = 0;
private final String TAG = this.getClass().getSimpleName();
@@ -31,9 +29,22 @@ public abstract class CommonShareActivity extends CommonActivity {
m_prefs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
+ if (savedInstanceState != null) {
+ m_sessionId = savedInstanceState.getString("m_sessionId");
+ m_apiLevel = savedInstanceState.getInt("m_apiLevel");
+ }
+
super.onCreate(savedInstanceState);
}
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putString("m_sessionId", m_sessionId);
+ out.putInt("m_apiLevel", m_apiLevel);
+ }
+
protected abstract void onLoggedIn(int requestId);
protected abstract void onLoggingIn(int requestId);
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/types/GalleryEntry.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/types/GalleryEntry.java
index 0eb45074..50e34f78 100644
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/types/GalleryEntry.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/types/GalleryEntry.java
@@ -1,14 +1,51 @@
package org.fox.ttrss.types;
+import android.os.Parcel;
+import android.os.Parcelable;
+
import java.io.Serializable;
-public class GalleryEntry implements Serializable {
+public class GalleryEntry implements Serializable, Parcelable {
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @SuppressWarnings("rawtypes")
+ public static final Parcelable.Creator CREATOR =
+ new Parcelable.Creator() {
+ public GalleryEntry createFromParcel(Parcel in) {
+ return new GalleryEntry(in);
+ }
+
+ public GalleryEntry[] newArray(int size) {
+ return new GalleryEntry[size];
+ }
+ };
+
public enum GalleryEntryType { TYPE_IMAGE, TYPE_VIDEO }
public String url;
public GalleryEntryType type;
public String coverUrl;
+ @Override
+ public void writeToParcel(Parcel out, int flags) {
+ out.writeString(url);
+ out.writeString(type.name());
+ out.writeString(coverUrl);
+ }
+
+ public void readFromParcel(Parcel in) {
+ url = in.readString();
+ type = GalleryEntryType.valueOf(in.readString());
+ coverUrl = in.readString();
+ }
+
+ public GalleryEntry(Parcel in) {
+ readFromParcel(in);
+ }
+
public GalleryEntry() {
//
}