summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-10-14 01:03:43 +0400
committerAndrew Dolgov <[email protected]>2012-10-14 01:03:43 +0400
commit459d45e10150d90326386f6cd1375bc9c768e500 (patch)
tree62f11ef96ff197bb83958daa883a6fc0434d6071 /src
parent1cd86a2346b69700550867a37284b9011b939280 (diff)
code cleanup
Diffstat (limited to 'src')
-rw-r--r--src/org/fox/ttcomics/CbzComicArchive.java2
-rw-r--r--src/org/fox/ttcomics/ComicListFragment.java42
-rw-r--r--src/org/fox/ttcomics/ComicPager.java4
-rw-r--r--src/org/fox/ttcomics/CommonActivity.java42
-rw-r--r--src/org/fox/ttcomics/MainActivity.java3
-rw-r--r--src/org/fox/ttcomics/ViewComicActivity.java9
6 files changed, 65 insertions, 37 deletions
diff --git a/src/org/fox/ttcomics/CbzComicArchive.java b/src/org/fox/ttcomics/CbzComicArchive.java
index 753321a..6033f4e 100644
--- a/src/org/fox/ttcomics/CbzComicArchive.java
+++ b/src/org/fox/ttcomics/CbzComicArchive.java
@@ -9,8 +9,6 @@ import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
-import android.util.Log;
-
public class CbzComicArchive extends ComicArchive {
private final String TAG = this.getClass().getSimpleName();
diff --git a/src/org/fox/ttcomics/ComicListFragment.java b/src/org/fox/ttcomics/ComicListFragment.java
index e1acec6..34d67d8 100644
--- a/src/org/fox/ttcomics/ComicListFragment.java
+++ b/src/org/fox/ttcomics/ComicListFragment.java
@@ -8,7 +8,6 @@ import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
-import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -26,11 +25,11 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
+import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListView;
-import android.widget.AdapterView.OnItemClickListener;
import android.widget.ProgressBar;
import android.widget.TextView;
@@ -70,10 +69,11 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
- String fileName = items.get(position);
+ File file = new File(items.get(position));
+ String fileBaseName = file.getName();
- int lastPos = m_activity.getLastPosition(fileName);
- int size = m_activity.getSize(fileName);
+ int lastPos = m_activity.getLastPosition(file.getAbsolutePath());
+ int size = m_activity.getSize(file.getAbsolutePath());
if (v == null) {
LayoutInflater vi = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
@@ -86,7 +86,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
TextView name = (TextView) v.findViewById(R.id.file_name);
if (name != null) {
- name.setText(fileName);
+ name.setText(fileBaseName);
}
TextView info = (TextView) v.findViewById(R.id.file_progress_info);
@@ -110,7 +110,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
}
}
- File thumbnailFile = new File(Environment.getExternalStorageDirectory() + "/" + m_activity.THUMBNAIL_PATH + "/" + fileName);
+ File thumbnailFile = new File(CommonActivity.getCacheFileName(fileBaseName));
ImageView thumbnail = (ImageView) v.findViewById(R.id.thumbnail);
@@ -141,9 +141,6 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
m_files = savedInstanceState.getStringArrayList("files");
}
-
- Log.d(TAG, "files count=" + m_files);
-
m_adapter = new ComicsListAdapter(getActivity(), R.layout.comics_list_row, m_files);
if (view.findViewById(R.id.comics_list) != null) {
@@ -189,6 +186,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
case R.id.menu_reset_progress:
if (fileName != null) {
m_activity.setLastPosition(fileName, 0);
+ m_activity.setLastMaxPosition(fileName, 0);
m_adapter.notifyDataSetChanged();
}
return true;
@@ -229,7 +227,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
protected Integer doInBackground(String... params) {
String comicsDir = params[0];
- File dir = new File(comicsDir + "/" + m_baseDirectory);
+ File dir = new File(comicsDir);
m_files.clear();
@@ -242,12 +240,10 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
java.util.Arrays.sort(archives);
for (File archive : archives) {
- String fileName = archive.getName();
-
if (archive.isDirectory() && m_mode == 0) {
- m_files.add(archive.getName());
+ m_files.add(archive.getAbsolutePath());
- } else if (fileName.toLowerCase().matches(".*\\.(cbz|zip)") && isAdded() && m_activity != null) {
+ } else if (archive.getName().toLowerCase().matches(".*\\.(cbz|zip)") && isAdded() && m_activity != null) {
try {
CbzComicArchive cba = new CbzComicArchive(archive.getAbsolutePath());
@@ -261,7 +257,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
if (!thumbnailDir.isDirectory()) { thumbnailDir.mkdirs(); };
- File thumbnailFile = new File(thumbnailDir.getAbsolutePath() + "/" + fileName);
+ File thumbnailFile = new File(CommonActivity.getCacheFileName(archive.getAbsolutePath()));
if (thumbnailDir.isDirectory() && !thumbnailFile.exists()) {
FileOutputStream fos = new FileOutputStream(thumbnailFile.getAbsolutePath());
@@ -279,30 +275,30 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
e.printStackTrace();
}
- int lastPos = m_activity.getLastPosition(fileName);
+ int lastPos = m_activity.getLastPosition(archive.getAbsolutePath());
switch (m_mode) {
case 0:
- m_files.add(fileName);
+ m_files.add(archive.getAbsolutePath());
break;
case 1:
if (lastPos == 0) {
- m_files.add(fileName);
+ m_files.add(archive.getAbsolutePath());
}
break;
case 2:
if (lastPos > 0 && lastPos != cba.getCount()-1) {
- m_files.add(fileName);
+ m_files.add(archive.getAbsolutePath());
}
break;
case 3:
if (lastPos == cba.getCount()-1) {
- m_files.add(fileName);
+ m_files.add(archive.getAbsolutePath());
}
break;
}
- m_activity.setSize(fileName, cba.getCount());
+ m_activity.setSize(archive.getAbsolutePath(), cba.getCount());
}
} catch (IOException e) {
// TODO Auto-generated catch block
@@ -330,7 +326,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
String comicsDir = m_prefs.getString("comics_directory", null);
if (comicsDir != null) {
- rescanTask.execute(comicsDir);
+ rescanTask.execute(m_baseDirectory.length() > 0 ? m_baseDirectory : comicsDir);
}
}
diff --git a/src/org/fox/ttcomics/ComicPager.java b/src/org/fox/ttcomics/ComicPager.java
index cd49c83..08e9c65 100644
--- a/src/org/fox/ttcomics/ComicPager.java
+++ b/src/org/fox/ttcomics/ComicPager.java
@@ -1,7 +1,6 @@
package org.fox.ttcomics;
import java.io.IOException;
-import java.io.InputStream;
import android.annotation.SuppressLint;
import android.app.Activity;
@@ -11,7 +10,6 @@ import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
-import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -101,7 +99,7 @@ public class ComicPager extends Fragment {
}
try {
- m_archive = new CbzComicArchive(m_prefs.getString("comics_directory", "") + "/" + m_fileName);
+ m_archive = new CbzComicArchive(m_fileName);
int position = m_activity.getLastPosition(m_fileName);
diff --git a/src/org/fox/ttcomics/CommonActivity.java b/src/org/fox/ttcomics/CommonActivity.java
index c768f70..9b66f20 100644
--- a/src/org/fox/ttcomics/CommonActivity.java
+++ b/src/org/fox/ttcomics/CommonActivity.java
@@ -1,10 +1,13 @@
package org.fox.ttcomics;
import java.io.File;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
+import android.os.Environment;
import android.preference.PreferenceManager;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
@@ -67,6 +70,15 @@ public class CommonActivity extends FragmentActivity {
editor.commit();
}
+ public void setLastMaxPosition(String fileName, int position) {
+ SharedPreferences lastread = getSharedPreferences("lastread", 0);
+
+ SharedPreferences.Editor editor = lastread.edit();
+ editor.putInt(fileName + ":max", position);
+
+ editor.commit();
+ }
+
public int getLastPosition(String fileName) {
SharedPreferences lastread = getSharedPreferences("lastread", 0);
@@ -120,5 +132,33 @@ public class CommonActivity extends FragmentActivity {
return width < height;
}
-
+
+ protected static String md5(String s) {
+ try {
+ MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
+ digest.update(s.getBytes());
+ byte messageDigest[] = digest.digest();
+
+ StringBuffer hexString = new StringBuffer();
+ for (int i=0; i<messageDigest.length; i++)
+ hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
+
+ return hexString.toString();
+
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ public static String getCacheFileName(String fileName) {
+ String hashedUrl = md5(fileName);
+
+ File storage = Environment.getExternalStorageDirectory();
+
+ File file = new File(storage.getAbsolutePath() + THUMBNAIL_PATH + "/" + hashedUrl + ".png");
+
+ return file.getAbsolutePath();
+ }
}
diff --git a/src/org/fox/ttcomics/MainActivity.java b/src/org/fox/ttcomics/MainActivity.java
index 452cda3..d0ffda1 100644
--- a/src/org/fox/ttcomics/MainActivity.java
+++ b/src/org/fox/ttcomics/MainActivity.java
@@ -9,7 +9,6 @@ import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
-import android.preference.PreferenceManager;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.Menu;
@@ -175,7 +174,7 @@ public class MainActivity extends CommonActivity {
public void onComicArchiveSelected(String fileName) {
super.onComicArchiveSelected(fileName);
- File file = new File(m_prefs.getString("comics_directory", "") + "/" + fileName);
+ File file = new File(fileName);
if (file.isDirectory()) {
Intent intent = new Intent(MainActivity.this,
diff --git a/src/org/fox/ttcomics/ViewComicActivity.java b/src/org/fox/ttcomics/ViewComicActivity.java
index db9a872..c8cac2c 100644
--- a/src/org/fox/ttcomics/ViewComicActivity.java
+++ b/src/org/fox/ttcomics/ViewComicActivity.java
@@ -1,9 +1,10 @@
package org.fox.ttcomics;
+import java.io.File;
+
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
-import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
@@ -41,7 +42,7 @@ public class ViewComicActivity extends CommonActivity {
}
getActionBar().setDisplayHomeAsUpEnabled(true);
- setTitle(m_fileName);
+ setTitle(new File(m_fileName).getName());
}
@Override
@@ -50,10 +51,6 @@ public class ViewComicActivity extends CommonActivity {
return true;
}
- /* public void onComicSelected(String fileName, int position, int size) {
- super.onComicSelected(fileName, position, size);
- } */
-
@Override
public void onSaveInstanceState(Bundle out) {
super.onSaveInstanceState(out);