@Override
  public void onCreate(Bundle inState) {
    super.onCreate(inState);

    mMenuDrawer = MenuDrawer.attach(this, MenuDrawer.MENU_DRAG_CONTENT);

    TextView menuView = new TextView(this);
    menuView.setGravity(Gravity.CENTER);
    menuView.setTextColor(0xFFFFFFFF);
    final int padding = dpToPx(16);
    menuView.setPadding(padding, padding, padding, padding);
    menuView.setText(R.string.sample_listactivity);
    mMenuDrawer.setMenuView(menuView);
    mMenuDrawer.setOffsetMenuEnabled(false);

    List<String> items = new ArrayList<String>();
    for (int i = 1; i <= 20; i++) {
      items.add("Item " + i);
    }

    setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items));

    // When running on ICS or higher, the "up" button blinks until it is clicked.
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
      mHandler = new Handler();
      getActionBar().setDisplayHomeAsUpEnabled(true);
      mToggleUpRunnable =
          new Runnable() {
            @Override
            public void run() {
              mDisplayUp = !mDisplayUp;
              getActionBar().setDisplayHomeAsUpEnabled(mDisplayUp);
              mHandler.postDelayed(mToggleUpRunnable, 500);
            }
          };

      mHandler.postDelayed(mToggleUpRunnable, 500);

      mMenuDrawer.setOnDrawerStateChangeListener(
          new MenuDrawer.OnDrawerStateChangeListener() {
            @Override
            public void onDrawerStateChange(int oldState, int newState) {
              if (newState == MenuDrawer.STATE_OPEN) {
                mHandler.removeCallbacks(mToggleUpRunnable);
                if (!mDisplayUp) getActionBar().setDisplayHomeAsUpEnabled(true);
                mMenuDrawer.setOnDrawerStateChangeListener(null);
              }
            }

            @Override
            public void onDrawerSlide(float openRatio, int offsetPixels) {
              // Do nothing
            }
          });
    }
  }