16e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown/* 26e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown * Copyright (C) 2013 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 19d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banesimport android.annotation.TargetApi; 20d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banesimport android.content.Context; 21d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banesimport android.os.Build; 22d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banesimport android.support.v4.internal.view.SupportMenuItem; 236e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.support.v4.view.ActionProvider; 246e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.view.MenuItem; 25d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banesimport android.view.View; 266e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 27d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes/** 28d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes * Wraps a support {@link SupportMenuItem} as a framework {@link android.view.MenuItem} 29d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes * @hide 30d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes */ 31d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes@TargetApi(Build.VERSION_CODES.JELLY_BEAN) 326e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownclass MenuItemWrapperJB extends MenuItemWrapperICS { 33d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes 34d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes MenuItemWrapperJB(Context context, SupportMenuItem object) { 35d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes super(context, object); 366e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 376e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 386e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown @Override 39d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes ActionProviderWrapper createActionProviderWrapper(android.view.ActionProvider provider) { 40d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes return new ActionProviderWrapperJB(mContext, provider); 416e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 426e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 436e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown class ActionProviderWrapperJB extends ActionProviderWrapper 44d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes implements android.view.ActionProvider.VisibilityListener { 45d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes ActionProvider.VisibilityListener mListener; 466e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 47d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes public ActionProviderWrapperJB(Context context, android.view.ActionProvider inner) { 48d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes super(context, inner); 496e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 506e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 516e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown @Override 52d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes public View onCreateActionView(MenuItem forItem) { 53d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes return mInner.onCreateActionView(forItem); 54d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes } 55d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes 56d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes @Override 576e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown public boolean overridesItemVisibility() { 586e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown return mInner.overridesItemVisibility(); 596e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 606e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 616e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown @Override 626e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown public boolean isVisible() { 636e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown return mInner.isVisible(); 646e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 656e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 666e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown @Override 676e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown public void refreshVisibility() { 686e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown mInner.refreshVisibility(); 696e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 706e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 716e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown @Override 72d837ef307ff53290159c0d7c8cf9e3e0dc2fa410Chris Banes public void setVisibilityListener(ActionProvider.VisibilityListener listener) { 736e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown mListener = listener; 746e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown mInner.setVisibilityListener(listener != null ? this : null); 756e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 766e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 776e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown @Override 786e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown public void onActionProviderVisibilityChanged(boolean isVisible) { 796e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown if (mListener != null) { 806e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown mListener.onActionProviderVisibilityChanged(isVisible); 816e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 826e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 836e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 846e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown} 85