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