package me.tatarka.bindingcollectionadapter.sample;
import android.content.res.Configuration;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import me.tatarka.bindingcollectionadapter.sample.databinding.ActivityMainBinding;
import me.tatarka.bindingcollectionadapter.sample.R;
public class MainActivity extends AppCompatActivity {
private static final String STATE_TITLE = "title";
private ActivityMainBinding binding;
private ActionBarDrawerToggle toggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
setSupportActionBar(binding.toolbar);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
binding.drawerLayout.setDrawerListener(toggle = new ActionBarDrawerToggle(this, binding.drawerLayout, R.string.open_drawer, R.string.close_drawer));
NavigationView.OnNavigationItemSelectedListener listener = new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
Fragment fragment;
switch (menuItem.getItemId()) {
case R.id.action_listview:
fragment = new FragmentListView();
break;
case R.id.action_recyclerview:
fragment = new FragmentRecyclerView();
break;
case R.id.action_viewpager:
fragment = new FragmentViewPagerView();
break;
case R.id.action_spinner:
fragment = new FragmentSpinnerView();
break;
default:
binding.drawerLayout.closeDrawers();
return false;
}
getSupportFragmentManager().beginTransaction()
.replace(R.id.content, fragment)
.commit();
getSupportActionBar().setTitle(menuItem.getTitle());
binding.drawerLayout.closeDrawers();
return true;
}
};
binding.navView.setNavigationItemSelectedListener(listener);
if (savedInstanceState == null) {
listener.onNavigationItemSelected(binding.navView.getMenu().getItem(0));
} else {
CharSequence title = savedInstanceState.getCharSequence(STATE_TITLE);
getSupportActionBar().setTitle(title);
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
toggle.onConfigurationChanged(newConfig);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return toggle.onOptionsItemSelected(item);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
toggle.syncState();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putCharSequence(STATE_TITLE, getSupportActionBar().getTitle());
}
}