/**
   * 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 handleFileTransferResume(Intent intent, String transferId) {
   FileTransferDAO ftDao = FileTransferDAO.getFileTransferDAO(this, transferId);
   if (ftDao != null) {
     if (LogUtils.isActive) {
       Log.d(LOGTAG, "onHandleIntent file transfer resume with ID ".concat(transferId));
     }
     if (Direction.INCOMING == ftDao.getDirection()) {
       startActivity(ReceiveFileTransfer.forgeResumeIntent(this, ftDao, intent));
     } else {
       startActivity(InitiateFileTransfer.forgeResumeIntent(this, ftDao, intent));
     }
   }
 }