summaryrefslogtreecommitdiff
path: root/org.fox.ttcomics
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2018-07-10 19:20:03 +0300
committerAndrew Dolgov <[email protected]>2018-07-10 19:20:03 +0300
commitf5fb25d8f5414643a9fc934623f061ffd6a94c3a (patch)
tree24a2e8831a58266042374cbd8cb30ec7c0e4412a /org.fox.ttcomics
parent45529bcca9d462c12269b81127f7de26aafc47bb (diff)
switch to use icepick/bridge for persistence
Diffstat (limited to 'org.fox.ttcomics')
-rwxr-xr-xorg.fox.ttcomics/build.gradle4
-rwxr-xr-xorg.fox.ttcomics/org.fox.ttcomics.iml33
-rwxr-xr-x[-rw-r--r--]org.fox.ttcomics/src/main/java/org/fox/ttcomics2/Application.java21
-rwxr-xr-x[-rw-r--r--]org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java30
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java33
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicPager.java15
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java14
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/ViewComicActivity.java19
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));