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
176e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownpackage android.support.v7.internal.view.menu;
186e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown
196e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.os.Build;
206e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.support.v4.internal.view.SupportMenu;
216e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.support.v4.internal.view.SupportMenuItem;
226e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.support.v4.internal.view.SupportSubMenu;
236e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.view.Menu;
246e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.view.MenuItem;
256e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown
2689208232f3b5d1451408d787872504a190bc7ee0Chris Banes/**
2789208232f3b5d1451408d787872504a190bc7ee0Chris Banes * @hide
2889208232f3b5d1451408d787872504a190bc7ee0Chris Banes */
296e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownpublic final class MenuWrapperFactory {
306e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    private MenuWrapperFactory() {
316e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    }
326e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown
336e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    public static Menu createMenuWrapper(android.view.Menu frameworkMenu) {
3489208232f3b5d1451408d787872504a190bc7ee0Chris Banes        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
3589208232f3b5d1451408d787872504a190bc7ee0Chris Banes            return new MenuWrapperICS(frameworkMenu);
366e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        }
376e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        return frameworkMenu;
386e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    }
396e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown
406e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    public static MenuItem createMenuItemWrapper(android.view.MenuItem frameworkMenuItem) {
416e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
426e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown            return new MenuItemWrapperJB(frameworkMenuItem);
436e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
446e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown            return new MenuItemWrapperICS(frameworkMenuItem);
456e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        }
466e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        return frameworkMenuItem;
476e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    }
486e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown
496e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    public static SupportMenu createSupportMenuWrapper(android.view.Menu frameworkMenu) {
5089208232f3b5d1451408d787872504a190bc7ee0Chris Banes        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
5189208232f3b5d1451408d787872504a190bc7ee0Chris Banes            return new MenuWrapperICS(frameworkMenu);
526e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        }
536e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        throw new UnsupportedOperationException();
546e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    }
556e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown
566e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    public static SupportSubMenu createSupportSubMenuWrapper(
576e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown            android.view.SubMenu frameworkSubMenu) {
5889208232f3b5d1451408d787872504a190bc7ee0Chris Banes        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
5989208232f3b5d1451408d787872504a190bc7ee0Chris Banes            return new SubMenuWrapperICS(frameworkSubMenu);
606e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        }
616e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        throw new UnsupportedOperationException();
626e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    }
636e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown
646e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    public static SupportMenuItem createSupportMenuItemWrapper(
656e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown            android.view.MenuItem frameworkMenuItem) {
666e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
676e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown            return new MenuItemWrapperJB(frameworkMenuItem);
686e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
696e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown            return new MenuItemWrapperICS(frameworkMenuItem);
706e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        }
716e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown        throw new UnsupportedOperationException();
726e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown    }
736e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown}
74