From d214c98c09f59cd3353c564e705700f56bc393e8 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 8 Mar 2018 13:37:23 +0300 Subject: commonactivity: use icepick/bridge --- .../src/main/java/org/fox/ttrss/Application.java | 19 +++++++++++++ .../main/java/org/fox/ttrss/CommonActivity.java | 31 ++++++---------------- 2 files changed, 27 insertions(+), 23 deletions(-) mode change 100644 => 100755 org.fox.ttrss/src/main/java/org/fox/ttrss/Application.java (limited to 'org.fox.ttrss/src/main/java') 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 old mode 100644 new mode 100755 index fde40a87..11930716 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/Application.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/Application.java @@ -1,6 +1,11 @@ package org.fox.ttrss; import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; + +import com.livefront.bridge.Bridge; +import com.livefront.bridge.SavedStateHandler; import org.acra.ACRA; import org.acra.ReportingInteractionMode; @@ -8,6 +13,8 @@ import org.acra.annotation.ReportsCrashes; import org.fox.ttrss.types.Article; import org.fox.ttrss.types.ArticleList; +import icepick.Icepick; + @ReportsCrashes(mode = ReportingInteractionMode.SILENT, excludeMatchingSharedPreferencesKeys = {"password"}, resDialogText = R.string.crash_dialog_text, @@ -33,6 +40,18 @@ public class Application extends android.app.Application { ACRA.init(this); } + Bridge.initialize(getApplicationContext(), new SavedStateHandler() { + @Override + public void saveInstanceState(@NonNull Object target, @NonNull Bundle state) { + Icepick.saveInstanceState(target, state); + } + + @Override + public void restoreInstanceState(@NonNull Object target, @Nullable Bundle state) { + Icepick.restoreInstanceState(target, state); + } + }); + m_singleton = this; } 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 41a2cc19..42df3bd1 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 @@ -36,6 +36,7 @@ import android.view.View; import android.widget.CheckBox; import com.bumptech.glide.Glide; +import com.livefront.bridge.Bridge; import org.fox.ttrss.util.DatabaseHelper; import org.fox.ttrss.widget.SmallWidgetProvider; @@ -47,6 +48,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import icepick.State; + public class CommonActivity extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener { private final String TAG = this.getClass().getSimpleName(); @@ -73,7 +76,7 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc //private SQLiteDatabase m_writableDb; private boolean m_smallScreenMode = true; - private String m_theme; + @State protected String m_theme; private boolean m_needRestart; private static String s_customTabPackageName; @@ -224,9 +227,9 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc setupWidgetUpdates(this); - if (savedInstanceState != null) { - m_theme = savedInstanceState.getString("theme"); - } else { + Bridge.restoreInstanceState(this, savedInstanceState); + + if (savedInstanceState == null) { m_theme = m_prefs.getString("theme", CommonActivity.THEME_DEFAULT); } @@ -235,31 +238,13 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc CustomTabsClient.bindCustomTabsService(this, customTabPackageName != null ? customTabPackageName : "com.android.chrome", m_customTabServiceConnection); - /*if (!ImageLoader.getInstance().isInited()) { - ImageLoaderConfiguration config; - - try { - config = new ImageLoaderConfiguration.Builder(getApplicationContext()) - .diskCache( - new LruDiscCache(new File(getCacheDir(), "article-images"), - DefaultConfigurationFactory.createFileNameGenerator(), - 100 * 1024 * 1024)) - .build(); - } catch (IOException e) { - config = new ImageLoaderConfiguration.Builder(getApplicationContext()) - .build(); - } - ImageLoader.getInstance().init(config); - }*/ - super.onCreate(savedInstanceState); } @Override public void onSaveInstanceState(Bundle out) { super.onSaveInstanceState(out); - - out.putString("theme", m_theme); + Bridge.saveInstanceState(this, out); } public boolean isSmallScreen() { -- cgit v1.2.3