package com.malmstein.yahnac; import android.support.design.widget.NavigationView; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import com.malmstein.yahnac.views.drawer.ActionBarDrawerListener; import com.novoda.notils.caster.Views; public abstract class HNewsNavigationDrawerActivity extends HNewsActivity { private DrawerLayout drawer; private ActionBarDrawerListener drawerListener; @Override public void setContentView(int layoutResID) { super.setContentView(layoutResID); drawer = Views.findById(this, R.id.navigation_drawer); drawerListener = new ActionBarDrawerListener(this, drawer); drawer.setDrawerListener(drawerListener); NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); if (navigationView != null) { navigationView.setNavigationItemSelectedListener(drawerListener); } } protected void refreshHeader() { NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); View header = LayoutInflater.from(this).inflate(R.layout.design_navigation_item_header, null, true); navigationView.addHeaderView(header); } public void closeDrawer() { drawer.closeDrawers(); } @Override public void onBackPressed() { if (shouldBackPressedBeInterceptedByNavDrawer()) { closeDrawer(); } else { super.onBackPressed(); } } protected boolean shouldBackPressedBeInterceptedByNavDrawer() { return drawer.isDrawerOpen(Gravity.LEFT); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { drawer.openDrawer(GravityCompat.START); return true; } return super.onOptionsItemSelected(item); } }