From f5fb25d8f5414643a9fc934623f061ffd6a94c3a Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 10 Jul 2018 19:20:03 +0300 Subject: switch to use icepick/bridge for persistence --- org.fox.ttcomics/build.gradle | 4 +++ org.fox.ttcomics/org.fox.ttcomics.iml | 33 +++++++++++++++------- .../main/java/org/fox/ttcomics2/Application.java | 21 ++++++++++++++ .../main/java/org/fox/ttcomics2/ComicFragment.java | 30 ++++++-------------- .../java/org/fox/ttcomics2/ComicListFragment.java | 33 +++++++--------------- .../main/java/org/fox/ttcomics2/ComicPager.java | 15 ++-------- .../main/java/org/fox/ttcomics2/MainActivity.java | 14 ++------- .../java/org/fox/ttcomics2/ViewComicActivity.java | 19 ++++--------- 8 files changed, 77 insertions(+), 92 deletions(-) mode change 100644 => 100755 org.fox.ttcomics/src/main/java/org/fox/ttcomics2/Application.java mode change 100644 => 100755 org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java (limited to 'org.fox.ttcomics') diff --git a/org.fox.ttcomics/build.gradle b/org.fox.ttcomics/build.gradle index 6e2aa47..c39ee27 100755 --- a/org.fox.ttcomics/build.gradle +++ b/org.fox.ttcomics/build.gradle @@ -55,6 +55,10 @@ dependencies { compile 'ch.acra:acra:4.9.1' compile 'com.ToxicBakery.viewpager.transforms:view-pager-transforms:1.2.32@aar' compile 'com.nhaarman.listviewanimations:lib-core:3.1.0@aar' + compile 'frankiesardo:icepick:3.2.0' + provided 'frankiesardo:icepick-processor:3.2.0' + compile 'com.github.livefront:bridge:v1.1.1' + annotationProcessor 'frankiesardo:icepick-processor:3.2.0' compile files('libs/nineoldandroids-2.4.0.jar') } diff --git a/org.fox.ttcomics/org.fox.ttcomics.iml b/org.fox.ttcomics/org.fox.ttcomics.iml index 42cd1d9..33c9ad2 100755 --- a/org.fox.ttcomics/org.fox.ttcomics.iml +++ b/org.fox.ttcomics/org.fox.ttcomics.iml @@ -116,28 +116,41 @@ - - + - - + - - + - + + + + + + + + + + + + + + + + + + - - - + + \ No newline at end of file diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/Application.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/Application.java old mode 100644 new mode 100755 index 535d87f..1e9091c --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/Application.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/Application.java @@ -1,9 +1,18 @@ package org.fox.ttcomics2; +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; import org.acra.annotation.ReportsCrashes; +import icepick.Icepick; + @ReportsCrashes(mode = ReportingInteractionMode.SILENT, excludeMatchingSharedPreferencesKeys = {"password"}, resDialogText = R.string.crash_dialog_text, @@ -16,6 +25,18 @@ public class Application extends android.app.Application { if (!BuildConfig.DEBUG) { 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); + } + }); } } diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java old mode 100644 new mode 100755 index 85e7537..a514bd0 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java @@ -20,17 +20,18 @@ import org.fox.ttcomics2.archive.ComicArchive; import java.io.IOException; +import icepick.State; import it.sephiroth.android.library.imagezoom.ImageViewTouch; public class ComicFragment extends Fragment implements GestureDetector.OnDoubleTapListener { private final String TAG = this.getClass().getSimpleName(); private SharedPreferences m_prefs; - private int m_page; + @State protected int m_page; private ViewComicActivity m_activity; private GestureDetector m_detector; - private boolean m_thumbnail = false; - private ComicArchive m_archive; + @State protected boolean m_thumbnail = false; + @State protected ComicArchive m_archive; public ComicFragment() { super(); @@ -50,14 +51,7 @@ public class ComicFragment extends Fragment implements GestureDetector.OnDoubleT View view = inflater.inflate(R.layout.fragment_comic, container, false); - final ImageViewTouch image = (ImageViewTouch) view.findViewById(R.id.comic_image); - - if (savedInstanceState != null) { - m_page = savedInstanceState.getInt("page"); - m_thumbnail = savedInstanceState.getBoolean("thumbnail"); - m_archive = savedInstanceState.getParcelable("archive"); - } - + final ImageViewTouch image = view.findViewById(R.id.comic_image); image.setFitToScreen(true); ImageLoader imageLoader = ImageLoader.getInstance(); @@ -110,7 +104,7 @@ public class ComicFragment extends Fragment implements GestureDetector.OnDoubleT } private void onLeftSideTapped() { - ImageViewTouch image = (ImageViewTouch) getView().findViewById(R.id.comic_image); + ImageViewTouch image = getView().findViewById(R.id.comic_image); if (image != null) { boolean atLeftEdge = !image.canScroll(1); @@ -122,7 +116,7 @@ public class ComicFragment extends Fragment implements GestureDetector.OnDoubleT } public boolean canScroll(int direction) { - ImageViewTouch image = (ImageViewTouch) getView().findViewById(R.id.comic_image); + ImageViewTouch image = getView().findViewById(R.id.comic_image); if (image != null) { return image.canScroll(direction); @@ -132,7 +126,7 @@ public class ComicFragment extends Fragment implements GestureDetector.OnDoubleT } private void onRightSideTapped() { - ImageViewTouch image = (ImageViewTouch) getView().findViewById(R.id.comic_image); + ImageViewTouch image = getView().findViewById(R.id.comic_image); if (image != null) { boolean atRightEdge = !image.canScroll(-1); @@ -201,14 +195,6 @@ public class ComicFragment extends Fragment implements GestureDetector.OnDoubleT m_detector.setOnDoubleTapListener(this); } - @Override - public void onSaveInstanceState(Bundle out) { - super.onSaveInstanceState(out); - out.putInt("page", m_page); - out.putBoolean("thumbnail", m_thumbnail); - out.putParcelable("archive", m_archive); - } - @Override public boolean onDoubleTap(MotionEvent e) { // TODO Auto-generated method stub diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java index 0e88474..1b8ff04 100755 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java @@ -36,6 +36,7 @@ import com.nostra13.universalimageloader.core.process.BitmapProcessor; import java.io.File; +import icepick.State; import jp.co.recruit_mp.android.widget.HeaderFooterGridView; public class ComicListFragment extends Fragment implements OnItemClickListener { @@ -52,8 +53,8 @@ public class ComicListFragment extends Fragment implements OnItemClickListener { private MainActivity m_activity; private SharedPreferences m_prefs; private ComicsListAdapter m_adapter; - private int m_mode = 0; - private String m_baseDirectory = ""; + @State protected int m_mode = 0; + @State protected String m_baseDirectory = ""; private SwipeRefreshLayout m_swipeLayout; private AnimationAdapter m_animationAdapter; private ImageLoader m_imageLoader = ImageLoader.getInstance(); @@ -90,11 +91,11 @@ public class ComicListFragment extends Fragment implements OnItemClickListener { ImageView thumbnail; public ComicsViewHolder(View v) { - name = (TextView) v.findViewById(R.id.file_name); - info = (TextView) v.findViewById(R.id.file_progress_info); - progressBar = (ProgressBar) v.findViewById(R.id.file_progress_bar); - overflow = (ImageView) v.findViewById(R.id.overflow); - thumbnail = (ImageView) v.findViewById(R.id.thumbnail); + name = v.findViewById(R.id.file_name); + info = v.findViewById(R.id.file_progress_info); + progressBar = v.findViewById(R.id.file_progress_bar); + overflow = v.findViewById(R.id.overflow); + thumbnail = v.findViewById(R.id.thumbnail); } @@ -266,13 +267,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener { View view = inflater.inflate(R.layout.fragment_comics_grid, container, false); - if (savedInstanceState != null) { - m_mode = savedInstanceState.getInt("mode"); - m_baseDirectory = savedInstanceState.getString("baseDir"); - } - - m_swipeLayout = (SwipeRefreshLayout) view.findViewById(R.id.comics_swipe_container); - + m_swipeLayout = view.findViewById(R.id.comics_swipe_container); m_swipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { @@ -284,7 +279,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener { new String[] { "filename" }, new int[] { R.id.file_name }, 0); m_animationAdapter = new ScaleInAnimationAdapter(m_adapter); - HeaderFooterGridView grid = (HeaderFooterGridView) view.findViewById(R.id.comics_grid); + HeaderFooterGridView grid = view.findViewById(R.id.comics_grid); if (m_prefs.getBoolean("enable_fab", true)) { View footer = inflater.inflate(R.layout.comics_grid_footer, grid, false); @@ -482,12 +477,4 @@ public class ComicListFragment extends Fragment implements OnItemClickListener { } - @Override - public void onSaveInstanceState(Bundle out) { - super.onSaveInstanceState(out); - - out.putInt("mode", m_mode); - out.putString("baseDir", m_baseDirectory); - } - } diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicPager.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicPager.java index b421021..c1757d8 100755 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicPager.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicPager.java @@ -25,8 +25,10 @@ import org.fox.ttcomics2.utils.IVTViewPager; import java.io.IOException; +import icepick.State; + public class ComicPager extends Fragment { - private String m_fileName; + @State protected String m_fileName; private SharedPreferences m_prefs; private final String TAG = this.getClass().getSimpleName(); private ComicArchive m_archive; @@ -124,10 +126,6 @@ public class ComicPager extends Fragment { final IVTViewPager pager = view.findViewById(R.id.comics_pager); - if (savedInstanceState != null) { - m_fileName = savedInstanceState.getString("fileName"); - } - try { if (m_fileName.toLowerCase().matches(".*\\.(cbz|zip)")) { m_archive = new CbzComicArchive(m_fileName); @@ -224,12 +222,5 @@ public class ComicPager extends Fragment { m_prefs = PreferenceManager.getDefaultSharedPreferences(activity.getApplicationContext()); } - - @Override - public void onSaveInstanceState(Bundle out) { - super.onSaveInstanceState(out); - out.putString("fileName", m_fileName); - } - } diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java index 778e161..cc1f3c2 100755 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java @@ -37,13 +37,15 @@ import java.io.File; import java.util.ArrayList; import java.util.Arrays; +import icepick.State; + public class MainActivity extends CommonActivity implements SharedPreferences.OnSharedPreferenceChangeListener { private final String TAG = this.getClass().getSimpleName(); private ProgressDialog m_progressDialog; private boolean m_needRestart; private ComicsPagerAdapter m_adapter; - private String m_baseDir; + @State protected String m_baseDir; private ViewPager m_pager; private BroadcastReceiver m_serviceReceiver = new BroadcastReceiver() { @@ -140,9 +142,6 @@ public class MainActivity extends CommonActivity implements SharedPreferences.On } else { m_baseDir = m_prefs.getString("comics_directory", ""); } - - } else { - m_baseDir = savedInstanceState.getString("baseDir"); } String[] permissions; @@ -277,13 +276,6 @@ public class MainActivity extends CommonActivity implements SharedPreferences.On return true; } - @Override - public void onSaveInstanceState(Bundle out) { - super.onSaveInstanceState(out); - - out.putString("baseDir", m_baseDir); - } - public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_sync_directory: diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ViewComicActivity.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ViewComicActivity.java index 5699943..660f32b 100755 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ViewComicActivity.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ViewComicActivity.java @@ -33,11 +33,13 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import icepick.State; + public class ViewComicActivity extends CommonActivity { private final String TAG = this.getClass().getSimpleName(); - private String m_fileName; - private String m_tmpFileName; + @State protected String m_fileName; + @State protected String m_tmpFileName; @SuppressLint("NewApi") @Override @@ -71,9 +73,6 @@ public class ViewComicActivity extends CommonActivity { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.comics_pager_container, cp, FRAG_COMICS_PAGER); ft.commit(); - } else { - m_fileName = savedInstanceState.getString("fileName"); - m_tmpFileName = savedInstanceState.getString("tmpFileName"); } setOrientationLock(isOrientationLocked(), true); @@ -93,15 +92,7 @@ public class ViewComicActivity extends CommonActivity { return true; } - - @Override - public void onSaveInstanceState(Bundle out) { - super.onSaveInstanceState(out); - out.putString("fileName", m_fileName); - out.putString("tmpFileName", m_tmpFileName); - } - @Override public void onComicSelected(String fileName, int position) { super.onComicSelected(fileName, position); @@ -278,7 +269,7 @@ public class ViewComicActivity extends CommonActivity { LayoutInflater inflater = getLayoutInflater(); View contentView = inflater.inflate(R.layout.dialog_location, null); - final NumberPicker picker = (NumberPicker) contentView.findViewById(R.id.number_picker); + final NumberPicker picker = contentView.findViewById(R.id.number_picker); picker.setMinValue(1); picker.setMaxValue(m_databaseHelper.getSize(m_fileName)); -- cgit v1.2.3