MenuWrapperFactory.java revision c39d9c75590eca86a5e7e32a8824ba04a0d42e9b
16e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown/*
26e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown * Copyright (C) 2012 The Android Open Source Project
36e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown *
46e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License");
56e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown * you may not use this file except in compliance with the License.
66e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown * You may obtain a copy of the License at
76e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown *
86e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown *      http://www.apache.org/licenses/LICENSE-2.0
96e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown *
106e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown * Unless required by applicable law or agreed to in writing, software
116e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS,
126e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown * See the License for the specific language governing permissions and
146e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown * limitations under the License.
156e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown */
166e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown
1766698bb15ba0f873aa1c2290cc50d6bb839a474aChris Banespackage android.support.v7.view.menu;
186e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown
19d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banesimport android.content.Context;
206e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.os.Build;
21c39d9c75590eca86a5e7e32a8824ba04a0d42e9bAlan Viveretteimport android.support.annotation.RestrictTo;
226e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.support.v4.internal.view.SupportMenu;
236e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.support.v4.internal.view.SupportMenuItem;
246e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.support.v4.internal.view.SupportSubMenu;
256e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.view.Menu;
266e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.view.MenuItem;
27d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banesimport android.view.SubMenu;
286e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown
29c39d9c75590eca86a5e7e32a8824ba04a0d42e9bAlan Viveretteimport static android.support.annotation.RestrictTo.Scope.GROUP_ID;
30c39d9c75590eca86a5e7e32a8824ba04a0d42e9bAlan Viverette
3189208232f3b5d1451408d787872504a190bc7ee0Chris Banes/**
3289208232f3b5d1451408d787872504a190bc7ee0Chris Banes * @hide
3389208232f3b5d1451408d787872504a190bc7ee0Chris Banes */
34c39d9c75590eca86a5e7e32a8824ba04a0d42e9bAlan Viverette@RestrictTo(GROUP_ID)
356e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownpublic final class MenuWrapperFactory {
366e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    private MenuWrapperFactory() {
376e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    }
386e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown
39d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes    public static Menu wrapSupportMenu(Context context, SupportMenu supportMenu) {
4089208232f3b5d1451408d787872504a190bc7ee0Chris Banes        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
41d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes            return new MenuWrapperICS(context, supportMenu);
426e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        }
43d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes        throw new UnsupportedOperationException();
446e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    }
456e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown
46d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes    public static MenuItem wrapSupportMenuItem(Context context, SupportMenuItem supportMenuItem) {
476e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
48d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes            return new MenuItemWrapperJB(context, supportMenuItem);
496e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
50d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes            return new MenuItemWrapperICS(context, supportMenuItem);
516e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        }
526e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        throw new UnsupportedOperationException();
536e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    }
546e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown
55d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes    public static SubMenu wrapSupportSubMenu(Context context, SupportSubMenu supportSubMenu) {
5689208232f3b5d1451408d787872504a190bc7ee0Chris Banes        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
57d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes            return new SubMenuWrapperICS(context, supportSubMenu);
586e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        }
596e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        throw new UnsupportedOperationException();
606e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    }
616e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown}
62