summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-10-13 21:25:50 +0400
committerAndrew Dolgov <[email protected]>2012-10-13 21:25:50 +0400
commit56572183083d4b214166dd1b3edb6ce1fa8d9e35 (patch)
tree25c337ef8cb47b19757bb1908c05135e20d9b717 /src
parent0100dba4f426aed0f43a50389cd338860a60b95e (diff)
always use grid on tablets, sort zip entries, do not rescan data on
pause/resume, do not recreate thumbnails on each rescan
Diffstat (limited to 'src')
-rw-r--r--src/org/fox/ttcomics/CbzComicArchive.java10
-rw-r--r--src/org/fox/ttcomics/ComicListFragment.java15
-rw-r--r--src/org/fox/ttcomics/ComicPager.java2
-rw-r--r--src/org/fox/ttcomics/CommonActivity.java12
-rw-r--r--src/org/fox/ttcomics/MainActivity.java45
-rw-r--r--src/org/fox/ttcomics/ViewComicActivity.java2
6 files changed, 56 insertions, 30 deletions
diff --git a/src/org/fox/ttcomics/CbzComicArchive.java b/src/org/fox/ttcomics/CbzComicArchive.java
index a3464c6..ab53b85 100644
--- a/src/org/fox/ttcomics/CbzComicArchive.java
+++ b/src/org/fox/ttcomics/CbzComicArchive.java
@@ -3,6 +3,8 @@ package org.fox.ttcomics;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
@@ -35,7 +37,13 @@ public class CbzComicArchive {
m_entries.add(ze);
m_count++;
}
- }
+ }
+
+ Collections.sort(m_entries, new Comparator<ZipEntry>() {
+ public int compare(ZipEntry a, ZipEntry b) {
+ return a.getName().compareTo(b.getName());
+ }
+ });
}
diff --git a/src/org/fox/ttcomics/ComicListFragment.java b/src/org/fox/ttcomics/ComicListFragment.java
index 533970a..5a28714 100644
--- a/src/org/fox/ttcomics/ComicListFragment.java
+++ b/src/org/fox/ttcomics/ComicListFragment.java
@@ -74,7 +74,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
LayoutInflater vi = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- v = vi.inflate(m_activity.isPortrait() ? R.layout.comics_list_row : R.layout.comics_grid_row, null);
+ v = vi.inflate(ComicListFragment.this.getView().findViewById(R.id.comics_list) != null ? R.layout.comics_list_row : R.layout.comics_grid_row, null);
}
@@ -129,11 +129,15 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
if (savedInstanceState != null) {
m_mode = savedInstanceState.getInt("mode");
+ 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 (m_activity.isPortrait()) {
+ if (view.findViewById(R.id.comics_list) != null) {
ListView list = (ListView) view.findViewById(R.id.comics_list);
list.setAdapter(m_adapter);
list.setEmptyView(view.findViewById(R.id.no_comics));
@@ -245,8 +249,10 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
if (!thumbnailDir.isDirectory()) { thumbnailDir.mkdirs(); };
- if (thumbnailDir.isDirectory()) {
- FileOutputStream fos = new FileOutputStream(thumbnailDir.getAbsolutePath() + "/" + fileName);
+ File thumbnailFile = new File(thumbnailDir.getAbsolutePath() + "/" + fileName);
+
+ if (thumbnailDir.isDirectory() && !thumbnailFile.exists()) {
+ FileOutputStream fos = new FileOutputStream(thumbnailFile.getAbsolutePath());
byte[] buffer = new byte[1024];
int len = 0;
@@ -336,6 +342,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
super.onSaveInstanceState(out);
out.putInt("mode", m_mode);
+ out.putStringArrayList("files", m_files);
}
}
diff --git a/src/org/fox/ttcomics/ComicPager.java b/src/org/fox/ttcomics/ComicPager.java
index 3c79fbb..89287b6 100644
--- a/src/org/fox/ttcomics/ComicPager.java
+++ b/src/org/fox/ttcomics/ComicPager.java
@@ -31,8 +31,6 @@ public class ComicPager extends Fragment {
@Override
public Fragment getItem(int position) {
- Log.d(TAG, "getItem=" + position);
-
try {
return new ComicFragment(m_archive.getItem(position));
diff --git a/src/org/fox/ttcomics/CommonActivity.java b/src/org/fox/ttcomics/CommonActivity.java
index 48a4b15..8dee569 100644
--- a/src/org/fox/ttcomics/CommonActivity.java
+++ b/src/org/fox/ttcomics/CommonActivity.java
@@ -19,6 +19,8 @@ public class CommonActivity extends FragmentActivity {
protected SharedPreferences m_prefs;
+ private boolean m_smallScreenMode = true;
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -26,6 +28,16 @@ public class CommonActivity extends FragmentActivity {
m_prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
}
+
+ protected void setSmallScreen(boolean smallScreen) {
+ Log.d(TAG, "m_smallScreenMode=" + smallScreen);
+ m_smallScreenMode = smallScreen;
+ }
+
+ public boolean isSmallScreen() {
+ return m_smallScreenMode;
+ }
+
public void onComicArchiveSelected(String fileName) {
diff --git a/src/org/fox/ttcomics/MainActivity.java b/src/org/fox/ttcomics/MainActivity.java
index 53bf90a..a14d5bf 100644
--- a/src/org/fox/ttcomics/MainActivity.java
+++ b/src/org/fox/ttcomics/MainActivity.java
@@ -19,6 +19,7 @@ public class MainActivity extends CommonActivity {
private final String TAG = this.getClass().getSimpleName();
private TabListener m_tabListener = new TabListener();
+ private int m_selectedTab;
private class TabListener implements ActionBar.TabListener {
@@ -27,26 +28,25 @@ public class MainActivity extends CommonActivity {
}
public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) {
- // TODO Auto-generated method stub
-
- Log.d(TAG, "POS=" + tab.getPosition());
-
FragmentTransaction sft = getSupportFragmentManager().beginTransaction();
- switch (tab.getPosition()) {
- case 0:
- sft.replace(R.id.comics_list, new ComicListFragment(), FRAG_COMICS_LIST);
- break;
- case 1:
- sft.replace(R.id.comics_list, new ComicListFragment(1), FRAG_COMICS_LIST);
- break;
- case 2:
- sft.replace(R.id.comics_list, new ComicListFragment(2), FRAG_COMICS_LIST);
- break;
+ if (m_selectedTab != tab.getPosition() && m_selectedTab != -1) {
+ switch (tab.getPosition()) {
+ case 0:
+ sft.replace(R.id.comics_list, new ComicListFragment(), FRAG_COMICS_LIST);
+ break;
+ case 1:
+ sft.replace(R.id.comics_list, new ComicListFragment(1), FRAG_COMICS_LIST);
+ break;
+ case 2:
+ sft.replace(R.id.comics_list, new ComicListFragment(2), FRAG_COMICS_LIST);
+ break;
+ }
}
- sft.commit();
+ m_selectedTab = tab.getPosition();
+ sft.commit();
}
public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft) {
@@ -63,17 +63,17 @@ public class MainActivity extends CommonActivity {
requestWindowFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.activity_main);
+
+ setProgressBarVisibility(false);
- int tabIndex = 0;
+ setSmallScreen(findViewById(R.id.tablet_layout_hack) == null);
if (savedInstanceState == null) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
-
ft.replace(R.id.comics_list, new ComicListFragment(), FRAG_COMICS_LIST);
-
ft.commit();
} else {
- tabIndex = savedInstanceState.getInt("tabIndex");
+ m_selectedTab = -1;
}
ActionBar actionBar = getActionBar();
@@ -92,10 +92,11 @@ public class MainActivity extends CommonActivity {
.setText(R.string.tab_finished)
.setTabListener(m_tabListener));
- if (tabIndex != 0) {
- actionBar.selectTab(actionBar.getTabAt(tabIndex));
+ if (savedInstanceState != null) {
+ m_selectedTab = savedInstanceState.getInt("selectedTab");
}
+ actionBar.selectTab(actionBar.getTabAt(m_selectedTab));
if (m_prefs.getString("comics_directory", null) == null) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
@@ -132,7 +133,7 @@ public class MainActivity extends CommonActivity {
public void onSaveInstanceState(Bundle out) {
super.onSaveInstanceState(out);
- out.putInt("tabIndex", getActionBar().getSelectedTab().getPosition());
+ out.putInt("selectedTab", m_selectedTab);
}
}
diff --git a/src/org/fox/ttcomics/ViewComicActivity.java b/src/org/fox/ttcomics/ViewComicActivity.java
index c72d359..db9a872 100644
--- a/src/org/fox/ttcomics/ViewComicActivity.java
+++ b/src/org/fox/ttcomics/ViewComicActivity.java
@@ -29,7 +29,7 @@ public class ViewComicActivity extends CommonActivity {
setTheme(m_prefs.getBoolean("use_dark_theme", false) ? R.style.DarkTheme : R.style.AppTheme);
setContentView(R.layout.activity_view_comic);
-
+
if (savedInstanceState == null) {
m_fileName = getIntent().getStringExtra("fileName");