diff options
| author | Bananeweizen <Bananeweizen@gmx.de> | 2012-02-17 18:01:47 +0100 |
|---|---|---|
| committer | Bananeweizen <Bananeweizen@gmx.de> | 2012-02-17 18:01:47 +0100 |
| commit | 9649d1c0fc401be51432c7e23943c5cb40679954 (patch) | |
| tree | 579a5aeeec7d7fe6eadc6e59995eede3016695e1 /main/src/cgeo/geocaching/compatibility | |
| parent | 5252edc70a02378624144a8e42ae4e71318f9ed3 (diff) | |
| download | cgeo-9649d1c0fc401be51432c7e23943c5cb40679954.zip cgeo-9649d1c0fc401be51432c7e23943c5cb40679954.tar.gz cgeo-9649d1c0fc401be51432c7e23943c5cb40679954.tar.bz2 | |
fix #1110: onPrepareOptionsMenu compatible with Android 3.0
Diffstat (limited to 'main/src/cgeo/geocaching/compatibility')
4 files changed, 53 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/compatibility/AndroidLevel11.java b/main/src/cgeo/geocaching/compatibility/AndroidLevel11.java new file mode 100644 index 0000000..acb9dca --- /dev/null +++ b/main/src/cgeo/geocaching/compatibility/AndroidLevel11.java @@ -0,0 +1,17 @@ +package cgeo.geocaching.compatibility; + +import android.app.Activity; + +/** + * Android level 11 support + * + * @author bananeweizen + * + */ +public class AndroidLevel11 implements AndroidLevel11Interface { + + public void invalidateOptionsMenu(final Activity activity) { + activity.invalidateOptionsMenu(); + } + +} diff --git a/main/src/cgeo/geocaching/compatibility/AndroidLevel11Dummy.java b/main/src/cgeo/geocaching/compatibility/AndroidLevel11Dummy.java new file mode 100644 index 0000000..cd18f67 --- /dev/null +++ b/main/src/cgeo/geocaching/compatibility/AndroidLevel11Dummy.java @@ -0,0 +1,17 @@ +package cgeo.geocaching.compatibility; + +import android.app.Activity; + +/** + * dummy class which has no functionality in the level 11 API + * + * @author bananeweizen + * + */ +public class AndroidLevel11Dummy implements AndroidLevel11Interface { + + public void invalidateOptionsMenu(final Activity activity) { + // do nothing + } + +} diff --git a/main/src/cgeo/geocaching/compatibility/AndroidLevel11Interface.java b/main/src/cgeo/geocaching/compatibility/AndroidLevel11Interface.java new file mode 100644 index 0000000..236e92d --- /dev/null +++ b/main/src/cgeo/geocaching/compatibility/AndroidLevel11Interface.java @@ -0,0 +1,8 @@ +package cgeo.geocaching.compatibility; + +import android.app.Activity; + +public interface AndroidLevel11Interface { + public void invalidateOptionsMenu(final Activity activity); + +} diff --git a/main/src/cgeo/geocaching/compatibility/Compatibility.java b/main/src/cgeo/geocaching/compatibility/Compatibility.java index 61e2629..b6d1061 100644 --- a/main/src/cgeo/geocaching/compatibility/Compatibility.java +++ b/main/src/cgeo/geocaching/compatibility/Compatibility.java @@ -24,6 +24,7 @@ public final class Compatibility { private static Method dataChangedMethod = null; private static Method getRotationMethod = null; + private static AndroidLevel11Interface level11; static { if (isLevel8) { @@ -36,6 +37,12 @@ public final class Compatibility { Log.e(Settings.tag, "Cannot load AndroidLevel8 class", e); } } + if (sdkVersion >= 11) { + level11 = new AndroidLevel11(); + } + else { + level11 = new AndroidLevel11Dummy(); + } } public static float getDirectionNow(final float directionNowPre, @@ -109,4 +116,8 @@ public final class Compatibility { activity.startActivity(intent); } + public static void invalidateOptionsMenu(final Activity activity) { + level11.invalidateOptionsMenu(activity); + } + } |
