package net.simonvt.menudrawer.samples;
import net.simonvt.menudrawer.MenuDrawer;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
public class WindowSample extends Activity implements View.OnClickListener {
private static final String STATE_MENUDRAWER = "net.simonvt.menudrawer.samples.WindowSample.menuDrawer";
private static final String STATE_ACTIVE_VIEW_ID = "net.simonvt.menudrawer.samples.WindowSample.activeViewId";
private MenuDrawer mMenuDrawer;
private TextView mContentTextView;
private int mActiveViewId;
@Override
public void onCreate(Bundle inState) {
super.onCreate(inState);
if (inState != null) {
mActiveViewId = inState.getInt(STATE_ACTIVE_VIEW_ID);
}
mMenuDrawer = MenuDrawer.attach(this, MenuDrawer.MENU_DRAG_WINDOW);
mMenuDrawer.setContentView(R.layout.activity_windowsample);
mMenuDrawer.setMenuView(R.layout.menu_scrollview);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
mContentTextView = (TextView) findViewById(R.id.contentText);
findViewById(R.id.item1).setOnClickListener(this);
findViewById(R.id.item2).setOnClickListener(this);
findViewById(R.id.item3).setOnClickListener(this);
findViewById(R.id.item4).setOnClickListener(this);
findViewById(R.id.item5).setOnClickListener(this);
findViewById(R.id.item6).setOnClickListener(this);
TextView activeView = (TextView) findViewById(mActiveViewId);
if (activeView != null) {
mMenuDrawer.setActiveView(activeView);
mContentTextView.setText("Active item: " + activeView.getText());
}
// This will animate the drawer open and closed until the user manually drags it. Usually this would only be
// called on first launch.
mMenuDrawer.peekDrawer();
}
@Override
protected void onRestoreInstanceState(Bundle inState) {
super.onRestoreInstanceState(inState);
mMenuDrawer.restoreState(inState.getParcelable(STATE_MENUDRAWER));
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelable(STATE_MENUDRAWER, mMenuDrawer.saveState());
outState.putInt(STATE_ACTIVE_VIEW_ID, mActiveViewId);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
mMenuDrawer.toggleMenu();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onBackPressed() {
final int drawerState = mMenuDrawer.getDrawerState();
if (drawerState == MenuDrawer.STATE_OPEN || drawerState == MenuDrawer.STATE_OPENING) {
mMenuDrawer.closeMenu();
return;
}
super.onBackPressed();
}
@Override
public void onClick(View v) {
mMenuDrawer.setActiveView(v);
mContentTextView.setText("Active item: " + ((TextView) v).getText());
mMenuDrawer.closeMenu();
mActiveViewId = v.getId();
}
}