123e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas/*
223e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * Copyright (C) 2016 The Android Open Source Project
323e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas *
423e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * Licensed under the Apache License, Version 2.0 (the "License");
523e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * you may not use this file except in compliance with the License.
623e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * You may obtain a copy of the License at
723e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas *
823e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas *      http://www.apache.org/licenses/LICENSE-2.0
923e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas *
1023e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * Unless required by applicable law or agreed to in writing, software
1123e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * distributed under the License is distributed on an "AS IS" BASIS,
1223e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1323e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * See the License for the specific language governing permissions and
1423e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * limitations under the License.
1523e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas */
1623e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas
1723e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikaspackage com.example.android.support.design.widget;
1823e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas
19910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikasimport android.content.res.ColorStateList;
2023e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikasimport android.os.Bundle;
21111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikasimport android.support.annotation.NonNull;
2223e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikasimport android.support.design.widget.BottomNavigationView;
2323e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikasimport android.support.v7.app.AppCompatActivity;
2423e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikasimport android.view.MenuItem;
2523e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikasimport android.view.View;
2623e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikasimport android.widget.Button;
27111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikasimport android.widget.TextView;
2823e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas
29910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikasimport com.example.android.support.design.R;
30910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas
3123e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas/**
3223e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas * This demonstrates idiomatic usage of the bottom navigation widget.
3323e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas */
3423e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikaspublic class BottomNavigationViewUsage extends AppCompatActivity {
35910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas    private ColorStateList mOriginalTint;
36910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas
3723e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas    @Override
3823e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas    protected void onCreate(Bundle savedInstanceState) {
3923e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas        super.onCreate(savedInstanceState);
4023e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas        setContentView(R.layout.design_bottom_navigation_view);
4123e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas        Button buttonDisable = (Button) findViewById(R.id.button_disable);
4223e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas        final BottomNavigationView bottom =
4323e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas                (BottomNavigationView) findViewById(R.id.bottom_navigation);
44910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas        mOriginalTint = bottom.getItemIconTintList();
4523e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas        buttonDisable.setOnClickListener(new View.OnClickListener() {
4623e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas            @Override
4723e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas            public void onClick(View view) {
4823e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas                bottom.getMenu().getItem(0).setEnabled(!bottom.getMenu().getItem(0).isEnabled());
4923e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas            }
5023e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas        });
5123e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas        Button buttonAdd = (Button) findViewById(R.id.button_add);
5223e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas        buttonAdd.setOnClickListener(new View.OnClickListener() {
5323e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas            @Override
5423e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas            public void onClick(View view) {
553cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas                if (bottom.getMenu().size() < 5) {
563cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas                    MenuItem item = bottom.getMenu().add("Bananas");
573cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas                    item.setIcon(android.R.drawable.ic_lock_power_off);
583cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas                }
593cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas            }
603cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas        });
613cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas        Button buttonRemove = (Button) findViewById(R.id.button_remove);
623cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas        buttonRemove.setOnClickListener(new View.OnClickListener() {
633cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas            @Override
643cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas            public void onClick(View view) {
653cc432a5bd723a79dc52438235b47d0ea5d41ae4Aurimas Liutikas                bottom.getMenu().removeItem(0);
6623e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas            }
6723e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas        });
68910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas        Button buttonTint = (Button) findViewById(R.id.button_tint);
69910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas        buttonTint.setOnClickListener(new View.OnClickListener() {
70910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas            @Override
71910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas            public void onClick(View view) {
72910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas                if (bottom.getItemIconTintList() == null) {
73910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas                    bottom.setItemIconTintList(mOriginalTint);
74910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas                } else {
75910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas                    bottom.setItemIconTintList(null);
76910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas                }
77910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas            }
78910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas        });
79111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas        final TextView selectedItem = (TextView) findViewById(R.id.selected_item);
80111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas        bottom.setOnNavigationItemSelectedListener(
81111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                new BottomNavigationView.OnNavigationItemSelectedListener() {
82111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                    @Override
83111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
84111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                        switch (item.getItemId()) {
85111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                            case R.id.action_search:
86111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                                selectedItem.setText("Entering searching mode");
87111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                                break;
88111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                            case R.id.action_settings:
89111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                                selectedItem.setText("Entering settings!?!");
90111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                                break;
91111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                            case R.id.action_music:
92111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                                selectedItem.setText("Play some music");
93111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                                break;
94111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                            default:
95111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                                selectedItem.setText("Selected " + item.getTitle());
96111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                        }
97578015fc3e5ddc0fdb95db7ad0d00822c54be6dfAurimas Liutikas                        return true;
98111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                    }
99111ab9977e17f525a1c6435de9203f096f8635afAurimas Liutikas                });
10023e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas    }
10123e274886774bf1a6c433ed98503e148fa1e15b4Aurimas Liutikas}
102