From 61613a761220c8372bed851f7a83c255e9e5aeb0 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 14 Oct 2012 22:41:49 +0400 Subject: add support for android 2.3 --- src/org/fox/ttcomics/ComicFragment.java | 10 +++- src/org/fox/ttcomics/ComicPager.java | 4 +- src/org/fox/ttcomics/CommonActivity.java | 4 ++ src/org/fox/ttcomics/MainActivity.java | 68 +++++++++++++++------------ src/org/fox/ttcomics/PreferencesActivity.java | 8 ++++ src/org/fox/ttcomics/ViewComicActivity.java | 65 +++++++++++++------------ 6 files changed, 95 insertions(+), 64 deletions(-) (limited to 'src') diff --git a/src/org/fox/ttcomics/ComicFragment.java b/src/org/fox/ttcomics/ComicFragment.java index 7c0e527..668822a 100644 --- a/src/org/fox/ttcomics/ComicFragment.java +++ b/src/org/fox/ttcomics/ComicFragment.java @@ -40,7 +40,11 @@ public class ComicFragment extends Fragment { options.inJustDecodeBounds = true; BitmapFactory.decodeStream(archive.getItem(page), null, options); - options.inSampleSize = CommonActivity.calculateInSampleSize(options, 512, 512); + if (CommonActivity.isCompatMode()) { + options.inSampleSize = CommonActivity.calculateInSampleSize(options, 256, 256); + } else { + options.inSampleSize = CommonActivity.calculateInSampleSize(options, 512, 512); + } options.inJustDecodeBounds = false; return BitmapFactory.decodeStream(archive.getItem(page), null, options); @@ -73,6 +77,10 @@ public class ComicFragment extends Fragment { ComicPager pager = (ComicPager) getActivity().getSupportFragmentManager().findFragmentByTag(CommonActivity.FRAG_COMICS_PAGER); if (pager != null) { + if (CommonActivity.isCompatMode() && m_prefs.getBoolean("use_dark_theme", false)) { + image.setBackgroundColor(0xff000000); + } + image.setImageBitmap(loadImage(pager.getArchive(), m_page)); image.setMaxZoom(4f); image.setOnScaleChangedListener(new TouchImageView.OnScaleChangedListener() { diff --git a/src/org/fox/ttcomics/ComicPager.java b/src/org/fox/ttcomics/ComicPager.java index ea8a502..2dd9074 100644 --- a/src/org/fox/ttcomics/ComicPager.java +++ b/src/org/fox/ttcomics/ComicPager.java @@ -114,8 +114,8 @@ public class ComicPager extends Fragment { m_activity.onComicSelected(m_fileName, position); m_activity.setProgress(Math.round(((float)position / (float)m_archive.getCount()) * 10000)); - - if (m_prefs.getBoolean("dim_status_bar", false)) { + + if (!CommonActivity.isCompatMode() && m_prefs.getBoolean("dim_status_bar", false)) { view.setSystemUiVisibility(View.STATUS_BAR_HIDDEN); } } diff --git a/src/org/fox/ttcomics/CommonActivity.java b/src/org/fox/ttcomics/CommonActivity.java index 1508550..0a368b5 100644 --- a/src/org/fox/ttcomics/CommonActivity.java +++ b/src/org/fox/ttcomics/CommonActivity.java @@ -36,6 +36,10 @@ public class CommonActivity extends FragmentActivity { m_prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); } + + public static boolean isCompatMode() { + return android.os.Build.VERSION.SDK_INT <= 10; + } protected void setSmallScreen(boolean smallScreen) { Log.d(TAG, "m_smallScreenMode=" + smallScreen); diff --git a/src/org/fox/ttcomics/MainActivity.java b/src/org/fox/ttcomics/MainActivity.java index 38b22a5..f34ccb5 100644 --- a/src/org/fox/ttcomics/MainActivity.java +++ b/src/org/fox/ttcomics/MainActivity.java @@ -3,6 +3,7 @@ package org.fox.ttcomics; import java.io.File; import android.animation.LayoutTransition; +import android.annotation.SuppressLint; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.AlertDialog; @@ -20,10 +21,11 @@ import android.widget.ShareActionProvider; public class MainActivity extends CommonActivity { private final String TAG = this.getClass().getSimpleName(); - private TabListener m_tabListener = new TabListener(); + private TabListener m_tabListener; private int m_selectedTab; private String m_baseDirectory = ""; + @SuppressLint("NewApi") private class TabListener implements ActionBar.TabListener { public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) { @@ -88,33 +90,39 @@ public class MainActivity extends CommonActivity { m_baseDirectory = savedInstanceState.getString("baseDir"); } - ActionBar actionBar = getActionBar(); - - actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); - - actionBar.addTab(getActionBar().newTab() - .setText(R.string.tab_all_comics) - .setTabListener(m_tabListener)); - - actionBar.addTab(getActionBar().newTab() - .setText(R.string.tab_unread) - .setTabListener(m_tabListener)); - - actionBar.addTab(getActionBar().newTab() - .setText(R.string.tab_unfinished) - .setTabListener(m_tabListener)); - - actionBar.addTab(getActionBar().newTab() - .setText(R.string.tab_read) - .setTabListener(m_tabListener)); - - if (savedInstanceState != null) { - m_selectedTab = savedInstanceState.getInt("selectedTab"); - } else { - m_selectedTab = getIntent().getIntExtra("selectedTab", 0); + if (!isCompatMode()) { + m_tabListener = new TabListener(); + + ActionBar actionBar = getActionBar(); + + actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); + + actionBar.addTab(getActionBar().newTab() + .setText(R.string.tab_all_comics) + .setTabListener(m_tabListener)); + + actionBar.addTab(getActionBar().newTab() + .setText(R.string.tab_unread) + .setTabListener(m_tabListener)); + + actionBar.addTab(getActionBar().newTab() + .setText(R.string.tab_unfinished) + .setTabListener(m_tabListener)); + + actionBar.addTab(getActionBar().newTab() + .setText(R.string.tab_read) + .setTabListener(m_tabListener)); + + if (savedInstanceState != null) { + m_selectedTab = savedInstanceState.getInt("selectedTab"); + } else { + m_selectedTab = getIntent().getIntExtra("selectedTab", 0); + } + + actionBar.selectTab(actionBar.getTabAt(m_selectedTab)); + + actionBar.setDisplayHomeAsUpEnabled(m_baseDirectory.length() > 0); } - - actionBar.selectTab(actionBar.getTabAt(m_selectedTab)); if (m_prefs.getString("comics_directory", null) == null) { AlertDialog.Builder builder = new AlertDialog.Builder(this); @@ -138,9 +146,9 @@ public class MainActivity extends CommonActivity { alert.show(); } - actionBar.setDisplayHomeAsUpEnabled(m_baseDirectory.length() > 0); - - ((ViewGroup)findViewById(R.id.comics_list)).setLayoutTransition(new LayoutTransition()); + if (!isCompatMode()) { + ((ViewGroup)findViewById(R.id.comics_list)).setLayoutTransition(new LayoutTransition()); + } } @Override diff --git a/src/org/fox/ttcomics/PreferencesActivity.java b/src/org/fox/ttcomics/PreferencesActivity.java index 50df35c..84029f1 100644 --- a/src/org/fox/ttcomics/PreferencesActivity.java +++ b/src/org/fox/ttcomics/PreferencesActivity.java @@ -2,7 +2,9 @@ package org.fox.ttcomics; import android.content.SharedPreferences; import android.os.Bundle; +import android.preference.Preference; import android.preference.PreferenceActivity; +import android.preference.PreferenceCategory; import android.preference.PreferenceManager; public class PreferencesActivity extends PreferenceActivity { @@ -15,5 +17,11 @@ public class PreferencesActivity extends PreferenceActivity { .getDefaultSharedPreferences(getApplicationContext()); addPreferencesFromResource(R.xml.preferences); + + if (CommonActivity.isCompatMode()) { + Preference pref = findPreference("dim_status_bar"); + PreferenceCategory cat = (PreferenceCategory) findPreference("prefs_reading"); + cat.removePreference(pref); + } } } diff --git a/src/org/fox/ttcomics/ViewComicActivity.java b/src/org/fox/ttcomics/ViewComicActivity.java index 8197953..d813b57 100644 --- a/src/org/fox/ttcomics/ViewComicActivity.java +++ b/src/org/fox/ttcomics/ViewComicActivity.java @@ -54,7 +54,10 @@ public class ViewComicActivity extends CommonActivity { m_tmpFileName = savedInstanceState.getString("tmpFileName"); } - getActionBar().setDisplayHomeAsUpEnabled(true); + if (!isCompatMode()) { + getActionBar().setDisplayHomeAsUpEnabled(true); + } + setTitle(new File(m_fileName).getName()); if (m_prefs.getBoolean("use_full_screen", false)) { @@ -166,38 +169,38 @@ public class ViewComicActivity extends CommonActivity { cp.setCurrentItem(getMaxPosition(m_fileName)); break; case 2: - - LayoutInflater inflater = getLayoutInflater(); - View contentView = inflater.inflate(R.layout.dialog_location, null); - - final NumberPicker picker = (NumberPicker) contentView.findViewById(R.id.number_picker); - - picker.setMinValue(1); - picker.setMaxValue(getSize(m_fileName)); - picker.setValue(cp.getPosition()+1); - - 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(); + if (!isCompatMode()) { + LayoutInflater inflater = getLayoutInflater(); + View contentView = inflater.inflate(R.layout.dialog_location, null); + + final NumberPicker picker = (NumberPicker) contentView.findViewById(R.id.number_picker); - cp.setCurrentItem(picker.getValue()-1); + picker.setMinValue(1); + picker.setMaxValue(getSize(m_fileName)); + picker.setValue(cp.getPosition()+1); + + 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() { - } - }); - - seekDialog = seekBuilder.create(); - seekDialog.show(); - + 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(picker.getValue()-1); + + } + }); + + seekDialog = seekBuilder.create(); + seekDialog.show(); + } break; case 3: -- cgit v1.2.3