12c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki/*
22c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * Copyright (C) 2015 The Android Open Source Project
32c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki *
42c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * Licensed under the Apache License, Version 2.0 (the "License");
52c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * you may not use this file except in compliance with the License.
62c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * You may obtain a copy of the License at
72c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki *
82c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki *      http://www.apache.org/licenses/LICENSE-2.0
92c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki *
102c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * Unless required by applicable law or agreed to in writing, software
112c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * distributed under the License is distributed on an "AS IS" BASIS,
122c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * See the License for the specific language governing permissions and
142c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki * limitations under the License.
152c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki */
162c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki
172c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakipackage com.example.android.support.design.widget;
182c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki
192c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport com.example.android.support.design.R;
202c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki
212c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport android.os.Bundle;
222c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport android.support.annotation.LayoutRes;
232c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport android.support.design.widget.NavigationView;
242c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport android.support.v7.app.AppCompatActivity;
252c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport android.view.MenuItem;
262c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport android.widget.TextView;
272c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakiimport android.widget.Toast;
282c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki
292c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Arakipublic abstract class NavigationViewUsageBase extends AppCompatActivity {
302c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki
312c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    private TextView mTextMessage;
322c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki
332c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    @Override
342c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    protected void onCreate(Bundle savedInstanceState) {
352c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki        super.onCreate(savedInstanceState);
362c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki        setContentView(getLayout());
372c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki
38fa2e2acf79d791a90410025daad438968550d18cAlan Viverette        mTextMessage = findViewById(R.id.message);
392c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki
402c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki        // Menu
41fa2e2acf79d791a90410025daad438968550d18cAlan Viverette        NavigationView navigation = findViewById(R.id.navigation);
422c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki        navigation.setNavigationItemSelectedListener(getNavigationItemSelectedListener());
432c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki        navigation.inflateHeaderView(R.layout.design_navigation_header);
442c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    }
452c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki
462c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    @LayoutRes
472c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    protected abstract int getLayout();
482c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki
492c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    protected abstract NavigationView.OnNavigationItemSelectedListener getNavigationItemSelectedListener();
502c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki
512c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    protected boolean handleNavigationItemSelected(MenuItem item) {
522c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki        switch (item.getItemId()) {
532c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki            case R.id.navigation_item_1:
542c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                mTextMessage.setText("1");
552c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                return true;
562c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki            case R.id.navigation_item_2:
572c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                mTextMessage.setText("2");
582c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                return true;
592c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki            case R.id.navigation_item_3:
602c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                mTextMessage.setText("3");
612c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                return true;
622c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki            case R.id.navigation_sub_item_1:
632c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                showToast(R.string.navigation_sub_item_1);
642c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                return true;
652c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki            case R.id.navigation_sub_item_2:
662c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                showToast(R.string.navigation_sub_item_2);
672c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                return true;
68f3865fbd67715b07d43da357dea742edf3bf9913Yuichi Araki            case R.id.navigation_sub_item_3:
69f3865fbd67715b07d43da357dea742edf3bf9913Yuichi Araki                showToast(R.string.navigation_sub_item_3);
70f3865fbd67715b07d43da357dea742edf3bf9913Yuichi Araki                return true;
712c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki            case R.id.navigation_with_icon:
722c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                showToast(R.string.navigation_item_with_icon);
732c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                return true;
742c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki            case R.id.navigation_without_icon:
752c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                showToast(R.string.navigation_item_without_icon);
762c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                return true;
772c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki            default:
782c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                return false;
792c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki        }
802c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    }
812c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki
822c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    private void showToast(int res) {
832c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki        Toast.makeText(this, getString(R.string.navigation_message, getString(res)),
842c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki                Toast.LENGTH_SHORT).show();
852c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki    }
862c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki
872c3f91e41982232dacb2ee34e604bf8c00a0e87aYuichi Araki}
88