private void checkLocalRepository(File localDir) {
    FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    if (localDir != null && settings.getBoolean("repository_initialized", false)) {
      Log.d("PASS", "Check, dir: " + localDir.getAbsolutePath());
      // do not push the fragment if we already have it
      if (fragmentManager.findFragmentByTag("PasswordsList") == null
          || settings.getBoolean("repo_changed", false)) {
        settings.edit().putBoolean("repo_changed", false).apply();

        // todo move this as it is duplicated upthere!
        if (fragmentManager.findFragmentByTag("PasswordsList") != null) {
          fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
        }

        // clean things up
        if (fragmentManager.findFragmentByTag("ToCloneOrNot") != null) {
          fragmentManager.popBackStack();
        }

        plist = new PasswordFragment();
        Bundle args = new Bundle();
        args.putString("Path", PasswordRepository.getWorkTree().getAbsolutePath());

        plist.setArguments(args);

        fragmentTransaction.addToBackStack("passlist");

        getSupportActionBar().show();

        fragmentTransaction.replace(R.id.main_layout, plist, "PasswordsList");
        fragmentTransaction.commit();
      }
    } else {
      // if we still have the pass list (after deleting the repository for instance) remove it
      if (fragmentManager.findFragmentByTag("PasswordsList") != null) {
        fragmentManager.popBackStack();
      }

      getSupportActionBar().hide();

      ToCloneOrNot cloneFrag = new ToCloneOrNot();
      fragmentTransaction.replace(R.id.main_layout, cloneFrag, "ToCloneOrNot");
      fragmentTransaction.commit();
    }
  }