From e4d26b8c752f03dc8a40bcb59a0e601835205083 Mon Sep 17 00:00:00 2001 From: Joe Steele Date: Sat, 16 Aug 2014 18:59:50 -0400 Subject: [PATCH] Remove code for unsupported API levels An assortment of miscellaneous changes, each usually limited in scope to a single file. --- .../k9/activity/K9PreferenceActivity.java | 12 +--------- src/com/fsck/k9/activity/MessageCompose.java | 23 +----------------- src/com/fsck/k9/activity/MessageList.java | 16 +------------ .../activity/misc/ContactPictureLoader.java | 20 ++-------------- .../fsck/k9/fragment/MessageListFragment.java | 3 ++- src/com/fsck/k9/helper/MergeCursor.java | 2 -- src/com/fsck/k9/helper/Utility.java | 16 ------------- src/com/fsck/k9/provider/EmailProvider.java | 2 -- src/com/fsck/k9/view/MessageWebView.java | 24 +++++-------------- .../fsck/k9/view/NonLockingScrollView.java | 10 +------- 10 files changed, 14 insertions(+), 114 deletions(-) diff --git a/src/com/fsck/k9/activity/K9PreferenceActivity.java b/src/com/fsck/k9/activity/K9PreferenceActivity.java index 5f3387b26..faecd6d28 100644 --- a/src/com/fsck/k9/activity/K9PreferenceActivity.java +++ b/src/com/fsck/k9/activity/K9PreferenceActivity.java @@ -1,6 +1,5 @@ package com.fsck.k9.activity; -import android.os.Build; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; @@ -13,16 +12,7 @@ public class K9PreferenceActivity extends PreferenceActivity { @Override public void onCreate(Bundle icicle) { K9ActivityCommon.setLanguage(this, K9.getK9Language()); - - if (Build.VERSION.SDK_INT >= 6 && Build.VERSION.SDK_INT < 14) { - // There's a display bug in all supported Android versions before 4.0 (SDK 14) which - // causes PreferenceScreens to have a black background. - // http://code.google.com/p/android/issues/detail?id=4611 - setTheme(K9.getK9ThemeResourceId(K9.Theme.DARK)); - } else { - setTheme(K9.getK9ThemeResourceId()); - } - + setTheme(K9.getK9ThemeResourceId()); super.onCreate(icicle); } diff --git a/src/com/fsck/k9/activity/MessageCompose.java b/src/com/fsck/k9/activity/MessageCompose.java index 180bf42df..f27e334fc 100644 --- a/src/com/fsck/k9/activity/MessageCompose.java +++ b/src/com/fsck/k9/activity/MessageCompose.java @@ -8,10 +8,8 @@ import java.io.UnsupportedEncodingException; import java.text.DateFormat; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.Date; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -3697,7 +3695,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, public List getQueryParameters(String key) { final List params = new ArrayList(); - for (String paramName : getQueryParameterNames()) { + for (String paramName : uri.getQueryParameterNames()) { if (paramName.equalsIgnoreCase(key)) { params.addAll(uri.getQueryParameters(paramName)); } @@ -3705,25 +3703,6 @@ public class MessageCompose extends K9Activity implements OnClickListener, return params; } - @TargetApi(11) - private Set getQueryParameterNames() { - if (Build.VERSION.SDK_INT >= 11) { - return uri.getQueryParameterNames(); - } - - return getQueryParameterNamesPreSdk11(); - } - - private Set getQueryParameterNamesPreSdk11() { - if (mParamNames == null) { - String query = uri.getQuery(); - Set paramNames = new HashSet(); - Collections.addAll(paramNames, query.split("(=[^&]*(&|$))|&")); - mParamNames = paramNames; - } - - return mParamNames; - } } private class SendMessageTask extends AsyncTask { diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java index 2802f459a..3da206094 100644 --- a/src/com/fsck/k9/activity/MessageList.java +++ b/src/com/fsck/k9/activity/MessageList.java @@ -1391,20 +1391,6 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme } } - private void restartActivity() { - // restart the current activity, so that the theme change can be applied - if (Build.VERSION.SDK_INT < 11) { - Intent intent = getIntent(); - intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); - finish(); - overridePendingTransition(0, 0); // disable animations to speed up the switch - startActivity(intent); - overridePendingTransition(0, 0); - } else { - recreate(); - } - } - @Override public void displayMessageSubject(String subject) { if (mDisplayMode == DisplayMode.MESSAGE_VIEW) { @@ -1541,7 +1527,7 @@ public class MessageList extends K9FragmentActivity implements MessageListFragme } }).start(); - restartActivity(); + recreate(); } private void showDefaultTitleView() { diff --git a/src/com/fsck/k9/activity/misc/ContactPictureLoader.java b/src/com/fsck/k9/activity/misc/ContactPictureLoader.java index 842bec4eb..819fc7061 100644 --- a/src/com/fsck/k9/activity/misc/ContactPictureLoader.java +++ b/src/com/fsck/k9/activity/misc/ContactPictureLoader.java @@ -9,7 +9,6 @@ import java.util.concurrent.RejectedExecutionException; import java.util.regex.Matcher; import java.util.regex.Pattern; -import android.annotation.TargetApi; import android.app.ActivityManager; import android.content.ContentResolver; import android.content.Context; @@ -23,7 +22,6 @@ import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.AsyncTask; -import android.os.Build; import android.support.v4.util.LruCache; import android.widget.QuickContactBadge; import com.fsck.k9.helper.Contacts; @@ -103,15 +101,10 @@ public class ContactPictureLoader { final int cacheSize = 1024 * 1024 * memClass / 16; mBitmapCache = new LruCache(cacheSize) { - @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1) @Override protected int sizeOf(Address key, Bitmap bitmap) { // The cache size will be measured in bytes rather than number of items. - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) { - return bitmap.getByteCount(); - } - - return bitmap.getRowBytes() * bitmap.getHeight(); + return bitmap.getByteCount(); } }; } @@ -148,7 +141,7 @@ public class ContactPictureLoader { calculateFallbackBitmap(address), task); badge.setImageDrawable(asyncDrawable); try { - task.exec(); + task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } catch (RejectedExecutionException e) { // We flooded the thread pool queue... use a fallback picture badge.setImageBitmap(calculateFallbackBitmap(address)); @@ -275,15 +268,6 @@ public class ContactPictureLoader { mAddress = new Address(address); } - @TargetApi(Build.VERSION_CODES.HONEYCOMB) - public void exec(Void... args) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { - executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, args); - } else { - execute(args); - } - } - public Address getAddress() { return mAddress; } diff --git a/src/com/fsck/k9/fragment/MessageListFragment.java b/src/com/fsck/k9/fragment/MessageListFragment.java index 1a45c7da9..3648e8fe3 100644 --- a/src/com/fsck/k9/fragment/MessageListFragment.java +++ b/src/com/fsck/k9/fragment/MessageListFragment.java @@ -2,6 +2,7 @@ package com.fsck.k9.fragment; import java.lang.ref.WeakReference; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.EnumMap; @@ -150,7 +151,7 @@ public class MessageListFragment extends Fragment implements OnItemClickListener private static final int FOLDER_NAME_COLUMN = 17; private static final int THREAD_COUNT_COLUMN = 18; - private static final String[] PROJECTION = Utility.copyOf(THREADED_PROJECTION, + private static final String[] PROJECTION = Arrays.copyOf(THREADED_PROJECTION, THREAD_COUNT_COLUMN); diff --git a/src/com/fsck/k9/helper/MergeCursor.java b/src/com/fsck/k9/helper/MergeCursor.java index 7205a5039..a69ebf5bc 100644 --- a/src/com/fsck/k9/helper/MergeCursor.java +++ b/src/com/fsck/k9/helper/MergeCursor.java @@ -19,7 +19,6 @@ package com.fsck.k9.helper; import java.util.Comparator; -import android.annotation.TargetApi; import android.content.ContentResolver; import android.database.CharArrayBuffer; import android.database.ContentObserver; @@ -204,7 +203,6 @@ public class MergeCursor implements Cursor { return mActiveCursor.getString(columnIndex); } - @TargetApi(11) @Override public int getType(int columnIndex) { return mActiveCursor.getType(columnIndex); diff --git a/src/com/fsck/k9/helper/Utility.java b/src/com/fsck/k9/helper/Utility.java index 5844c701f..a5bea3448 100644 --- a/src/com/fsck/k9/helper/Utility.java +++ b/src/com/fsck/k9/helper/Utility.java @@ -1,13 +1,11 @@ package com.fsck.k9.helper; -import android.annotation.SuppressLint; import android.app.Application; import android.content.Context; import android.database.Cursor; import android.net.ConnectivityManager; import android.net.NetworkInfo; -import android.os.Build; import android.os.Handler; import android.os.Looper; import android.text.Editable; @@ -24,7 +22,6 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.UnsupportedEncodingException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.regex.Matcher; @@ -698,19 +695,6 @@ public class Utility { return null; } - @SuppressLint("NewApi") - public static String[] copyOf(String[] original, int newLength) { - if (Build.VERSION.SDK_INT >= 9) { - return Arrays.copyOf(original, newLength); - } - - String[] newArray = new String[newLength]; - int copyLength = (original.length >= newLength) ? newLength : original.length; - System.arraycopy(original, 0, newArray, 0, copyLength); - - return newArray; - } - /** * @return a {@link Handler} tied to the main thread. */ diff --git a/src/com/fsck/k9/provider/EmailProvider.java b/src/com/fsck/k9/provider/EmailProvider.java index 394edad1d..9537ed64a 100644 --- a/src/com/fsck/k9/provider/EmailProvider.java +++ b/src/com/fsck/k9/provider/EmailProvider.java @@ -18,7 +18,6 @@ import com.fsck.k9.mail.store.LockableDatabase.WrappedException; import com.fsck.k9.mail.store.UnavailableStorageException; import com.fsck.k9.search.SqlQueryBuilder; -import android.annotation.TargetApi; import android.content.ContentProvider; import android.content.ContentResolver; import android.content.ContentValues; @@ -797,7 +796,6 @@ public class EmailProvider extends ContentProvider { return super.getString(realColumnIndex); } - @TargetApi(11) @Override public int getType(int columnIndex) { int realColumnIndex = mColumnMapping[columnIndex]; diff --git a/src/com/fsck/k9/view/MessageWebView.java b/src/com/fsck/k9/view/MessageWebView.java index b3757198c..3198d4723 100644 --- a/src/com/fsck/k9/view/MessageWebView.java +++ b/src/com/fsck/k9/view/MessageWebView.java @@ -1,9 +1,7 @@ package com.fsck.k9.view; -import android.annotation.TargetApi; import android.content.Context; import android.content.pm.PackageManager; -import android.os.Build; import android.util.AttributeSet; import android.util.Log; import android.view.KeyEvent; @@ -83,7 +81,7 @@ public class MessageWebView extends RigidWebView { // TODO: Review alternatives. NARROW_COLUMNS is deprecated on KITKAT webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS); - disableOverscrolling(); + setOverScrollMode(OVER_SCROLL_NEVER); webSettings.setTextZoom(K9.getFontSizes().getMessageViewContentAsPercent()); @@ -94,23 +92,13 @@ public class MessageWebView extends RigidWebView { /** * Disable on-screen zoom controls on devices that support zooming via pinch-to-zoom. */ - @TargetApi(11) private void disableDisplayZoomControls() { - if (Build.VERSION.SDK_INT >= 11) { - PackageManager pm = getContext().getPackageManager(); - boolean supportsMultiTouch = - pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH) || - pm.hasSystemFeature(PackageManager.FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT); + PackageManager pm = getContext().getPackageManager(); + boolean supportsMultiTouch = + pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH) || + pm.hasSystemFeature(PackageManager.FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT); - getSettings().setDisplayZoomControls(!supportsMultiTouch); - } - } - - @TargetApi(9) - private void disableOverscrolling() { - if (Build.VERSION.SDK_INT >= 9) { - setOverScrollMode(OVER_SCROLL_NEVER); - } + getSettings().setDisplayZoomControls(!supportsMultiTouch); } /** diff --git a/src/com/fsck/k9/view/NonLockingScrollView.java b/src/com/fsck/k9/view/NonLockingScrollView.java index 05788e22d..38e479ef8 100644 --- a/src/com/fsck/k9/view/NonLockingScrollView.java +++ b/src/com/fsck/k9/view/NonLockingScrollView.java @@ -17,7 +17,6 @@ package com.fsck.k9.view; -import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Rect; import android.util.AttributeSet; @@ -124,7 +123,7 @@ public class NonLockingScrollView extends ScrollView { private final Rect sHitFrame = new Rect(); private boolean isEventOverChild(MotionEvent ev, ArrayList children) { - final int actionIndex = getActionIndex(ev); + final int actionIndex = ev.getActionIndex(); final float x = ev.getX(actionIndex) + getScrollX(); final float y = ev.getY(actionIndex) + getScrollY(); @@ -142,13 +141,6 @@ public class NonLockingScrollView extends ScrollView { return false; } - @SuppressLint("InlinedApi") - private static int getActionIndex(MotionEvent ev) { - // Equivalent to MotionEvent.getActionIndex() which is in API 8+ - return ((ev.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK) - >> MotionEvent.ACTION_POINTER_INDEX_SHIFT); - } - private static boolean canViewReceivePointerEvents(View child) { return child.getVisibility() == VISIBLE || (child.getAnimation() != null); }