diff options
author | Andrew Dolgov <[email protected]> | 2018-07-10 19:20:03 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2018-07-10 19:20:03 +0300 |
commit | f5fb25d8f5414643a9fc934623f061ffd6a94c3a (patch) | |
tree | 24a2e8831a58266042374cbd8cb30ec7c0e4412a /org.fox.ttcomics | |
parent | 45529bcca9d462c12269b81127f7de26aafc47bb (diff) |
switch to use icepick/bridge for persistence
Diffstat (limited to 'org.fox.ttcomics')
-rwxr-xr-x | org.fox.ttcomics/build.gradle | 4 | ||||
-rwxr-xr-x | org.fox.ttcomics/org.fox.ttcomics.iml | 33 | ||||
-rwxr-xr-x[-rw-r--r--] | org.fox.ttcomics/src/main/java/org/fox/ttcomics2/Application.java | 21 | ||||
-rwxr-xr-x[-rw-r--r--] | org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java | 30 | ||||
-rwxr-xr-x | org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java | 33 | ||||
-rwxr-xr-x | org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicPager.java | 15 | ||||
-rwxr-xr-x | org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java | 14 | ||||
-rwxr-xr-x | org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ViewComicActivity.java | 19 |
8 files changed, 77 insertions, 92 deletions
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 @@ <orderEntry type="jdk" jdkName="Android API 27 Platform" jdkType="Android SDK" /> <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="library" name="com.android.support:animated-vector-drawable-27.1.0" level="project" /> - <orderEntry type="library" name="__local_aars__:C.\cygwin64\home\fox\Projects\tt-comics\org.fox.ttcomics\libs\nineoldandroids-2.4.0.jar:unspecified@jar" level="project" /> - <orderEntry type="library" name="android.arch.lifecycle:common:1.1.0@jar" level="project" /> + <orderEntry type="library" name="frankiesardo:icepick:3.2.0@jar" level="project" /> <orderEntry type="library" name="com.android.support:appcompat-v7-27.1.0" level="project" /> - <orderEntry type="library" name="com.android.support:cardview-v7-27.1.0" level="project" /> <orderEntry type="library" name="jp.co.recruit_mp:android-HeaderFooterGridView-0.2.4" level="project" /> - <orderEntry type="library" name="com.android.support:support-compat-27.1.0" level="project" /> + <orderEntry type="library" name="frankiesardo:icepick-processor:3.2.0@jar" level="project" /> <orderEntry type="library" name="com.android.support:support-core-utils-27.1.0" level="project" /> <orderEntry type="library" name="android.arch.core:common:1.1.0@jar" level="project" /> - <orderEntry type="library" name="android.arch.lifecycle:viewmodel-1.1.0" level="project" /> - <orderEntry type="library" name="com.android.support:support-core-ui-27.1.0" level="project" /> <orderEntry type="library" name="ch.acra:acra-4.9.1" level="project" /> <orderEntry type="library" name="com.android.support:support-annotations:27.1.0@jar" level="project" /> + <orderEntry type="library" name="scout:scout:0.1.0@jar" level="project" /> <orderEntry type="library" name="com.ToxicBakery.viewpager.transforms:view-pager-transforms-1.2.32" level="project" /> - <orderEntry type="library" name="android.arch.lifecycle:livedata-core-1.1.0" level="project" /> + <orderEntry type="library" name="org.clojure:clojure:1.7.0@jar" level="project" /> + <orderEntry type="library" name="com.google.auto.service:auto-service:1.0-rc2@jar" level="project" /> <orderEntry type="library" name="__local_aars__:C.\cygwin64\home\fox\Projects\tt-comics\org.fox.ttcomics\libs\universal-image-loader-1.9.3.jar:unspecified@jar" level="project" /> + <orderEntry type="library" name="stencil:stencil:0.3.5@jar" level="project" /> + <orderEntry type="library" name="com.google.guava:guava:18.0@jar" level="project" /> + <orderEntry type="library" name="org.clojure:core.cache:0.6.3@jar" level="project" /> + <orderEntry type="library" name="com.nhaarman.listviewanimations:lib-core-3.1.0" level="project" /> + <orderEntry type="library" name="com.android.support:support-vector-drawable-27.1.0" level="project" /> + <orderEntry type="library" name="android.arch.lifecycle:runtime-1.1.0" level="project" /> + <orderEntry type="library" name="__local_aars__:C.\cygwin64\home\fox\Projects\tt-comics\org.fox.ttcomics\libs\nineoldandroids-2.4.0.jar:unspecified@jar" level="project" /> + <orderEntry type="library" name="android.arch.lifecycle:common:1.1.0@jar" level="project" /> + <orderEntry type="library" name="com.android.support:cardview-v7-27.1.0" level="project" /> + <orderEntry type="library" name="com.android.support:support-compat-27.1.0" level="project" /> + <orderEntry type="library" name="slingshot:slingshot:0.10.3@jar" level="project" /> + <orderEntry type="library" name="android.arch.lifecycle:viewmodel-1.1.0" level="project" /> + <orderEntry type="library" name="com.android.support:support-core-ui-27.1.0" level="project" /> + <orderEntry type="library" name="com.github.livefront:bridge-v1.1.1" level="project" /> + <orderEntry type="library" name="com.google.auto:auto-common:0.3@jar" level="project" /> + <orderEntry type="library" name="android.arch.lifecycle:livedata-core-1.1.0" level="project" /> <orderEntry type="library" name="com.android.support:support-media-compat-27.1.0" level="project" /> <orderEntry type="library" name="com.android.support:support-fragment-27.1.0" level="project" /> - <orderEntry type="library" name="com.nhaarman.listviewanimations:lib-core-3.1.0" level="project" /> <orderEntry type="library" name="com.shamanland:fab-0.0.8" level="project" /> <orderEntry type="library" name="com.android.support:support-v4-27.1.0" level="project" /> - <orderEntry type="library" name="android.arch.lifecycle:runtime-1.1.0" level="project" /> - <orderEntry type="library" name="com.android.support:support-vector-drawable-27.1.0" level="project" /> <orderEntry type="library" name="android.arch.core:runtime-1.1.0" level="project" /> + <orderEntry type="library" name="quoin:quoin:0.1.2@jar" level="project" /> + <orderEntry type="library" name="org.clojure:data.priority-map:0.0.2@jar" level="project" /> </component> </module>
\ 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 index 535d87f..1e9091c 100644..100755 --- 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 index 85e7537..a514bd0 100644..100755 --- 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);
@@ -202,14 +196,6 @@ public class ComicFragment extends Fragment implements GestureDetector.OnDoubleT }
@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
return false;
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));
|