130837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell/* 230837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * Copyright (C) 2013 The Android Open Source Project 330837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * 430837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * Licensed under the Apache License, Version 2.0 (the "License"); 530837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * you may not use this file except in compliance with the License. 630837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * You may obtain a copy of the License at 730837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * 830837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * http://www.apache.org/licenses/LICENSE-2.0 930837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * 1030837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * Unless required by applicable law or agreed to in writing, software 1130837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * distributed under the License is distributed on an "AS IS" BASIS, 1230837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1330837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * See the License for the specific language governing permissions and 1430837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * limitations under the License. 1530837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell */ 1630837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell 1730837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell 1830837f1095c803f332f4a1c3f0917c8afdd50156Adam Powellpackage android.support.v4.view; 1930837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell 2030837f1095c803f332f4a1c3f0917c8afdd50156Adam Powellimport android.view.MenuItem; 2130837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell 2230837f1095c803f332f4a1c3f0917c8afdd50156Adam Powellclass MenuItemCompatIcs { 2330837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell public static boolean expandActionView(MenuItem item) { 2430837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell return item.expandActionView(); 2530837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell } 2630837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell 2730837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell public static boolean collapseActionView(MenuItem item) { 2830837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell return item.collapseActionView(); 2930837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell } 3030837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell 3130837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell public static boolean isActionViewExpanded(MenuItem item) { 3230837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell return item.isActionViewExpanded(); 3330837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell } 3430837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell 3530837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell public static MenuItem setOnActionExpandListener(MenuItem item, 3630837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell SupportActionExpandProxy listener) { 3730837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell return item.setOnActionExpandListener(new OnActionExpandListenerWrapper(listener)); 3830837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell } 3930837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell 4030837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell /** 4130837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * Work around the support lib's build dependency chain. The actual API-lib 4230837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * depends on -ics, but -ics doesn't depend on the API-lib so it doesn't know 4330837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell * that MenuItemCompat.OnActionExpandListener exists. 4430837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell */ 4530837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell interface SupportActionExpandProxy { 4630837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell boolean onMenuItemActionExpand(MenuItem item); 4730837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell boolean onMenuItemActionCollapse(MenuItem item); 4830837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell } 4930837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell 5030837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell // support => framework 5130837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell static class OnActionExpandListenerWrapper implements MenuItem.OnActionExpandListener { 5230837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell private SupportActionExpandProxy mWrapped; 5330837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell 5430837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell public OnActionExpandListenerWrapper(SupportActionExpandProxy wrapped) { 5530837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell mWrapped = wrapped; 5630837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell } 5730837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell 5830837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell @Override 5930837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell public boolean onMenuItemActionExpand(MenuItem item) { 6030837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell return mWrapped.onMenuItemActionExpand(item); 6130837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell } 6230837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell 6330837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell @Override 6430837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell public boolean onMenuItemActionCollapse(MenuItem item) { 6530837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell return mWrapped.onMenuItemActionCollapse(item); 6630837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell } 6730837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell } 6830837f1095c803f332f4a1c3f0917c8afdd50156Adam Powell} 69