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 196e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.support.v4.view.ActionProvider; 206e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownimport android.view.MenuItem; 21d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banesimport android.view.View; 226e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 236e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brownclass MenuItemWrapperJB extends MenuItemWrapperICS { 246e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown MenuItemWrapperJB(android.view.MenuItem object) { 25a6fc0bcd9e65ed20193976cd02500152bb39a163Chris Banes // We do not want to use the emulation of Action Provider visibility override 26a6fc0bcd9e65ed20193976cd02500152bb39a163Chris Banes super(object, false); 276e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 286e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 296e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown @Override 30d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes ActionProviderWrapper createActionProviderWrapper(ActionProvider provider) { 31d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes return new ActionProviderWrapperJB(provider); 326e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 336e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 346e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown class ActionProviderWrapperJB extends ActionProviderWrapper 356e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown implements ActionProvider.VisibilityListener { 366e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown android.view.ActionProvider.VisibilityListener mListener; 376e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 386e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown public ActionProviderWrapperJB(ActionProvider inner) { 396e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown super(inner); 406e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 416e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 426e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown @Override 43d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes public View onCreateActionView(MenuItem forItem) { 44d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes return mInner.onCreateActionView(forItem); 45d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes } 46d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes 47d713f4f0643a5f6409b431f643f1ad25dba6c22fChris Banes @Override 486e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown public boolean overridesItemVisibility() { 496e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown return mInner.overridesItemVisibility(); 506e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 516e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 526e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown @Override 536e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown public boolean isVisible() { 546e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown return mInner.isVisible(); 556e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 566e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 576e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown @Override 586e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown public void refreshVisibility() { 596e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown mInner.refreshVisibility(); 606e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 616e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 626e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown @Override 636e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown public void setVisibilityListener( 646e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown android.view.ActionProvider.VisibilityListener listener) { 656e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown mListener = listener; 666e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown mInner.setVisibilityListener(listener != null ? this : null); 676e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 686e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown 696e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown @Override 706e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown public void onActionProviderVisibilityChanged(boolean isVisible) { 716e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown if (mListener != null) { 726e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown mListener.onActionProviderVisibilityChanged(isVisible); 736e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 746e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 756e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown } 766e6abe6eb358db4c3932752249c8ac61dd3dab21Jeff Brown} 77