152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki/*
252e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * Copyright (C) 2015 The Android Open Source Project
352e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki *
452e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * Licensed under the Apache License, Version 2.0 (the "License");
552e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * you may not use this file except in compliance with the License.
652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * You may obtain a copy of the License at
752e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki *
852e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki *      http://www.apache.org/licenses/LICENSE-2.0
952e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki *
1052e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * Unless required by applicable law or agreed to in writing, software
1152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * distributed under the License is distributed on an "AS IS" BASIS,
1252e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1352e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * See the License for the specific language governing permissions and
1452e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * limitations under the License.
1552e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki */
1652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
1752e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakipackage com.example.android.support.design.widget;
1852e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
1952e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakiimport android.os.Bundle;
2052e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakiimport android.util.TypedValue;
2152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakiimport android.view.MenuItem;
2252e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Arakiimport android.view.View;
2352e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
24def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.appcompat.widget.Toolbar;
25def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.core.view.GravityCompat;
26def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.drawerlayout.widget.DrawerLayout;
27def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas
28def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport com.example.android.support.design.R;
29f87e4dfc7bcd2583e7908ca3cda65cec6c697080Aurimas Liutikasimport com.google.android.material.navigation.NavigationView;
30def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas
3152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki/**
3252e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki * This demonstrates basic usage of NavigationView
3352e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki */
342c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakipublic class NavigationViewUsage extends NavigationViewUsageBase {
3552e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
3652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    private DrawerLayout mDrawerLayout;
3752e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
3852e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    @Override
3952e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    protected void onCreate(Bundle savedInstanceState) {
4052e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        super.onCreate(savedInstanceState);
4152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
42fa2e2acf79d791a90410025daad438968550d18cAlan Viverette        mDrawerLayout = findViewById(R.id.drawer_layout);
4352e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
4452e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        // Set the color of status bar
4552e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        TypedValue value = new TypedValue();
4652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        getTheme().resolveAttribute(R.attr.colorPrimaryDark, value, true);
4752e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        mDrawerLayout.setStatusBarBackgroundColor(value.data);
4852e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
4952e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        // Retrieve the Toolbar from our content view, and set it as the action bar
50fa2e2acf79d791a90410025daad438968550d18cAlan Viverette        Toolbar toolbar = findViewById(R.id.toolbar);
5152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        setSupportActionBar(toolbar);
5252e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
5352e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        // Toggle icon
5452e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        toolbar.setNavigationIcon(R.drawable.ic_action_navigation_menu);
5552e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
5652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki            @Override
5752e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki            public void onClick(View view) {
5852e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki                mDrawerLayout.openDrawer(GravityCompat.START);
5952e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki            }
6052e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        });
6152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    }
6252e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
632c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    @Override
642c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    protected int getLayout() {
652c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki        return R.layout.design_navigation;
6652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    }
6752e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
682c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    @Override
692c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    public NavigationView.OnNavigationItemSelectedListener getNavigationItemSelectedListener() {
702c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki        return new NavigationView.OnNavigationItemSelectedListener() {
712c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki            @Override
722c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki            public boolean onNavigationItemSelected(MenuItem item) {
732c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                if (handleNavigationItemSelected(item)) {
742c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                    mDrawerLayout.closeDrawers();
752c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                    return true;
762c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                }
772c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                return false;
782c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki            }
792c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki        };
8052e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    }
8152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
8252e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    @Override
8352e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    public void onBackPressed() {
8452e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
8552e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki            mDrawerLayout.closeDrawer(GravityCompat.START);
8652e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        } else {
8752e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki            super.onBackPressed();
8852e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki        }
8952e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki    }
9052e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki
9152e2c7a4ef19638d1c45dad9e77a8e6dac151b2dYuichi Araki}
92