summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-10-15 12:33:34 +0400
committerAndrew Dolgov <[email protected]>2012-10-15 12:33:34 +0400
commit65be0b20c458ad7c740cbf54ffb74b3f0c13c6c3 (patch)
tree92235fb323270aae1134b0f33e2c27b52172488d /src
parent742eb6ebf36d6bfe9a1b51432a1b455efcc8a0d9 (diff)
fix various page index related bugs, add location dialog in compat mode
Diffstat (limited to 'src')
-rw-r--r--src/org/fox/ttcomics/CbzComicArchive.java2
-rw-r--r--src/org/fox/ttcomics/ComicFragment.java8
-rw-r--r--src/org/fox/ttcomics/ComicListFragment.java4
-rw-r--r--src/org/fox/ttcomics/ComicPager.java5
-rw-r--r--src/org/fox/ttcomics/ViewComicActivity.java67
5 files changed, 73 insertions, 13 deletions
diff --git a/src/org/fox/ttcomics/CbzComicArchive.java b/src/org/fox/ttcomics/CbzComicArchive.java
index 6033f4e..ecbbd5f 100644
--- a/src/org/fox/ttcomics/CbzComicArchive.java
+++ b/src/org/fox/ttcomics/CbzComicArchive.java
@@ -22,7 +22,7 @@ public class CbzComicArchive extends ComicArchive {
}
@Override
- public InputStream getItem(int index) throws IOException {
+ public InputStream getItem(int index) throws IOException {
return m_zipFile.getInputStream(m_entries.get(index));
}
diff --git a/src/org/fox/ttcomics/ComicFragment.java b/src/org/fox/ttcomics/ComicFragment.java
index 668822a..fbd8639 100644
--- a/src/org/fox/ttcomics/ComicFragment.java
+++ b/src/org/fox/ttcomics/ComicFragment.java
@@ -40,11 +40,7 @@ public class ComicFragment extends Fragment {
options.inJustDecodeBounds = true;
BitmapFactory.decodeStream(archive.getItem(page), null, options);
- if (CommonActivity.isCompatMode()) {
- options.inSampleSize = CommonActivity.calculateInSampleSize(options, 256, 256);
- } else {
- options.inSampleSize = CommonActivity.calculateInSampleSize(options, 512, 512);
- }
+ options.inSampleSize = CommonActivity.calculateInSampleSize(options, 512, 512);
options.inJustDecodeBounds = false;
return BitmapFactory.decodeStream(archive.getItem(page), null, options);
@@ -98,7 +94,7 @@ public class ComicFragment extends Fragment {
TextView page = (TextView) view.findViewById(R.id.comic_page);
if (page != null) {
- page.setText(String.valueOf(m_page));
+ page.setText(String.valueOf(m_page+1));
}
return view;
diff --git a/src/org/fox/ttcomics/ComicListFragment.java b/src/org/fox/ttcomics/ComicListFragment.java
index ee35059..db2ae51 100644
--- a/src/org/fox/ttcomics/ComicListFragment.java
+++ b/src/org/fox/ttcomics/ComicListFragment.java
@@ -103,7 +103,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
if (progressBar != null) {
if (size != -1) {
- progressBar.setMax(size);
+ progressBar.setMax(size-1);
progressBar.setProgress(lastPos);
} else {
progressBar.setVisibility(View.GONE);
@@ -242,8 +242,6 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
m_files.clear();
- File storage = Environment.getExternalStorageDirectory();
-
if (dir.isDirectory()) {
File archives[] = dir.listFiles();
int fileIndex = 0;
diff --git a/src/org/fox/ttcomics/ComicPager.java b/src/org/fox/ttcomics/ComicPager.java
index 2dd9074..0676967 100644
--- a/src/org/fox/ttcomics/ComicPager.java
+++ b/src/org/fox/ttcomics/ComicPager.java
@@ -28,7 +28,7 @@ public class ComicPager extends Fragment {
@Override
public Fragment getItem(int position) {
- return new ComicFragment(position+1);
+ return new ComicFragment(position);
}
@Override
@@ -102,6 +102,7 @@ public class ComicPager extends Fragment {
pager.setCurrentItem(position);
m_activity.onComicSelected(m_fileName, position);
+ m_activity.setProgress(Math.round(((float)position / (float)(m_archive.getCount()-1)) * 10000));
} catch (IOException e) {
m_activity.toast(R.string.error_could_not_open_comic_archive);
@@ -113,7 +114,7 @@ public class ComicPager extends Fragment {
public void onPageSelected(int position) {
m_activity.onComicSelected(m_fileName, position);
- m_activity.setProgress(Math.round(((float)position / (float)m_archive.getCount()) * 10000));
+ m_activity.setProgress(Math.round(((float)position / (float)(m_archive.getCount()-1)) * 10000));
if (!CommonActivity.isCompatMode() && m_prefs.getBoolean("dim_status_bar", false)) {
view.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
diff --git a/src/org/fox/ttcomics/ViewComicActivity.java b/src/org/fox/ttcomics/ViewComicActivity.java
index d813b57..1bd47b5 100644
--- a/src/org/fox/ttcomics/ViewComicActivity.java
+++ b/src/org/fox/ttcomics/ViewComicActivity.java
@@ -23,6 +23,8 @@ import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.NumberPicker;
+import android.widget.SeekBar;
+import android.widget.TextView;
public class ViewComicActivity extends CommonActivity {
private final String TAG = this.getClass().getSimpleName();
@@ -96,7 +98,7 @@ public class ViewComicActivity extends CommonActivity {
Log.d(TAG, "FILE=" + tmpFile);
- InputStream is = pager.getArchive().getItem(pager.getPosition()+1);
+ InputStream is = pager.getArchive().getItem(pager.getPosition());
FileOutputStream fos = new FileOutputStream(tmpFile);
@@ -200,6 +202,69 @@ public class ViewComicActivity extends CommonActivity {
seekDialog = seekBuilder.create();
seekDialog.show();
+ } else {
+ LayoutInflater inflater = getLayoutInflater();
+ final View contentView = inflater.inflate(R.layout.dialog_location_compat, null);
+
+ final SeekBar seeker = (SeekBar) contentView.findViewById(R.id.number_seeker);
+ final TextView pageNum = (TextView) contentView.findViewById(R.id.page_number);
+ final int size = getSize(m_fileName);
+
+ seeker.setMax(size-1);
+ seeker.setProgress(cp.getPosition());
+
+ pageNum.setText(getString(R.string.dialog_location_page_number, cp.getPosition()+1, size));
+
+ seeker.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
+
+ @Override
+ public void onProgressChanged(
+ SeekBar seekBar, int progress,
+ boolean fromUser) {
+
+ pageNum.setText(getString(R.string.dialog_location_page_number, progress+1, size));
+
+ }
+
+ @Override
+ public void onStartTrackingTouch(
+ SeekBar arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void onStopTrackingTouch(
+ SeekBar arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ });
+
+ Dialog seekDialog = new Dialog(ViewComicActivity.this);
+ AlertDialog.Builder seekBuilder = new AlertDialog.Builder(ViewComicActivity.this)
+ .setTitle(R.string.dialog_open_location)
+ .setView(contentView)
+ .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.cancel();
+ }
+ }).setPositiveButton(R.string.dialog_open_location, new DialogInterface.OnClickListener() {
+
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.cancel();
+
+ cp.setCurrentItem(seeker.getProgress());
+
+ }
+ });
+
+ seekDialog = seekBuilder.create();
+ seekDialog.show();
+
}
break;