/** * 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)); } } }