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