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