From 8a53f37e5162ad0c068f57c3b1684fb7364031e8 Mon Sep 17 00:00:00 2001 From: Samuel Tardieu Date: Sat, 24 Mar 2012 10:56:55 +0100 Subject: Use MethodUtils to call overridePendingTransition The method is not invoked often enough that it deserves caching the result of its lookup. Using MethodUtils.invokeMethod() allows the removal of boilerplate code. --- main/src/cgeo/geocaching/compatibility/Compatibility.java | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) (limited to 'main') diff --git a/main/src/cgeo/geocaching/compatibility/Compatibility.java b/main/src/cgeo/geocaching/compatibility/Compatibility.java index 344ff6a..7622283 100644 --- a/main/src/cgeo/geocaching/compatibility/Compatibility.java +++ b/main/src/cgeo/geocaching/compatibility/Compatibility.java @@ -3,6 +3,8 @@ package cgeo.geocaching.compatibility; import cgeo.geocaching.Settings; import cgeo.geocaching.activity.AbstractActivity; +import org.apache.commons.lang3.reflect.MethodUtils; + import android.app.Activity; import android.content.Intent; import android.content.res.Configuration; @@ -14,8 +16,6 @@ import android.view.Display; import android.view.Surface; import android.widget.EditText; -import java.lang.reflect.Method; - public final class Compatibility { private final static int sdkVersion = Integer.parseInt(Build.VERSION.SDK); @@ -25,16 +25,7 @@ public final class Compatibility { private final static AndroidLevel8Interface level8; private final static AndroidLevel11Interface level11; - private static Method overridePendingTransitionMethod = null; - static { - if (isLevel5) { - try { - overridePendingTransitionMethod = Activity.class.getMethod("overridePendingTransition", Integer.TYPE, Integer.TYPE); - } catch (Exception e) { - Log.e(Settings.tag, "cannot get overridePendingTransition", e); - } - } if (isLevel8) { level8 = new AndroidLevel8(); } @@ -102,7 +93,7 @@ public final class Compatibility { private static void overridePendingTransition(final Activity activity, int enterAnim, int exitAnim) { try { - overridePendingTransitionMethod.invoke(activity, enterAnim, exitAnim); + MethodUtils.invokeMethod(activity, "overridePendingTransition", enterAnim, exitAnim); } catch (Exception e) { Log.e(Settings.tag, "cannot call overridePendingTransition", e); } -- cgit v1.1