public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.demo_activity_main);

    // enable ActionBar app icon to behave as action to toggle nav drawer
    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setHomeButtonEnabled(true);

    mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);

    mDrawer.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);

    _initMenu();
    mDrawerToggle = new CustomActionBarDrawerToggle(this, mDrawer);
    mDrawer.setDrawerListener(mDrawerToggle);

    // ---------------------------------------------------------------
    // ...
    String base64EncodedPublicKey = IabUtil.key;

    // compute your public key and store it in base64EncodedPublicKey
    mHelper = new IabHelper(this, base64EncodedPublicKey);
    mHelper.enableDebugLogging(true);

    mHelper.startSetup(
        new IabHelper.OnIabSetupFinishedListener() {
          public void onIabSetupFinished(IabResult result) {
            if (!result.isSuccess()) {
              // Oh noes, there was a problem.
              Log.d(TAG, "Problem setting up In-app Billing: " + result);
              return;
            }

            // Have we been disposed of in the meantime? If so, quit.
            if (mHelper == null) return;

            // Hooray, IAB is fully set up!
            IabUtil.getInstance().retrieveData(mHelper);
          }
        });

    // -----------------------------------------------------------------
    // BaseFragment baseFragment = null;
    if (savedInstanceState != null) {
      mSelectedFragment = savedInstanceState.getInt(BUNDLE_SELECTEDFRAGMENT);

      FragmentManager fragmentManager = getFragmentManager();
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
      if (fragmentManager.findFragmentById(R.id.fragment_main) == null)
        mBaseFragment = selectFragment(mSelectedFragment);
      // if (mBaseFragment==null)
      //    mBaseFragment = selectFragment(mSelectedFragment);
    } else {
      mBaseFragment = new HeaderFragment();
      openFragment(mBaseFragment);
    }

    // -----------------------------------------------------------------
  }