1d38621793486c819b838030e781e94486f092012Aurimas Liutikas/* 2d38621793486c819b838030e781e94486f092012Aurimas Liutikas * Copyright (C) 2016 The Android Open Source Project 3d38621793486c819b838030e781e94486f092012Aurimas Liutikas * 4d38621793486c819b838030e781e94486f092012Aurimas Liutikas * Licensed under the Apache License, Version 2.0 (the "License"); 5d38621793486c819b838030e781e94486f092012Aurimas Liutikas * you may not use this file except in compliance with the License. 6d38621793486c819b838030e781e94486f092012Aurimas Liutikas * You may obtain a copy of the License at 7d38621793486c819b838030e781e94486f092012Aurimas Liutikas * 8d38621793486c819b838030e781e94486f092012Aurimas Liutikas * http://www.apache.org/licenses/LICENSE-2.0 9d38621793486c819b838030e781e94486f092012Aurimas Liutikas * 10d38621793486c819b838030e781e94486f092012Aurimas Liutikas * Unless required by applicable law or agreed to in writing, software 11d38621793486c819b838030e781e94486f092012Aurimas Liutikas * distributed under the License is distributed on an "AS IS" BASIS, 12d38621793486c819b838030e781e94486f092012Aurimas Liutikas * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d38621793486c819b838030e781e94486f092012Aurimas Liutikas * See the License for the specific language governing permissions and 14d38621793486c819b838030e781e94486f092012Aurimas Liutikas * limitations under the License. 15d38621793486c819b838030e781e94486f092012Aurimas Liutikas */ 16d38621793486c819b838030e781e94486f092012Aurimas Liutikas 17d38621793486c819b838030e781e94486f092012Aurimas Liutikaspackage android.support.design.internal; 18d38621793486c819b838030e781e94486f092012Aurimas Liutikas 1969557a3a037e4124ecbc98560e84fa89472b3bf4Aurimas Liutikasimport static android.support.annotation.RestrictTo.Scope.GROUP_ID; 2069557a3a037e4124ecbc98560e84fa89472b3bf4Aurimas Liutikas 21d38621793486c819b838030e781e94486f092012Aurimas Liutikasimport android.content.Context; 22c39d9c75590eca86a5e7e32a8824ba04a0d42e9bAlan Viveretteimport android.support.annotation.RestrictTo; 23d38621793486c819b838030e781e94486f092012Aurimas Liutikasimport android.support.v7.view.menu.MenuBuilder; 2469557a3a037e4124ecbc98560e84fa89472b3bf4Aurimas Liutikasimport android.support.v7.view.menu.MenuItemImpl; 25d38621793486c819b838030e781e94486f092012Aurimas Liutikasimport android.view.MenuItem; 26d38621793486c819b838030e781e94486f092012Aurimas Liutikasimport android.view.SubMenu; 27d38621793486c819b838030e781e94486f092012Aurimas Liutikas 28d38621793486c819b838030e781e94486f092012Aurimas Liutikas/** 29d38621793486c819b838030e781e94486f092012Aurimas Liutikas * @hide 30d38621793486c819b838030e781e94486f092012Aurimas Liutikas */ 31c39d9c75590eca86a5e7e32a8824ba04a0d42e9bAlan Viverette@RestrictTo(GROUP_ID) 32d38621793486c819b838030e781e94486f092012Aurimas Liutikaspublic final class BottomNavigationMenu extends MenuBuilder { 33d38621793486c819b838030e781e94486f092012Aurimas Liutikas public static final int MAX_ITEM_COUNT = 5; 34d38621793486c819b838030e781e94486f092012Aurimas Liutikas 35d38621793486c819b838030e781e94486f092012Aurimas Liutikas public BottomNavigationMenu(Context context) { 36d38621793486c819b838030e781e94486f092012Aurimas Liutikas super(context); 37d38621793486c819b838030e781e94486f092012Aurimas Liutikas } 38d38621793486c819b838030e781e94486f092012Aurimas Liutikas 39d38621793486c819b838030e781e94486f092012Aurimas Liutikas @Override 40d38621793486c819b838030e781e94486f092012Aurimas Liutikas public SubMenu addSubMenu(int group, int id, int categoryOrder, CharSequence title) { 41d38621793486c819b838030e781e94486f092012Aurimas Liutikas throw new UnsupportedOperationException("BottomNavigationView does not support submenus"); 42d38621793486c819b838030e781e94486f092012Aurimas Liutikas } 43d38621793486c819b838030e781e94486f092012Aurimas Liutikas 44d38621793486c819b838030e781e94486f092012Aurimas Liutikas @Override 45d38621793486c819b838030e781e94486f092012Aurimas Liutikas protected MenuItem addInternal(int group, int id, int categoryOrder, CharSequence title) { 46d38621793486c819b838030e781e94486f092012Aurimas Liutikas if (size() + 1 > MAX_ITEM_COUNT) { 47d38621793486c819b838030e781e94486f092012Aurimas Liutikas throw new IllegalArgumentException( 48d38621793486c819b838030e781e94486f092012Aurimas Liutikas "Maximum number of items supported by BottomNavigationView is " + MAX_ITEM_COUNT 49d38621793486c819b838030e781e94486f092012Aurimas Liutikas + ". Limit can be checked with BottomNavigationView#getMaxItemCount()"); 50d38621793486c819b838030e781e94486f092012Aurimas Liutikas } 5169557a3a037e4124ecbc98560e84fa89472b3bf4Aurimas Liutikas stopDispatchingItemsChanged(); 5269557a3a037e4124ecbc98560e84fa89472b3bf4Aurimas Liutikas final MenuItem item = super.addInternal(group, id, categoryOrder, title); 5369557a3a037e4124ecbc98560e84fa89472b3bf4Aurimas Liutikas if (item instanceof MenuItemImpl) { 5469557a3a037e4124ecbc98560e84fa89472b3bf4Aurimas Liutikas ((MenuItemImpl) item).setExclusiveCheckable(true); 5569557a3a037e4124ecbc98560e84fa89472b3bf4Aurimas Liutikas } 5669557a3a037e4124ecbc98560e84fa89472b3bf4Aurimas Liutikas startDispatchingItemsChanged(); 5769557a3a037e4124ecbc98560e84fa89472b3bf4Aurimas Liutikas return item; 58d38621793486c819b838030e781e94486f092012Aurimas Liutikas } 59d38621793486c819b838030e781e94486f092012Aurimas Liutikas} 60