blob: ded84f227403e860079dd98556f766c74af884a0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
package org.fox.ttcomics2;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.github.chrisbanes.photoview.OnViewTapListener;
import com.github.chrisbanes.photoview.PhotoView;
import org.fox.ttcomics2.archive.ComicArchive;
import java.io.IOException;
import androidx.appcompat.app.ActionBar;
import icepick.State;
public class ComicFragment extends StateSavedFragment {
private final String TAG = this.getClass().getSimpleName();
private SharedPreferences m_prefs;
@State protected int m_page;
private ViewComicActivity m_activity;
@State protected ComicArchive m_archive;
private PhotoView m_image;
public ComicFragment() {
super();
}
public void initialize(ComicArchive archive, int page) {
m_archive = archive;
m_page = page;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_comic, container, false);
m_image = view.findViewById(R.id.comic_image);
try {
Glide.with(getContext())
.load(m_archive.getByteArray(m_page))
.dontAnimate()
.dontTransform()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(m_image);
} catch (IOException e) {
m_image.setImageResource(R.drawable.badimage);
e.printStackTrace();
}
if (m_prefs.getBoolean("fit_to_width", false)) {
m_image.setScaleType(ImageView.ScaleType.CENTER_CROP);
}
m_image.setOnViewTapListener(new OnViewTapListener() {
@Override
public void onViewTap(View view, float x, float y) {
int width = view.getWidth();
boolean fullScreenMode = m_prefs.getBoolean("use_full_screen", false);
if (x <= width / 10) {
m_activity.selectPreviousComic();
} else if (x > width-(width/10)) {
m_activity.selectNextComic();
} else {
ActionBar bar = m_activity.getSupportActionBar();
if (bar.isShowing()) {
bar.hide();
m_activity.hideSeekBar(true);
if (fullScreenMode) {
m_activity.hideSystemUI(true);
}
} else {
m_activity.hideSeekBar(false);
if (fullScreenMode) {
m_activity.hideSystemUI(false);
}
bar.show();
}
}
}
});
return view;
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
m_prefs = PreferenceManager.getDefaultSharedPreferences(activity.getApplicationContext());
m_activity = (ViewComicActivity) activity;
}
}
|