diff options
-rw-r--r-- | AndroidManifest.xml | 2 | ||||
-rw-r--r-- | res/layout/dialog_location_compat.xml | 20 | ||||
-rw-r--r-- | res/values/strings.xml | 1 | ||||
-rw-r--r-- | src/org/fox/ttcomics/CbzComicArchive.java | 2 | ||||
-rw-r--r-- | src/org/fox/ttcomics/ComicFragment.java | 8 | ||||
-rw-r--r-- | src/org/fox/ttcomics/ComicListFragment.java | 4 | ||||
-rw-r--r-- | src/org/fox/ttcomics/ComicPager.java | 5 | ||||
-rw-r--r-- | src/org/fox/ttcomics/ViewComicActivity.java | 67 |
8 files changed, 95 insertions, 14 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 0b9eda0..d0c4cff 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,6 +1,6 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.fox.ttcomics"
- android:versionCode="6"
+ android:versionCode="7"
android:versionName="1.0.2" >
<uses-sdk
diff --git a/res/layout/dialog_location_compat.xml b/res/layout/dialog_location_compat.xml new file mode 100644 index 0000000..3e2467e --- /dev/null +++ b/res/layout/dialog_location_compat.xml @@ -0,0 +1,20 @@ +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/linearLayout1"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal" >
+
+ <SeekBar
+ android:id="@+id/number_seeker"
+ android:layout_weight="1"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <TextView
+ android:id="@+id/page_number"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:text="1 of 365" />
+
+</LinearLayout>
\ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 4917c26..adadd3a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -34,4 +34,5 @@ <string name="error_loading_image">Error loading image</string>
<string name="error_could_not_read_folder_contents_">Could not read folder contents.</string>
<string name="picker_choose">Choose %1$s</string>
+ <string name="dialog_location_page_number">%1$d of %2$d</string>
</resources>
\ No newline at end of file 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;
|