private void setupFragmentsFromExtras(Bundle extras) {

    Group group = extras.getParcelable(INTENT_EXTRAS_GROUP);
    Sender sender = extras.getParcelable(INTENT_EXTRAS_SENDER);
    if (group == null) {
      throw new RuntimeException("Group should not be null");
    }
    ActionBar actionBar = getSupportActionBar();
    // we want to always show up arrow due to always having stuff above us
    if (group.getId() == -1) {
      nw_main.setCheckedItem(R.id.navigation_allSenders);
      // if it's not all senders -> show up arrow
    } else if (actionBar != null) {
      actionBar.setHomeAsUpIndicator(0);
    }
    if (sender != null) {
      addFragment(CommandListFragment.newInstance(group, sender), R.id.fl_contentFrame);
    } else {
      addFragment(
          SenderListFragment.newInstance(group),
          R.id.fl_contentFrame,
          SenderListFragment.FRAGMENT_TAG,
          false);
    }
  }
 @Override
 public boolean onNavigationItemSelected(MenuItem menuItem) {
   // clear back stack on nav drawer click
   getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
   switch (menuItem.getItemId()) {
     case R.id.navigation_groups:
       replaceFragment(GroupListFragment.newInstance(), R.id.fl_contentFrame);
       break;
     case R.id.navigation_allSenders:
       replaceFragment(SenderListFragment.newInstance(getAllSendersGroup()), R.id.fl_contentFrame);
       break;
     case R.id.navigation_history:
       replaceFragment(HistoryListFragment.newInstance(), R.id.fl_contentFrame);
       break;
     default:
       return false;
   }
   menuItem.setChecked(true);
   dl_main.closeDrawer(nw_main);
   return true;
 }
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_drawer);
    DaggerGroupComponent.builder()
        .applicationComponent(getApplicationComponent())
        .groupModule(new GroupModule(getAllSendersGroup()))
        .build()
        .inject(this);

    ButterKnife.bind(this);

    setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
    setupDrawer();

    if (savedInstanceState == null) {
      Bundle extras = getIntent().getExtras();
      // need to check if group not null since there are some weird stuff going on when using the
      // launcher
      if (extras != null && extras.getParcelable(INTENT_EXTRAS_GROUP) != null) {
        setupFragmentsFromExtras(extras);
      } else {
        boolean doesGroupsExists =
            getSharedPreferences(SHARED_PREFS_NAME, 0)
                .getBoolean(SHARED_PREFS_GROUPS_EXISTS_KEY, false);
        if (doesGroupsExists) {
          addFragment(GroupListFragment.newInstance(), R.id.fl_contentFrame);
        } else {
          addFragment(SenderListFragment.newInstance(getAllSendersGroup()), R.id.fl_contentFrame);
          nw_main.setCheckedItem(R.id.navigation_allSenders);
        }
      }

      if (isFirstLaunch()) {
        createAllSendersGroupInteractor.execute(
            new LoggingSubscriber<Long>(), Schedulers.newThread(), AndroidSchedulers.mainThread());
        setFirstLaunchDone();
      }
    }
  }