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