/**
   * Forward file transfer invitation to UI
   *
   * @param invitation Intent invitation
   * @param ftDao the file transfer data object
   */
  private void forwardFileTransferInvitationToUi(Intent invitation, FileTransferDAO ftDao) {
    ContactId contact = ftDao.getContact();
    if (ftDao.getContact() == null) {
      if (LogUtils.isActive) {
        Log.e(LOGTAG, "forwardFileTransferInvitationToUi failed: cannot parse contact");
      }
      return;
    }
    Intent intent = ReceiveFileTransfer.forgeInvitationIntent(this, ftDao, invitation);
    /*
     * If the PendingIntent has the same operation, action, data, categories, components, and
     * flags it will be replaced. Invitation should be notified individually so we use a random
     * generator to provide a unique request code and reuse it for the notification.
     */
    int uniqueId = Utils.getUniqueIdForPendingIntent();
    PendingIntent pi =
        PendingIntent.getActivity(this, uniqueId, intent, PendingIntent.FLAG_ONE_SHOT);

    String displayName = RcsContactUtil.getInstance(this).getDisplayName(contact);
    String title = getString(R.string.title_recv_file_transfer);
    String message = getString(R.string.label_from_args, displayName);

    /* Send notification */
    NotificationManager notificationManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notif = buildNotification(pi, title, message);
    notificationManager.notify(uniqueId, notif);
    TalkList.notifyNewConversationEvent(this, FileTransferIntent.ACTION_NEW_INVITATION);
  }
 private void forwardUndeliveredFileTransferToUi(Intent undeliveredIntent, ContactId contact) {
   Intent intent = OneToOneTalkView.forgeIntentOnStackEvent(this, contact, undeliveredIntent);
   ChatPendingIntentManager pendingIntentmanager =
       ChatPendingIntentManager.getChatPendingIntentManager(this);
   Integer uniqueId = pendingIntentmanager.tryContinueChatConversation(intent, contact.toString());
   if (uniqueId != null) {
     PendingIntent contentIntent =
         PendingIntent.getActivity(this, uniqueId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
     String displayName = RcsContactUtil.getInstance(this).getDisplayName(contact);
     String title = getString(R.string.title_undelivered_filetransfer);
     String msg = getString(R.string.label_undelivered_filetransfer, displayName);
     Notification notif = buildNotification(contentIntent, title, msg);
     pendingIntentmanager.postNotification(uniqueId, notif);
   }
 }