X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=apps%2FAndroidSupportV2%2Fsrc%2Fandroid%2Fsupport%2Fv2%2Fview%2FMenuCompat.java;fp=apps%2FAndroidSupportV2%2Fsrc%2Fandroid%2Fsupport%2Fv2%2Fview%2FMenuCompat.java;h=565f4cfa9adae79f9f3a6e4e3168b5ae987374cc;hb=811a5a4a3091f65fef340acafe62d6355b13c44f;hp=0000000000000000000000000000000000000000;hpb=4401ca4aa1b3938939c6c371dfda57aa0652696f;p=android_pandora.git diff --git a/apps/AndroidSupportV2/src/android/support/v2/view/MenuCompat.java b/apps/AndroidSupportV2/src/android/support/v2/view/MenuCompat.java new file mode 100644 index 0000000..565f4cf --- /dev/null +++ b/apps/AndroidSupportV2/src/android/support/v2/view/MenuCompat.java @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.support.v2.view; + +import android.view.MenuItem; + +/** + * Helper for accessing newer features in menus. + */ +public class MenuCompat { + /** + * Interface for the full API. + */ + interface MenuVersionImpl { + public boolean setShowAsAction(MenuItem item, int actionEnum); + } + + /** + * Interface implementation that doesn't use anything about v4 APIs. + */ + static class BaseMenuVersionImpl implements MenuVersionImpl { + @Override + public boolean setShowAsAction(MenuItem item, int actionEnum) { + return false; + } + } + + /** + * Interface implementation for devices with at least v11 APIs. + */ + static class HoneycombMenuVersionImpl implements MenuVersionImpl { + @Override + public boolean setShowAsAction(MenuItem item, int actionEnum) { + MenuCompatHoneycomb.setShowAsAction(item, actionEnum); + return true; + } + } + + /** + * Select the correct implementation to use for the current platform. + */ + static final MenuVersionImpl IMPL; + static { + //v4 if (android.os.Build.VERSION.SDK_INT >= 11) { + if (android.support.v2.os.Build.VERSION.SDK_INT >= 11) { + IMPL = new HoneycombMenuVersionImpl(); + } else { + IMPL = new BaseMenuVersionImpl(); + } + } + + // ------------------------------------------------------------------- + + /** + * Call {@link MenuItem#setShowAsAction(int) MenuItem.setShowAsAction()}. + * If running on a pre-{@android.os.Build.VERSION_CODES#HONEYCOMB} device, + * does nothing and returns false. Otherwise returns true. + */ + public static boolean setShowAsAction(MenuItem item, int actionEnum) { + return IMPL.setShowAsAction(item, actionEnum); + } +}