diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/org/fox/ttcomics/CbzComicArchive.java | 10 | ||||
-rw-r--r-- | src/org/fox/ttcomics/ComicListFragment.java | 15 | ||||
-rw-r--r-- | src/org/fox/ttcomics/ComicPager.java | 2 | ||||
-rw-r--r-- | src/org/fox/ttcomics/CommonActivity.java | 12 | ||||
-rw-r--r-- | src/org/fox/ttcomics/MainActivity.java | 45 | ||||
-rw-r--r-- | src/org/fox/ttcomics/ViewComicActivity.java | 2 |
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");
|