private void addToRoster(String userJid, String username) {

    RosterContact rc = new RosterContact();
    rc.setJid(userJid);
    rc.setUsername(username);

    // Add Online to Roster
    XMPPRosterStorage rs = new XMPPRosterStorage();
    rs.addEntry(rc, XMPPConnectionHandler.getInstance().getConnection());

    // Add to Roster DB
    DbRosterRepository rosterRepository = new DbRosterRepository(context);
    if (!rosterRepository.containsRosterEntry(rc)) {

      rosterRepository.createRosterEntry(rc);
    }
  }
  @Override
  public void onReceive(Context context, Intent intent) {

    this.context = context;

    String sender = intent.getStringExtra("subscribeSender");

    boolean inRoster = false;
    DbRosterRepository rosterRepo = new DbRosterRepository(context);
    List<RosterContact> rosterList = rosterRepo.getAllRosterEntrys();

    for (RosterContact rc : rosterList) {

      if (rc.getJid().equals(sender) || sender.contains(rc.getJid())) {

        inRoster = true;
      }
    }

    if (!inRoster) {

      DbPhoneBookRepository contactRepository = new DbPhoneBookRepository(context);
      List<HandyContact> handyContactList = contactRepository.getAllContacts();

      for (HandyContact hc : handyContactList) {

        if (sender.contains(HelperFunctions.getInstance().cleanNumber(hc.getNumber()))) {

          addToRoster(sender, hc.getName());
          showNotification(hc);
          break;
        } else {

          Log.d(TAG, sender + " nicht in der Kontaktliste.");
        }
      }
    }
  }